@mimik/oauth-helper-temp
v3.3.1
Published
temp Oauth helper for microservices
Downloads
106
Readme
oauth-helper-temp
The following environment variables are used:
| Env variable name | Description | Default | Comments |
| ----------------- | ----------- | ------- | -------- |
| OAUTH_HELPER_TEMP_SOURCE | swagger source: swaggerhub or bitbucket | swaggerhub | |
| OAUTH_HELPER_TEMP_ACCOUNT | swagger account to use for accessing API on swaggerhub | mimik | swaggerhub only |
| OAUTH_HELPER_TEMP_API_KEY | API key for the private API on swaggerhub | | swaggerhub only |
| OAUTH_HELPER_TEMP_BITBUCKET_KEY_PATH | path to key.json with bitbucket credentials | | bitbucket only |
| OAUTH_HELPER_TEMP_BITBUCKET_WORKSPACE | bitbucket workspace | mimiktech | bitbucket only |
| OAUTH_HELPER_TEMP_BITBUCKET_API_URL | bitbucket API base URL | https://api.bitbucket.org/2.0/repositories | bitbucket only |
The config should contain the customerCode if needed. If the customerCode is not available in the config, a default uuid will be used.
When OAUTH_HELPER_TEMP_SOURCE is set to bitbucket, swagger definitions are fetched from Bitbucket repositories
instead of SwaggerHub. The key.json file must contain { "bitbucket": { "username": "...", "password": "..." } }.
The latest version is determined from the repository's semver tags.
Example
import oauthHelper from '@mimik/oauth-helper-temp';- oauth-helper-temp
- static
- inner
- ~oauthTemp([config]) ⇒ object
- async
- ~rpAuth(type, options) ⇒ Promise
- ~createUserToken(type, userId, appId, correlationId) ⇒ Promise
- ~createUserTokenAll(types, userId, appId, correlationId) ⇒ Promise
- ~createUserTokenWithOnBehalf(type, userId, appId, onBehalfId, correlationId) ⇒ Promise
- ~createUserTokenAllWithOnBehalf(types, userId, appId, onBehalfId, correlationId) ⇒ Promise
- ~createAdminToken(type, customerCode, correlationId) ⇒ Promise
- ~createSystemToken(type, customerCode, correlationId) ⇒ Promise
oauth-helper-temp.getAdminTokens(mSTAdminToken, mSTBaseUrl, customerName, environment, targets, correlationId) ⇒ Promise
Get admin tokens.
Kind: static method of oauth-helper-temp
Category: async
Fulfil: object[] An array of responses with tokens.
config is ignored for that function.
| Param | Type | Description | | --- | --- | --- | | mSTAdminToken | string | Token to access admin operation of mST. | | mSTBaseUrl | URL.<string> | BaseUrl to use to access mST endpoints. | | customerName | string | Name of the customer for which the token will be provided. | | environment | string | Environment used to define the admin tokens. | | targets | Array.<object> | Array of { type } to get the admin tokens. | | correlationId | UUID.<string> | CorrelationId associated with the creation of the tokens. |
oauth-helper-temp.getSystemTokens(mSTAdminToken, mSTBaseUrl, customerName, typePairs, correlationId) ⇒ Promise
Get system tokens.
Kind: static method of oauth-helper-temp
Category: async
Fulfil: object[] An array of responses with tokens.
config is ignored for that function.
| Param | Type | Description | | --- | --- | --- | | mSTAdminToken | string | Token to access admin operation of mST. | | mSTBaseUrl | URL.<string> | BaseUrl to use to access mST endpoints. | | customerName | string | Name of the customer for which the token will be provided. | | typePairs | Array.<object> | Array of pairs of { origType, destType } to get the system tokens. | | correlationId | UUID.<string> | CorrelationId associated with the creation of the tokens. |
oauth-helper-temp~oauthTemp([config]) ⇒ object
Create a temp OAuth helper instance that signs tokens locally from the scopes declared in the service swagger definitions.
Kind: inner method of oauth-helper-temp
Returns: object - Object exposing rpAuth, createUserToken, createUserTokenAll, createUserTokenWithOnBehalf, createUserTokenAllWithOnBehalf, createAdminToken, createSystemToken, getSystemTokens and getAdminTokens.
| Param | Type | Description |
| --- | --- | --- |
| [config] | object | Service configuration. Required by the token-creation methods (rpAuth, createUserToken, createAdminToken, createSystemToken); the mST methods (getAdminTokens, getSystemTokens) ignore it and may be called on a config-less instance. |
| config.serverSettings | object | Settings describing this service. |
| config.serverSettings.id | string | Client id; used as the <id>@clients subject of system tokens. |
| config.serverSettings.type | string | Service type; matched against the requested type to decide whether swaggerFileVersion applies, and stamped as the token subType. |
| [config.serverSettings.swaggerFileVersion] | string | Swagger version to pin scope lookups to. When omitted, the latest version is resolved from the source. |
| [config.serverSettings.customerCode] | string | Default customer code stamped into admin/system tokens when none is passed and no random fallback is wanted. |
| config.security | object | Security settings used to sign the tokens. |
| config.security.implicit | object | Settings for user tokens. |
| config.security.implicit.key | string | Buffer | Signing key (PEM RSA/EC private key or symmetric secret) for user tokens. |
| config.security.implicit.issuer | string | Issuer claim for user tokens. |
| config.security.implicit.audience | string | Audience claim for user tokens. |
| config.security.generic | object | Settings for admin/system tokens. |
| config.security.generic.key | string | Buffer | Signing key (PEM RSA/EC private key or symmetric secret) for admin/system tokens. |
| config.security.generic.audience | string | Audience claim for admin/system tokens. |
| config.security.server | object | Token server configuration. |
| config.security.server.issuer | string | Issuer claim for admin/system tokens. |
| config.security.admin | object | Admin client configuration. |
| config.security.admin.externalId | string | External id used as the <externalId>@clients subject of admin tokens. |
| [config.security.expirationDate] | string | number | expiresIn value (e.g. '1d') applied to created tokens. Defaults to 1d. |
oauthTemp~getToken()
Get a cached system token for the given type, or create a new one if expired.
Kind: inner method of oauthTemp
oauth-helper-temp~rpAuth(type, options) ⇒ Promise
Make an authorized request.
Kind: inner method of oauth-helper-temp
Category: async
Throws:
- Promise Rejects with the
rpRetryerror (carryingstatusCode/info) when the request fails, or with the scope-lookup error if the swagger scopes cannot be resolved.
Fulfil: object Response from the authorized request (the rpRetry response).
| Param | Type | Description |
| --- | --- | --- |
| type | string | Type of micro-service to request. |
| options | object | Request options passed through to @mimik/request-retry (rpRetry): method, url, data, headers, etc. A system token for type is signed and injected as the authorization header; if headers['x-correlation-id'] is absent one is generated and applied to the outgoing request. On a 403 response the cached token is dropped, a fresh one is signed, and the request is retried once. |
oauth-helper-temp~createUserToken(type, userId, appId, correlationId) ⇒ Promise
Create a user token.
Kind: inner method of oauth-helper-temp
Category: async
Throws:
- Promise Will reject if the token cannot be created.
Fulfil: JWT<object> The user token.
| Param | Type | Description | | --- | --- | --- | | type | string | Type of micro-service to request. | | userId | string | User id to assign to the token. | | appId | string | Application id to associate with the request. | | correlationId | UUID.<string> | CorrelationId associated with the creation of the token. |
oauth-helper-temp~createUserTokenAll(types, userId, appId, correlationId) ⇒ Promise
Create a user token with many services.
Kind: inner method of oauth-helper-temp
Category: async
Throws:
- Promise Will reject if the token cannot be created.
Fulfil: JWT<object> The user token.
| Param | Type | Description | | --- | --- | --- | | types | Array.<string> | Array of type of micro-service to request. | | userId | string | User id to assign to the token. | | appId | string | Application id to associate with the request. | | correlationId | UUID.<string> | CorrelationId associated with the creation of the token. |
oauth-helper-temp~createUserTokenWithOnBehalf(type, userId, appId, onBehalfId, correlationId) ⇒ Promise
Create an onBehalfId token.
Kind: inner method of oauth-helper-temp
Category: async
Throws:
- Promise Will reject if the token cannot be created.
Fulfil: JWT<object> The onBehalf token.
| Param | Type | Description | | --- | --- | --- | | type | string | Type of micro-service to request. | | userId | string | User id to assign to the token. | | appId | string | Application id to associate with the request. | | onBehalfId | string | User id to assign to the token to act on behalf. | | correlationId | UUID.<string> | CorrelationId associated with the creation of the token. |
oauth-helper-temp~createUserTokenAllWithOnBehalf(types, userId, appId, onBehalfId, correlationId) ⇒ Promise
Create an onBehalfId token with many services.
Kind: inner method of oauth-helper-temp
Category: async
Throws:
- Promise Will reject if the token cannot be created.
Fulfil: JWT<object> The onBehalf token.
| Param | Type | Description | | --- | --- | --- | | types | Array.<string> | Array of type of micro-service to request. | | userId | string | User id to assign to the token. | | appId | string | Application id to associate with the request. | | onBehalfId | string | User id to assign to the token to act on behalf. | | correlationId | UUID.<string> | CorrelationId associated with the creation of the token. |
oauth-helper-temp~createAdminToken(type, customerCode, correlationId) ⇒ Promise
Create an admin token.
Kind: inner method of oauth-helper-temp
Category: async
Throws:
- Promise Will reject if the token cannot be created.
Fulfil: JWT<object> The admin token.
| Param | Type | Description | | --- | --- | --- | | type | string | Type of micro-service to request. | | customerCode | UUID.<string> | customer code to be added in the token. If not present, config.serverSettings.customerCode or randomUUID() will be used. | | correlationId | UUID.<string> | CorrelationId associated with the creation of the token. |
oauth-helper-temp~createSystemToken(type, customerCode, correlationId) ⇒ Promise
Create a system token.
Kind: inner method of oauth-helper-temp
Category: async
Throws:
- Promise Will reject if the token cannot be created.
Fulfil: JWT<object> The system token.
| Param | Type | Description | | --- | --- | --- | | type | string | Type of micro-service to request. | | customerCode | UUID.<string> | customer code to be added in the token. If not present, config.serverSettings.customerCode or randomUUID() will be used. | | correlationId | UUID.<string> | CorrelationId associated with the creation of the token. |
