From 051b54e45f0f30e0631bd13aa04287cfe5c37639 Mon Sep 17 00:00:00 2001 From: Jeffrey Smith II Date: Tue, 28 Feb 2023 13:22:32 -0500 Subject: [PATCH] chore: linting --- chronograf.go | 12 ++-- filestore/filestore.go | 13 ++-- oauth2/doc.go | 152 ++++++++++++++++++++--------------------- 3 files changed, 90 insertions(+), 87 deletions(-) diff --git a/chronograf.go b/chronograf.go index 6a766d63f..e55baf0f9 100644 --- a/chronograf.go +++ b/chronograf.go @@ -821,13 +821,15 @@ const MappingWildcard string = "*" // explicit role within the organization. // // One can think of a mapping like so: -// Provider:Scheme:Group -> Organization -// github:oauth2:influxdata -> Happy -// beyondcorp:ldap:influxdata -> TheBillHilliettas +// +// Provider:Scheme:Group -> Organization +// github:oauth2:influxdata -> Happy +// beyondcorp:ldap:influxdata -> TheBillHilliettas // // Any of Provider, Scheme, or Group may be provided as a wildcard * -// github:oauth2:* -> MyOrg -// *:*:* -> AllOrg +// +// github:oauth2:* -> MyOrg +// *:*:* -> AllOrg type Mapping struct { ID string `json:"id"` Organization string `json:"organizationId"` diff --git a/filestore/filestore.go b/filestore/filestore.go index 44e7bb90a..d1b4f9e1d 100644 --- a/filestore/filestore.go +++ b/filestore/filestore.go @@ -8,12 +8,13 @@ // // Resources that are storable in a file are: // (CRUD refers to create, read, update, delete. An '_' means not supported) -// Apps(layouts) - _R__ -// Dashboards - _RUD -// Kapacitors - _RUD -// Organizations - _R__ -// Protoboards - _R__ -// Sources - _RUD +// +// Apps(layouts) - _R__ +// Dashboards - _RUD +// Kapacitors - _RUD +// Organizations - _R__ +// Protoboards - _R__ +// Sources - _RUD // // Caution should be taken when editing resources provided via the filestore, // especially in a distributed environment as unexpected behavior may occur. diff --git a/oauth2/doc.go b/oauth2/doc.go index e902659a9..070e3981b 100644 --- a/oauth2/doc.go +++ b/oauth2/doc.go @@ -3,49 +3,49 @@ // // This is how the pieces of this package fit together: // -// ┌────────────────────────────────────────┐ -// │github.com/influxdata/chronograf/oauth2 │ -// ├────────────────────────────────────────┴────────────────────────────────────┐ -// │┌────────────────────┐ │ -// ││ <> │ ┌─────────────────────────┐ │ -// ││ Authenticator │ │ AuthMux │ │ -// │├────────────────────┤ ├─────────────────────────┤ │ -// ││Authorize() │ Auth │+SuccessURL : string │ │ -// ││Validate() ◀────────│+FailureURL : string │──────────┐ │ -// ||Expire() | |+Now : func() time.Time | | | -// │└──────────△─────────┘ └─────────────────────────┘ | | -// │ │ │ │ | -// │ │ │ │ │ -// │ │ │ │ │ -// │ │ Provider│ │ │ -// │ │ ┌───┘ │ │ -// │┌──────────┴────────────┐ │ ▽ │ -// ││ Tokenizer │ │ ┌───────────────┐ │ -// │├───────────────────────┤ ▼ │ <> │ │ -// ││Create() │ ┌───────────────┐ │ OAuth2Mux │ │ -// ││ValidPrincipal() │ │ <> │ ├───────────────┤ │ -// │└───────────────────────┘ │ Provider │ │Login() │ │ -// │ ├───────────────┤ │Logout() │ │ -// │ │ID() │ │Callback() │ │ -// │ │Scopes() │ └───────────────┘ │ -// │ │Secret() │ │ -// │ │Authenticator()│ │ -// │ └───────────────┘ │ -// │ △ │ -// │ │ │ -// │ ┌─────────────────────────┼─────────────────────────┐ │ -// │ │ │ │ │ -// │ │ │ │ │ -// │ │ │ │ │ -// │ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐│ -// │ │ Github │ │ Google │ │ Heroku ││ -// │ ├───────────────────────┤ ├──────────────────────┤ ├──────────────────────┤│ -// │ │+ClientID : string │ │+ClientID : string │ │+ClientID : string ││ -// │ │+ClientSecret : string │ │+ClientSecret : string│ │+ClientSecret : string││ -// │ │+Orgs : []string │ │+Domains : []string │ └──────────────────────┘│ -// │ └───────────────────────┘ │+RedirectURL : string │ │ -// │ └──────────────────────┘ │ -// └─────────────────────────────────────────────────────────────────────────────┘ +// ┌────────────────────────────────────────┐ +// │github.com/influxdata/chronograf/oauth2 │ +// ├────────────────────────────────────────┴────────────────────────────────────┐ +// │┌────────────────────┐ │ +// ││ <> │ ┌─────────────────────────┐ │ +// ││ Authenticator │ │ AuthMux │ │ +// │├────────────────────┤ ├─────────────────────────┤ │ +// ││Authorize() │ Auth │+SuccessURL : string │ │ +// ││Validate() ◀────────│+FailureURL : string │──────────┐ │ +// ||Expire() | |+Now : func() time.Time | | | +// │└──────────△─────────┘ └─────────────────────────┘ | | +// │ │ │ │ | +// │ │ │ │ │ +// │ │ │ │ │ +// │ │ Provider│ │ │ +// │ │ ┌───┘ │ │ +// │┌──────────┴────────────┐ │ ▽ │ +// ││ Tokenizer │ │ ┌───────────────┐ │ +// │├───────────────────────┤ ▼ │ <> │ │ +// ││Create() │ ┌───────────────┐ │ OAuth2Mux │ │ +// ││ValidPrincipal() │ │ <> │ ├───────────────┤ │ +// │└───────────────────────┘ │ Provider │ │Login() │ │ +// │ ├───────────────┤ │Logout() │ │ +// │ │ID() │ │Callback() │ │ +// │ │Scopes() │ └───────────────┘ │ +// │ │Secret() │ │ +// │ │Authenticator()│ │ +// │ └───────────────┘ │ +// │ △ │ +// │ │ │ +// │ ┌─────────────────────────┼─────────────────────────┐ │ +// │ │ │ │ │ +// │ │ │ │ │ +// │ │ │ │ │ +// │ ┌───────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐│ +// │ │ Github │ │ Google │ │ Heroku ││ +// │ ├───────────────────────┤ ├──────────────────────┤ ├──────────────────────┤│ +// │ │+ClientID : string │ │+ClientID : string │ │+ClientID : string ││ +// │ │+ClientSecret : string │ │+ClientSecret : string│ │+ClientSecret : string││ +// │ │+Orgs : []string │ │+Domains : []string │ └──────────────────────┘│ +// │ └───────────────────────┘ │+RedirectURL : string │ │ +// │ └──────────────────────┘ │ +// └─────────────────────────────────────────────────────────────────────────────┘ // // The design focuses on an Authenticator, a Provider, and an OAuth2Mux. Their // responsibilities, respectively, are to decode and encode secrets received @@ -57,36 +57,36 @@ // The Oauth2 flow between a browser, backend, and a Provider that this package // implements is pictured below for reference. // -// ┌─────────┐ ┌───────────┐ ┌────────┐ -// │ Browser │ │Chronograf │ │Provider│ -// └─────────┘ └───────────┘ └────────┘ -// │ │ │ -// ├─────── GET /auth ─────────▶ │ -// │ │ │ -// │ │ │ -// ◀ ─ ─ ─302 to Provider ─ ─ ┤ │ -// │ │ │ -// │ │ │ -// ├──────────────── GET /auth w/ callback ─────────────────────▶ -// │ │ │ -// │ │ │ -// ◀─ ─ ─ ─ ─ ─ ─ 302 to Chronograf Callback ─ ─ ─ ─ ─ ─ ─ ─ ┤ -// │ │ │ -// │ Code and State from │ │ -// │ Provider │ │ -// ├───────────────────────────▶ Request token w/ code & │ -// │ │ state │ -// │ ├────────────────────────────────▶ -// │ │ │ -// │ │ Response with │ -// │ │ Token │ -// │ Set cookie, Redirect │◀ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ -// │ to / │ │ -// ◀───────────────────────────┤ │ -// │ │ │ -// │ │ │ -// │ │ │ -// │ │ │ +// ┌─────────┐ ┌───────────┐ ┌────────┐ +// │ Browser │ │Chronograf │ │Provider│ +// └─────────┘ └───────────┘ └────────┘ +// │ │ │ +// ├─────── GET /auth ─────────▶ │ +// │ │ │ +// │ │ │ +// ◀ ─ ─ ─302 to Provider ─ ─ ┤ │ +// │ │ │ +// │ │ │ +// ├──────────────── GET /auth w/ callback ─────────────────────▶ +// │ │ │ +// │ │ │ +// ◀─ ─ ─ ─ ─ ─ ─ 302 to Chronograf Callback ─ ─ ─ ─ ─ ─ ─ ─ ┤ +// │ │ │ +// │ Code and State from │ │ +// │ Provider │ │ +// ├───────────────────────────▶ Request token w/ code & │ +// │ │ state │ +// │ ├────────────────────────────────▶ +// │ │ │ +// │ │ Response with │ +// │ │ Token │ +// │ Set cookie, Redirect │◀ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ +// │ to / │ │ +// ◀───────────────────────────┤ │ +// │ │ │ +// │ │ │ +// │ │ │ +// │ │ │ // // The browser ultimately receives a cookie from Chronograf, authorizing it. // Its contents are encoded as a JWT whose "sub" claim is the user's email @@ -102,14 +102,14 @@ // convention to ensure compatibility with the front end logic. These routes // and their responsibilities are: // -// /oauth/{provider}/login +// /oauth/{provider}/login // // The `/oauth` endpoint redirects to the Provider for OAuth. Chronograf sets // the OAuth `state` request parameter to a JWT with a random "sub". Using // $TOKEN_SECRET `/oauth/github/callback` can validate the `state` parameter // without needing `state` to be saved. // -// /oauth/{provider}/callback +// /oauth/{provider}/callback // // The `/oauth/github/callback` receives the OAuth `authorization code` and `state`. // @@ -135,7 +135,7 @@ // of the JWT within the cookie value. // If the request did not have a valid JWT, the API returns `HTTP/1.1 401 Unauthorized`. // -// /oauth/{provider}/logout +// /oauth/{provider}/logout // // Simply expires the session cookie and redirects to `/`. package oauth2