Michael Desa
36e14cb111
Refactor data stores into a common interface
2017-10-31 16:41:17 -04:00
Michael Desa
bea2caaa7f
Move organization resouces to their own package
2017-10-30 14:31:19 -04:00
Michael Desa
1082b264fe
Use organization stores
2017-10-30 12:05:59 -04:00
Jared Scheib
cbc22b10d7
Test authorized User in the context of Organization
...
Make principal explicit arg in auth tests.
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-27 13:54:28 -07:00
Michael de Sa
cf58974927
Add organization field to principal in auth tests
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-27 13:19:43 -07:00
Jared Scheib
32a65aa307
Slightly DRYer code for getting fields off Principal
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-27 12:48:51 -07:00
Michael de Sa
cff3ae798d
Test MeOrganization for valid org with invalid user, and invalid org
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-27 10:14:14 -07:00
Jared Scheib
4c968b0ff5
Validate Organization and that User belongs to Org in MeOrganization
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-27 10:02:02 -07:00
Michael de Sa
5c4407cbaf
Test MeOrganization for setting and changing current org
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-26 16:03:01 -07:00
Michael de Sa
6dd9f52c47
Change organization in meOrganizationRequest to currentOrganization
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-26 16:02:29 -07:00
Jared Scheib
30d1739e35
Move Mock Authenticator into mocks package
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-26 15:46:06 -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 Desa
5e08464ecf
Provide route to change current users organization
...
Add current Organization to JWT.
Use OrganizationUsersStore to retrieve Users that are not me.
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-26 18:06:52 -04: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
Jared Scheib
4786964b54
Add Organization guard to server/kapacitors
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-25 14:48:19 -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
ef079a1899
Add Organization to Sources
2017-10-25 11:51:15 -04:00
Jared Scheib
bb67361cf1
Merge branch 'multitenancy' into multitenancy_lowercase_fields
2017-10-24 18:01:32 -07:00
Jared Scheib
aa8742662f
Merge branch 'master' into multitenancy
2017-10-24 17:58:15 -07:00
Jared Scheib
74fdcc1c39
Add scheme to me/AuthorizedUser tests
2017-10-24 16:21:24 -07: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
Michael de Sa
86ba743f40
Fix string interpolation data type for uint64 in Users tests
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-24 14:28:39 -07:00
Michael de Sa
2137191d5f
Modify ValidUpdate to ensure only User Roles can be updated
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-24 14:28:35 -07:00
Nathan Haugo
da560018c6
Update changelog and version number for 1.3.10.0
2017-10-24 09:34:31 -04:00
Michael Desa
2226f34cf2
Add tests for server/organizations.go
2017-10-23 14:16:52 -04:00
Michael Desa
3f3e7a5662
Fix typo in organization comment
2017-10-23 14:16:31 -04:00
Michael Desa
ee255f319d
Add missing returns in http hanlder methods
2017-10-20 15:42:51 -04:00
Michael Desa
b5e73dfd46
Add CRUD routes for organizations
2017-10-20 15:42:34 -04:00
Michael de Sa
414ca7f0b6
Add clarifying comment for InfluxDB UID being Name
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-19 14:42:34 -05:00
Michael de Sa
f463642bae
Update route authorization by Role
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-19 14:33:08 -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
dafab1653a
Fix formating of server/auth.go
2017-10-19 12:54:06 -04:00
Michael Desa
8d472646cd
Fix wrong authorization level on selected routes
...
Fix leaking of username on failed authorization
Add comment to chronograf.UserQuery
Fix logic in hasPrivilege method
2017-10-18 15:45:06 -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 Desa
0517a87954
Add comment to AuthorizedUser
2017-10-18 12:45:58 -04:00
Michael Desa
3430eeb84b
Wrap routes with Authorization middleware
2017-10-18 12:40:17 -04:00
Michael Desa
f50a2b686f
Add AuthorizedUser middleware
2017-10-18 12:35:40 -04:00
Michael Desa
e61ed60ae8
Extract logic for getting user by name & provider
2017-10-18 12:34:23 -04:00
Michael de Sa
84f6702edf
Modify /me to match User via UsersStore.All & principal's Issuer
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-16 19:58:02 -05:00
Jared Scheib
414eab5f7d
Rename getEmail func & email var to getUsername & username
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-16 19:58:02 -05:00
Jared Scheib
cc7e695f37
Merge pull request #2113 from influxdata/multitenancy_rename_role_sourcerole
...
MULTITENANCY: Rename Role CRUD methods & structs w Source prefix
2017-10-16 19:51:38 -05:00
Jared Scheib
c924771fb9
Lowercase string consts for role names
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-16 19:42:57 -05: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
Jared Scheib
de6068228b
Replace string slices of role names with slices of chronograf.Role
...
This effectively reinstants rolly polly as king.
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-16 18:26:08 -05:00
Michael de Sa
93e3e68272
Suggest valid options in Invalid Role error message
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-16 15:56:43 -05:00
Michael de Sa
b2c4d9cb94
Add test coverage for userRequest validation
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-16 14:28:15 -05:00
Jared Scheib
74b4ad2c86
Remove unnecessary logic in ValidRoles guard
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-16 13:58:16 -05:00
Jared Scheib
263ff93f9b
Modify chronograf user roles to only use role name
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-16 14:44:34 -04:00
Jared Scheib
a928d1518c
Modify User req & res to receive & give Role names only
...
Role members are fully explicated for CRUD operations.
Also adds validation for Roles on requests.
Also returns an empty array in JSON when a User has no roles.
2017-10-16 14:18:34 -04:00
Chris Goller
725fd521dc
Update swagger documentation about queryConfig
2017-10-16 11:51:51 -05:00
Chris Goller
7b786657aa
Rename queryConfig field to Value and support top/bottom
2017-10-16 10:56:12 -05:00
Jared Scheib
de3dcf24c0
Add Roles to Users CRUD
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-12 17:42:30 -07:00
Jared Scheib
b5693694ee
Rename Role CRUD methods & structs w Source prefix
...
Move server/roles.go and server/roles_test.go into server/sources.go and
server/sources_test.go respectively.
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-12 19:25:33 -04:00
Michael Desa
33976d2832
Add jsonEqual to test helpers file
2017-10-11 14:33:55 -04:00
Michael de Sa
a8c50620f3
Refactor setting writer Location header
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-11 10:14:57 -07:00
Chris Goller
3c1b09704e
Refactor query config field arguments to be fields
2017-10-10 18:04:45 -05:00
Jared Scheib
31f72a71e9
Rename vestigial receiver 'h' on Service to 's'
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-10 15:27:58 -07:00
Chris Goller
3ba1a4c94d
Refactor queryConfig to have field aliases and function arguments
2017-10-10 17:01:50 -05:00
Jared Scheib
eca9614cda
Refactor applying writer location header into helper func
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-10 14:40:45 -07:00
Michael de Sa
30f36bfd19
Move source_users & source_users_test code into sources.go & sources_test.go
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-10 14:32:41 -07:00
Michael de Sa
e00f4512d2
Remove omitempty for Provider & Scheme in userRequest and userResponse
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-10 14:25:45 -07:00
Michael de Sa
a46e3ab7c2
Use more idiomatic error message method
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-10 14:21:43 -07:00
Michael de Sa
85dde0cebe
Add comments on ValidUpdate for future considerations
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-10 14:19:28 -07:00
Jared Scheib
af5d21028c
Make name on userResponse required
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-10 14:15:31 -07: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
Michael de Sa
63d7a4d201
Update only fields with diff; add test for that
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-10 11:40:33 -07:00
Michael de Sa
526dca3cb4
Make User Update test reflect updated changes
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-10 11:36:13 -07:00
Michael de Sa
f2617c6744
Use new-school sort.Slice
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-10 11:30:57 -07:00
Jared Scheib
c5ef8ed487
Add comments to exported functions
...
Signed-off-by: Michael de Sa <mjdesa@gmail.com>
2017-10-09 15:28:39 -07:00
Michael de Sa
6135a6a4ea
Return users in usersResponse in sorted order
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-09 15:19:46 -07:00
Michael de Sa
b8970c8ed1
Add All route & operation for Chronograf Users
...
Signed-off-by: Jared Scheib <jared.scheib@gmail.com>
2017-10-09 15:03:50 -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
Nathan Haugo
a2f270bdb2
Update version
2017-10-06 11:38:40 -07:00
Chris Goller
0e6a06d663
Update dashboard cells to have optional data source URI.
2017-10-02 12:50:42 -07:00
Andrew Watkins
a35f045648
Update kapacitor links to include tasks and ping paths
2017-09-12 09:23:22 -07:00
Chris Goller
35248b8044
Update kapacitor AlertRule to containe most Kapacitor Task information
2017-09-09 10:19:52 -05:00
Chris Goller
d1007513cd
Update kapacitor rule response with dbrps, various dates, error, and executing.
2017-09-09 10:19:52 -05:00
Chris Goller
08ecc10ddb
Update swagger docs with new kapacitor rule fields
2017-09-09 10:19:52 -05:00
Chris Goller
bebe0f364a
WIP
2017-09-09 10:19:52 -05:00
Nathan Haugo
3387c941af
Bump version to 1.3.8.0
2017-09-07 16:29:56 -07:00
Tim Raymond
f8580d907e
Refactor set membership validation
...
The pattern of using a select with a list of options and a default that
returns an error isn't bad for a one-off validation:
select myProp {
case "validOption1", "validOption2":
// no-op
default:
panic("invalid!")
}
However, we're doing this multiple times in this method, so it makes
sense to pull this out into a new method to make it clearer what's
happening.
This adds a `oneOf` function that takes some property and a variadic
list of valid options and reports whether or not that property is among
that list.
2017-08-24 15:45:51 -04:00
Tim Raymond
c24db57385
Add validation around Base and Scale
...
The Base and Scale options on axes can only be one of two parameters. We
weren't validating that this was the case. This patch ensures that Base
can only ever be "10" or "2", and Scale must be either "linear" or
"log".
Associated test coverage was also added.
2017-08-24 15:37:19 -04:00
Tim Raymond
63087a1bb8
Update Swagger for new axes options
...
New options were introduced to control things like scale, base, etc. on
axes and these were previously not documented. This adds documentation
of the newly supported parameters by the API.
2017-08-24 14:50:12 -04:00
Nathan Haugo
7a85e3a152
Merge 1.3.7.x
2017-08-23 16:01:30 -07:00
Nathan Haugo
5a13db41ba
Bump to 1.3.7.0
2017-08-23 15:56:00 -07:00
Tim Raymond
fed021ed9c
Merge branch 'master' into feature/tr-kapa-rule-pagination
2017-08-23 16:44:59 -04:00
Tim Raymond
f46335fb27
Remove kapacitor mock logic
...
This logic was originally left in place to help future test writers, but
its presence was vexing because it was not exercised in existing test
cases. It has been commented out should future tests need to leverage
it.
2017-08-23 16:39:12 -04:00
Timothy J. Raymond
61bffeb7cb
Merge pull request #1859 from influxdata/feature/tr-layout-cell-axes
...
Add Axes to Layout Cells
2017-08-16 16:45:26 -04:00
Tim Raymond
9b71477509
Switch KapacitorRulesGet to use Pagination
...
Kapacitor responses are paginated, and sometimes users have more than
the default 100 tasks that are returned from Kapacitor. This replaces
the previous Kapa client with one that automatically follows paginated
responses from Kapacitor's ListTasks endpoint and returns the full
response.
Tests for the KapacitorRulesGet endpoint had to be updated because they
did not account for "limit" and "offset", and so led to an infinite
loop with the paginated client. A correct kapacitor backend will not
have this behavior
2017-08-15 17:30:29 -04:00
Tim Raymond
fcf325bbbe
Add PaginatingKapacitorClient
...
The kapacitor client used in the kapacitor endpoints is limited to
fetching whatever limit you provide it. If you provide no limit, it
defaults to a limit of 100. We use this default behavior currently.
Some users have more than 100 tasks, so we need a client that's capable
of continually fetching tasks from Kapacitor until there are none left,
and returning the full response to the frontend.
This introduces a PaginatingKapacitorClient which does exactly that.
Also, test coverage was added around the KapacitorRulesGet endpoint,
since it was previously untested.
2017-08-15 16:55:47 -04:00
Timothy J. Raymond
246cf75ce7
Merge pull request #1866 from influxdata/bugfix/tr-missing-cell-type
...
Fix missing cell type
2017-08-14 14:04:36 -04:00
Tim Raymond
74f464800d
Fix missing cell type
...
Because we are now creating new instances of dashboards when we create a
response, it's critical to copy every element of Dashboards from the
previous to the new instance.
We were not previously copying the Type field of cells, so this was
defaulting to the empty string zero value. This patch adds "Type" to the
tests and ensures that it's properly copied
2017-08-14 13:41:31 -04:00
Jared Scheib
974e9eaf7d
Add 'type' to new-sources server flag example
2017-08-11 11:54:16 -07:00
Tim Raymond
c77630ff49
Ensure "x", "y", and "y2" axes present
...
Similar to DashboardCells, this ensures that the "x", "y", and "y2" axes
are always present in a layout's cells.
2017-08-10 13:53:07 -07:00
Tim Raymond
c2a5083777
Add test coverage to /layouts endpoint
...
In anticipation of adding Axes to cells, I wanted some test coverage to
be in place before I made the change.
This covers the happy path case as well as focusing on individual
applications. To come are focusing on a measurement and a test for when
the store is unavailable.
2017-08-10 13:52:26 -07:00
Tim Raymond
532a6a8c48
Merge branch 'master' into feature/1602-graph-bounds-setting
...
Also removed LegacyBounds marshaling since it was no longer necessary
Conflicts resolved:
bolt/internal/internal.go
bolt/internal/internal.pb.go
bolt/internal/internal.proto
bolt/internal/internal_test.go
chronograf.go
server/cells_test.go
server/dashboards_test.go
server/swagger.json
2017-08-02 11:29:29 -04:00
Tim Raymond
e545f91d8f
Add Label to DashboardCell Axis
...
It's useful for the frontend to be able to specify a label on a
particular axis. This adds a property to Axis to facilitate that.
2017-08-02 11:12:47 -04:00