Commit Graph

238 Commits (d7fa87db7622d82f2f8d61deffc857c650fdc512)

Author SHA1 Message Date
Michael Desa 3af66d98ab Migrate all orphaned resources to DefaultOrg
When users upgrade, all of their bolt resources will not belong to any
organization. This PR introduces a migration path where any orphaned,
resources without an organization, will become owned by the default
organization.
2017-11-13 20:41:54 -08:00
Luke Morris 338916a340 Address PR feedback. 2017-11-13 18:08:50 -08:00
Luke Morris 0424f9f92e Make Public values explicit 2017-11-13 12:15:53 -08:00
Luke Morris 29815774f0 If not set, Public should be true by default 2017-11-13 11:58:07 -08:00
Luke Morris 1aebbf2bd4 Clear test noise 2017-11-10 18:45:25 -08:00
Luke Morris 6d2c7e18d1 Rename whitelistOnly => public 2017-11-10 18:23:41 -08:00
Michael Desa 6493902265 Check WhitelistOnly setting on default org in Me
Set DefaultOrganizationWhitelistOnly to false

Set DefaultOrganizationRole on new user in Me
2017-11-10 16:15:29 -05:00
Michael Desa b110a28278 Add WhitelistOnly to organizations
Fix adding default role to organization
2017-11-10 15:57:48 -05:00
Michael Desa cc6f703f5d Fix updating default role on organization 2017-11-10 14:55:21 -05:00
Andrew Watkins e98e1896ae WIP Add shifts to queryConifg on backend 2017-11-10 11:06:48 -08:00
Michael Desa 9920f5e90e Ensure users name, provider, and scheme are unique 2017-11-10 12:29:17 -05:00
Chris Goller d41a89debf Refactor and simplify auto group by (:interval:) template variable 2017-11-09 10:02:24 -08:00
Michael Desa d40a374274 Add comments suggested from PR review
Add tests to server/stores_test.go
2017-11-07 13:59:40 -05:00
Michael Desa 8ded387a81 Add Role to chronograf.Source 2017-11-06 11:24:10 -05:00
Michael Desa 1c48601792 Add test for deleting default organization
Group together constants
2017-11-06 10:17:15 -05:00
Michael Desa 999f6c6a24 Change default organization name to Default 2017-11-06 10:15:50 -05:00
Michael Desa 28211fabec Prevent deletion of default organization 2017-11-06 10:14:14 -05:00
Michael Desa 7200aaf9f9 Add default org logic to OrganizationsStore
Update resource handlers to appropriate consume default organization IDs
2017-11-06 10:14:12 -05:00
Michael Desa 63f7d8205c Add default role to chronograf.Organization 2017-11-06 09:46:00 -05:00
Michael Desa bf22d1d57d Ensure uniqueness of organization names in bolt 2017-11-02 13:04:41 -04:00
Michael Desa b61fad00b0 Add dependent destroy of resources for organization 2017-11-01 17:12:31 -04:00
Jared Scheib 63e88e4853 Change version on UsersBucket to V2 for clean upgrade path
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-11-01 10:57:49 -07:00
Michael Desa e7a94c18d6 Add comments throughout codebase 2017-11-01 12:30:42 -04:00
Michael Desa a3be77a4ba Fix Migrate Organizations to not overwrite name 2017-11-01 10:55:32 -04:00
Michael Desa 37dc13d2c5 Fix organizations for default organization 2017-11-01 09:17:34 -04:00
Michael Desa 708c37dc67 WIP cleanup 2017-10-31 20:58:40 -04:00
Michael Desa e7e17537a1 WIP make app usable by frontend 2017-10-31 19:50:03 -04:00
Michael Desa f863bf2042 Add support for super admin 2017-10-31 18:27:24 -04:00
Michael Desa bea2caaa7f Move organization resouces to their own package 2017-10-30 14:31:19 -04:00
Michael Desa d6a0ab3488 Change OrganizationID to Organization in Roles
Fix formatting of proto file
2017-10-30 12:28:57 -04:00
Michael Desa 838d326022 Fix typo and organization dashboards test 2017-10-30 11:08:39 -04:00
Michael Desa 8fbe2ccd44 Fix incorrectly named file 2017-10-30 11:06:37 -04:00
Michael Desa d000a3e238 Add OrganizationLayoutsStore 2017-10-30 11:05:20 -04:00
Michael Desa 8b3f1abaac Add OrganizationServersStore 2017-10-30 10:57:41 -04:00
Michael Desa ef40315104 Add OrganizationsSourcesStore 2017-10-30 10:49:54 -04:00
Michael Desa 8288f97dd6 Add DashboardOrganization tests 2017-10-30 10:34:18 -04:00
Michael de Sa 2b7cdbfe07 WIP filter all resources by organization
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-27 18:14:46 -04:00
Michael de Sa 0f916d3240 Lowercase all Providers, Schemes, & Roles in OrganizationUsers tests
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-26 15:27:44 -07:00
Jared Scheib d6d3463208 Merge remote-tracking branch 'origin/multitenancy' into multitenancy_orgs
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-26 18:21:30 -04:00
Michael de Sa 8b8add9efc Make gen for proto changes in 68e08b987
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-25 11:58:55 -07:00
Jared Scheib cf530eddc6 Update Organization comments on resources
Remove `omitempty` on Organization field

Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-25 14:56:08 -04:00
Michael de Sa e56299e72f Remove Organization from bolt Stores
Previously, each store depended on having an organization set on the
implentation of a store. This was used to segment different
organizations into different buckets. This PR undoes that work.

Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-25 14:29:14 -04:00
Michael Desa e909ce9a1e Add Organizations to Dashboards 2017-10-25 14:00:06 -04:00
Michael Desa 57468b5fbe Add Organization to layouts 2017-10-25 12:52:56 -04:00
Michael Desa 71decb761e Add Organization to chronograf.Server 2017-10-25 12:42:50 -04:00
Michael Desa ef079a1899 Add Organization to Sources 2017-10-25 11:51:15 -04:00
Michael Desa 2a7f853580 REMOVE ME
This commit should be removed and was added so that it when I run make
gen for adding other values it won't polute the other commits
2017-10-25 11:49:56 -04:00
Jared Scheib f283702fe0 Lowercase Provider & Scheme & Role values for consistency
The client was being sent lowercase values for Role & Provider,
but not Scheme. This change makes all the above lowercase.
2017-10-24 16:17:59 -07:00
Jared Scheib 3b2818688a Make all Store names plural for consistency 2017-10-24 15:54:24 -07:00
Jared Scheib 54dff5cc4d Clean up plurals in func comments
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-24 15:09:37 -07:00
Michael de Sa 04dae2629a Test validOrganizationRoles comprehensively
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-24 15:08:01 -07:00
Michael de Sa edf66aab81 Add comments to validOrganization
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-24 15:07:35 -07:00
Jared Scheib 4691234719 Ensure additional Users aren't created OrganizationUser.Add
Performs a Get against the global UsersStore, and if the User
already exists, it appends to that User instead of trying to add
the "new" User blindly.

Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-24 14:53:50 -07:00
Jared Scheib 66eb1f824e Rename userHasValidRoles to validOrganizationRoles for clarity
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-24 14:04:48 -07:00
Jared Scheib fac9d03b09 Clarify Update methodology comment
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-24 14:04:05 -07:00
Michael de Sa 5fc62210b7 Test for error on Add Org User without context Org
Refactor guards in OrganizationUser bolt methods into comon func

Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-24 13:53:30 -07:00
Jared Scheib dbc08392e2 Improve test reporting for which user was deleted
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-24 13:45:09 -07:00
Michael de Sa e1bdf22eba Clean up derletion test name
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-24 13:43:25 -07:00
Michael de Sa 4d72ba6e4d Make vars consistent
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-24 13:41:47 -07:00
Jared Scheib 18054c6645 Improve get no users test
Change rawWant to wantRaw
Remove fmt.Println

Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-24 13:33:17 -07:00
Michael Desa 0aa28d7066 Add OrganizationUsersStore
bolt/organization_users_store contains a boltdb implementation of a
chronograf.UsersStore that filters the results based on the organization
that is set on the context.

Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-24 13:29:46 -04:00
Michael de Sa f873736c7c Remove printing from Organization tests
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-23 12:08:49 -07:00
Jared Scheib 292bf00320 Rename Org field on stores to Organization
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-23 12:08:11 -07:00
Michael de Sa faac66a9bd Nest resources under Organizations
For each organization, we create a set of buckets for each associated
resource (sources, servers, layouts, and dashbaords).

The bucket name is the path join of the resource bucket name and the
oranizations name. If the organizations name is empty, then the bucket
name is the resource bucket name (this is backwards compatible with how
resources are currently stored).

Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-20 13:50:19 -04:00
Michael Desa de6ae41c60 Implement basic bolt OrganizationsStore 2017-10-20 11:13:13 -04:00
Jared Scheib 41386ca546 Add bolt implementation of OrganizationsStore
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-20 09:17:00 -05:00
Jared Scheib 5998923ab8 Add test coverage for Get with empty User
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-19 14:39:06 -05:00
Jared Scheib 19369b38cc Set Scheme to be OAuth2 explicitly for all users
Add Provider to Users authenticated via /me

Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-19 14:32:33 -05:00
Michael Desa 72640d3bd2 Add tests for retrieving user by name and provider
Fix incorrect error message

Cleanup old Get user test
2017-10-19 12:52:46 -04:00
Michael Desa a0d300d280 Use new chonograf.UserStore Get method when needed
Refactor tests that were dependent of old implementation of UsersStore
2017-10-18 14:45:33 -04:00
Michael Desa 246e65e598 Generalize chronograf.UsersStore Get method
The `Get` method on the UsersStore was generalize by changing the second
parameter to a struct. This allows the Store to retrieve users by more
than simply their name.

-Get(ctx context.Context, name string) (*User, error)
+Get(ctx context.Context, q UserQuery) (*User, error)
2017-10-18 14:17:42 -04:00
Michael de Sa c390678e43 Place user role consts and vars in server package
This also decouples the bolt tests from the server package.

Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-16 18:43:56 -05:00
Michael de Sa 1247323176 Use cmp.Diff for user equality comparison
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-16 16:46:20 -05:00
Michael de Sa d9bec67e65 Clean up redundant error checks
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-16 14:33:47 -05:00
Michael de Sa 1bb3e560aa Add name to bolt UsersStore test
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 20:01:35 -04:00
Michael de Sa 506cdd0c42 Make chronograf user roles explicit vars
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:58:45 -04:00
Michael de Sa 854c5b03d4 Factor out code in common bolt UsersStore tests
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:52:34 -04:00
Michael de Sa 22d56182cc Use numberic style ID in UsersStore Get test
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:37:51 -04:00
Jared Scheib ecccfc0c72 Regenerate protoc to remove formatting changes
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-12 19:33:46 -04:00
Jared Scheib 09050b9c8e Remove unused concept of RolesStore
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-12 19:33:31 -04:00
Michael de Sa 40428588f2 Refactor bolt UsersStore to use ID instead of name
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:33:16 -04:00
Michael de Sa 75b0dbd43a Add tests for updating user in boltdb
Adds tests for updating roles, provider, and scheme

Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-12 19:32:54 -04:00
Michael de Sa 66eab84b40 Set ID on retrieved user from boltdb
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:32:35 -04:00
Michael de Sa f712d2204b Add roles to boltdb UsersStore
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:31:44 -04:00
Jared Scheib aedaafe426 Update bolt UsersStore for updated chronograf User
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:31:26 -04:00
Michael Desa fd50f2fc7e Refactor bolt.RolesStore to use bolt.UsersStore
Add definitions for user roles and permissions in chronograf package

Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-12 19:31:15 -04:00
Michael de Sa 3e3ca4d1a2 Remove old bolt implementation of RoleStore
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:31:06 -04:00
Jared Scheib 4db4ae5bcf Refactor Roles & Protobuf to be part of User msg
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-12 19:30:50 -04:00
Michael Desa 4be172d988 WIP: Add BoltDB implementation of RolesStore
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-12 19:30:34 -04:00
Jared Scheib b7c78f4c56 Add Role and Permission messages to protobuf
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-12 19:30:09 -04:00
Jared Scheib 2d88f15fdf Use string IDs in JSON res and req for Users
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-10 12:27:55 -07:00
Jared Scheib eb6c212023 Implement CRUD routes & operations for Chronograf User
Move source Users code into source_users and source_users_test files.
Use the UsersStore for both InfluxDB and Chronograf users.

Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-09 14:16:24 -07:00
Chris Goller 0e6a06d663 Update dashboard cells to have optional data source URI. 2017-10-02 12:50:42 -07:00
Andrew Watkins fac768c142 Update tests for scale to default to linear 2017-08-24 09:23:22 -07:00
Andrew Watkins 04f25f6915 Default scale to 'linear' 2017-08-23 21:08:17 -07:00
Tim Raymond c6bcdcb884 Add Axes to Cells on Layouts
This allows a creator of a layout to specify the visible extents of
graphs for individual cells. For example, a cell displaying a
percentage could be limited to values between 0 and 100.

Existing canned layouts need to updated as a separate step. However,
this adds support for Axes to appear in them as well.
2017-08-23 16:08:32 -07:00
Tim Raymond 715cdc9364 Add Scale attribute to Cell Axis
This allows clients to specify the magnitude of numbers found on a
particular axis.
2017-08-23 15:58:28 -07:00
Tim Raymond f6e029557b Add Prefix, Suffix, and Base to Axes
We would like to add additional user-configurable options to the display
of axes on Dashboards. This adds three fields to expand settings that
the frontend can persist through the API.

One field of interest here is the "Base" field which controls when and
how axes transition the display of values such as bytes, kilobytes,
megabytes, etc. By default, it's returned from the API as "10" to
indicate decimal, but can be set to anything the frontend wishes--the
immediate differing value will be "2" for the aforementioned use case.
2017-08-23 15:58:28 -07:00
Tim Raymond 4c2bb63553 Add Label to Layout Cells' Axes
We added a Label to DashboardCells' Axes. This brings Layout Cells into
parity with them.
2017-08-10 13:53:00 -07:00
Tim Raymond a3c0ae82f9 Update Bounds to follow string format
We updated DashboardCell to use string bounds rather than the [2]int64{}
we were using before. This brings the Layout cells to parity with that
2017-08-10 13:52:51 -07:00