mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
Substitute hardcoded auth modes for variables
This commit is contained in:
@@ -506,10 +506,4 @@ export const toggleAutoCapitalization = async (req: Request, res: Response) => {
|
|||||||
message: 'Successfully changed autoCapitalization setting',
|
message: 'Successfully changed autoCapitalization setting',
|
||||||
workspace
|
workspace
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getAak = (req: Request, res: Response) => {
|
|
||||||
return res.status(200).send({
|
|
||||||
message: 'getAak'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1,14 +1,70 @@
|
|||||||
import * as Sentry from '@sentry/node';
|
import * as Sentry from '@sentry/node';
|
||||||
import Stripe from 'stripe';
|
import Stripe from 'stripe';
|
||||||
import { Types } from 'mongoose';
|
import { Types } from 'mongoose';
|
||||||
import { ACCEPTED } from '../variables';
|
import {
|
||||||
|
IUser,
|
||||||
|
User,
|
||||||
|
IServiceAccount,
|
||||||
|
ServiceAccount,
|
||||||
|
IServiceTokenData,
|
||||||
|
ServiceTokenData
|
||||||
|
} from '../models';
|
||||||
import { Organization, MembershipOrg } from '../models';
|
import { Organization, MembershipOrg } from '../models';
|
||||||
|
import {
|
||||||
|
ACCEPTED,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_SERVICE_ACCOUNT,
|
||||||
|
AUTH_MODE_SERVICE_TOKEN,
|
||||||
|
AUTH_MODE_API_KEY
|
||||||
|
} from '../variables';
|
||||||
import {
|
import {
|
||||||
getStripeSecretKey,
|
getStripeSecretKey,
|
||||||
getStripeProductPro,
|
getStripeProductPro,
|
||||||
getStripeProductTeam,
|
getStripeProductTeam,
|
||||||
getStripeProductStarter
|
getStripeProductStarter
|
||||||
} from '../config';
|
} from '../config';
|
||||||
|
import {
|
||||||
|
UnauthorizedRequestError
|
||||||
|
} from '../utils/errors';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate accepted clients for organization with id [organizationId]
|
||||||
|
* @param {Object} obj
|
||||||
|
* @param {Object} obj.authData - authenticated client details
|
||||||
|
* @param {Types.ObjectId} obj.organizationId - id of organization to validate against
|
||||||
|
*/
|
||||||
|
const validateClientForOrganization = async ({
|
||||||
|
authData,
|
||||||
|
organizationId
|
||||||
|
}: {
|
||||||
|
authData: {
|
||||||
|
authMode: string;
|
||||||
|
authPayload: IUser | IServiceAccount | IServiceTokenData;
|
||||||
|
},
|
||||||
|
organizationId: string;
|
||||||
|
}) => {
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
if (authData.authMode === AUTH_MODE_JWT && authData.authPayload instanceof User) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
if (authData.authMode === AUTH_MODE_SERVICE_ACCOUNT && authData.authPayload instanceof ServiceAccount) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
if (authData.authMode === AUTH_MODE_SERVICE_TOKEN && authData.authPayload instanceof ServiceTokenData) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
if (authData.authMode === AUTH_MODE_API_KEY && authData.authPayload instanceof User) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
throw UnauthorizedRequestError({
|
||||||
|
message: 'Failed client authorization for organization resource'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create an organization with name [name]
|
* Create an organization with name [name]
|
||||||
|
|||||||
@@ -28,12 +28,10 @@ import {
|
|||||||
} from '../variables';
|
} from '../variables';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate accepted clients for workspace with id [workspaceId] based
|
* Validate authenticated clients for workspace with id [workspaceId] based
|
||||||
* on any known permissions.
|
* on any known permissions.
|
||||||
* @param {Object} obj
|
* @param {Object} obj
|
||||||
* @param {User} obj.user - user client
|
* @param {Object} obj.authData - authenticated client details
|
||||||
* @param {ServiceAccount} obj.serviceAccount - service account client
|
|
||||||
* @param {ServiceTokenData} obj.serviceTokenData - service token client
|
|
||||||
* @param {Types.ObjectId} obj.workspaceId - id of workspace to validate against
|
* @param {Types.ObjectId} obj.workspaceId - id of workspace to validate against
|
||||||
* @param {String} obj.environment - (optional) environment in workspace to validate against
|
* @param {String} obj.environment - (optional) environment in workspace to validate against
|
||||||
* @param {String[]} obj.requiredPermissions - required permissions as part of the endpoint
|
* @param {String[]} obj.requiredPermissions - required permissions as part of the endpoint
|
||||||
|
|||||||
@@ -79,6 +79,12 @@ const requireAuth = ({
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
req.requestData = {
|
||||||
|
...req.params,
|
||||||
|
...req.query,
|
||||||
|
...req.body,
|
||||||
|
}
|
||||||
|
|
||||||
req.authData = {
|
req.authData = {
|
||||||
authMode,
|
authMode,
|
||||||
authPayload
|
authPayload
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ const requireWorkspaceAuth = ({
|
|||||||
requiredPermissions?: string[];
|
requiredPermissions?: string[];
|
||||||
}) => {
|
}) => {
|
||||||
return async (req: Request, res: Response, next: NextFunction) => {
|
return async (req: Request, res: Response, next: NextFunction) => {
|
||||||
|
|
||||||
const workspaceId = req[locationWorkspaceId]?.workspaceId;
|
const workspaceId = req[locationWorkspaceId]?.workspaceId;
|
||||||
const environment = locationEnvironment ? req[locationEnvironment]?.environment : undefined;
|
const environment = locationEnvironment ? req[locationEnvironment]?.environment : undefined;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { body } from 'express-validator';
|
|||||||
import { requireAuth, validateRequest } from '../../middleware';
|
import { requireAuth, validateRequest } from '../../middleware';
|
||||||
import { authController } from '../../controllers/v1';
|
import { authController } from '../../controllers/v1';
|
||||||
import { authLimiter } from '../../helpers/rateLimiter';
|
import { authLimiter } from '../../helpers/rateLimiter';
|
||||||
|
import { AUTH_MODE_JWT } from '../../variables';
|
||||||
|
|
||||||
router.post('/token', validateRequest, authController.getNewToken);
|
router.post('/token', validateRequest, authController.getNewToken);
|
||||||
|
|
||||||
@@ -29,7 +30,7 @@ router.post(
|
|||||||
'/logout',
|
'/logout',
|
||||||
authLimiter,
|
authLimiter,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
authController.logout
|
authController.logout
|
||||||
);
|
);
|
||||||
@@ -37,7 +38,7 @@ router.post(
|
|||||||
router.post(
|
router.post(
|
||||||
'/checkAuth',
|
'/checkAuth',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
authController.checkAuth
|
authController.checkAuth
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ import {
|
|||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { botController } from '../../controllers/v1';
|
import { botController } from '../../controllers/v1';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import { ADMIN, MEMBER, AUTH_MODE_JWT } from '../../variables';
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId',
|
'/:workspaceId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -27,7 +27,7 @@ router.get(
|
|||||||
router.patch(
|
router.patch(
|
||||||
'/:botId/active',
|
'/:botId/active',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireBotAuth({
|
requireBotAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
|
|||||||
@@ -6,14 +6,19 @@ import {
|
|||||||
requireIntegrationAuthorizationAuth,
|
requireIntegrationAuthorizationAuth,
|
||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_API_KEY
|
||||||
|
} from '../../variables';
|
||||||
import { body, param } from 'express-validator';
|
import { body, param } from 'express-validator';
|
||||||
import { integrationController } from '../../controllers/v1';
|
import { integrationController } from '../../controllers/v1';
|
||||||
|
|
||||||
router.post( // new: add new integration for integration auth
|
router.post( // new: add new integration for integration auth
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireIntegrationAuthorizationAuth({
|
requireIntegrationAuthorizationAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -35,7 +40,7 @@ router.post( // new: add new integration for integration auth
|
|||||||
router.patch(
|
router.patch(
|
||||||
'/:integrationId',
|
'/:integrationId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireIntegrationAuth({
|
requireIntegrationAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
@@ -54,7 +59,7 @@ router.patch(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:integrationId',
|
'/:integrationId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireIntegrationAuth({
|
requireIntegrationAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
|
|||||||
@@ -7,13 +7,18 @@ import {
|
|||||||
requireIntegrationAuthorizationAuth,
|
requireIntegrationAuthorizationAuth,
|
||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_API_KEY
|
||||||
|
} from '../../variables';
|
||||||
import { integrationAuthController } from '../../controllers/v1';
|
import { integrationAuthController } from '../../controllers/v1';
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/integration-options',
|
'/integration-options',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
integrationAuthController.getIntegrationOptions
|
integrationAuthController.getIntegrationOptions
|
||||||
);
|
);
|
||||||
@@ -21,7 +26,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:integrationAuthId',
|
'/:integrationAuthId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireIntegrationAuthorizationAuth({
|
requireIntegrationAuthorizationAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
@@ -34,7 +39,7 @@ router.get(
|
|||||||
router.post(
|
router.post(
|
||||||
'/oauth-token',
|
'/oauth-token',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -55,7 +60,7 @@ router.post(
|
|||||||
body('integration').exists().trim().notEmpty(),
|
body('integration').exists().trim().notEmpty(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -67,7 +72,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:integrationAuthId/apps',
|
'/:integrationAuthId/apps',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireIntegrationAuthorizationAuth({
|
requireIntegrationAuthorizationAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
@@ -81,7 +86,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:integrationAuthId/teams',
|
'/:integrationAuthId/teams',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireIntegrationAuthorizationAuth({
|
requireIntegrationAuthorizationAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
@@ -94,7 +99,7 @@ router.get(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:integrationAuthId',
|
'/:integrationAuthId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireIntegrationAuthorizationAuth({
|
requireIntegrationAuthorizationAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ const router = express.Router();
|
|||||||
import { body } from 'express-validator';
|
import { body } from 'express-validator';
|
||||||
import { requireAuth, validateRequest } from '../../middleware';
|
import { requireAuth, validateRequest } from '../../middleware';
|
||||||
import { membershipOrgController } from '../../controllers/v1';
|
import { membershipOrgController } from '../../controllers/v1';
|
||||||
|
import { AUTH_MODE_JWT } from '../../variables';
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/signup',
|
'/signup',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('inviteeEmail').exists().trim().notEmpty().isEmail(),
|
body('inviteeEmail').exists().trim().notEmpty().isEmail(),
|
||||||
body('organizationId').exists().trim().notEmpty(),
|
body('organizationId').exists().trim().notEmpty(),
|
||||||
|
|||||||
@@ -6,13 +6,13 @@ import {
|
|||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { body, param } from 'express-validator';
|
import { body, param } from 'express-validator';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import { ADMIN, MEMBER, AUTH_MODE_JWT } from '../../variables';
|
||||||
import { keyController } from '../../controllers/v1';
|
import { keyController } from '../../controllers/v1';
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/:workspaceId',
|
'/:workspaceId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -27,7 +27,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/latest',
|
'/:workspaceId/latest',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
|
|||||||
@@ -4,13 +4,14 @@ import { body, param } from 'express-validator';
|
|||||||
import { requireAuth, validateRequest } from '../../middleware';
|
import { requireAuth, validateRequest } from '../../middleware';
|
||||||
import { membershipController } from '../../controllers/v1';
|
import { membershipController } from '../../controllers/v1';
|
||||||
import { membershipController as EEMembershipControllers } from '../../ee/controllers/v1';
|
import { membershipController as EEMembershipControllers } from '../../ee/controllers/v1';
|
||||||
|
import { AUTH_MODE_JWT } from '../../variables';
|
||||||
|
|
||||||
// note: ALL DEPRECIATED (moved to api/v2/workspace/:workspaceId/memberships/:membershipId)
|
// note: ALL DEPRECIATED (moved to api/v2/workspace/:workspaceId/memberships/:membershipId)
|
||||||
|
|
||||||
router.get( // used for old CLI (deprecate)
|
router.get( // used for old CLI (deprecate)
|
||||||
'/:workspaceId/connect',
|
'/:workspaceId/connect',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
param('workspaceId').exists().trim(),
|
param('workspaceId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -20,7 +21,7 @@ router.get( // used for old CLI (deprecate)
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:membershipId',
|
'/:membershipId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
param('membershipId').exists().trim(),
|
param('membershipId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -30,7 +31,7 @@ router.delete(
|
|||||||
router.post(
|
router.post(
|
||||||
'/:membershipId/change-role',
|
'/:membershipId/change-role',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('role').exists().trim(),
|
body('role').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -40,7 +41,7 @@ router.post(
|
|||||||
router.post(
|
router.post(
|
||||||
'/:membershipId/deny-permissions',
|
'/:membershipId/deny-permissions',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
param('membershipId').isMongoId().exists().trim(),
|
param('membershipId').isMongoId().exists().trim(),
|
||||||
body('permissions').isArray().exists(),
|
body('permissions').isArray().exists(),
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ const router = express.Router();
|
|||||||
import { param } from 'express-validator';
|
import { param } from 'express-validator';
|
||||||
import { requireAuth, validateRequest } from '../../middleware';
|
import { requireAuth, validateRequest } from '../../middleware';
|
||||||
import { membershipOrgController } from '../../controllers/v1';
|
import { membershipOrgController } from '../../controllers/v1';
|
||||||
|
import { AUTH_MODE_JWT } from '../../variables';
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
// TODO
|
// TODO
|
||||||
'/membershipOrg/:membershipOrgId/change-role',
|
'/membershipOrg/:membershipOrgId/change-role',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
param('membershipOrgId'),
|
param('membershipOrgId'),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -18,7 +19,7 @@ router.post(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:membershipOrgId',
|
'/:membershipOrgId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
param('membershipOrgId').exists().trim(),
|
param('membershipOrgId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
|
|||||||
@@ -6,13 +6,19 @@ import {
|
|||||||
requireOrganizationAuth,
|
requireOrganizationAuth,
|
||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { OWNER, ADMIN, MEMBER, ACCEPTED } from '../../variables';
|
import {
|
||||||
|
OWNER,
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
ACCEPTED,
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
import { organizationController } from '../../controllers/v1';
|
import { organizationController } from '../../controllers/v1';
|
||||||
|
|
||||||
router.get( // deprecated (moved to api/v2/users/me/organizations)
|
router.get( // deprecated (moved to api/v2/users/me/organizations)
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
organizationController.getOrganizations
|
organizationController.getOrganizations
|
||||||
);
|
);
|
||||||
@@ -20,7 +26,7 @@ router.get( // deprecated (moved to api/v2/users/me/organizations)
|
|||||||
router.post( // not used on frontend
|
router.post( // not used on frontend
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('organizationName').exists().trim().notEmpty(),
|
body('organizationName').exists().trim().notEmpty(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -30,7 +36,7 @@ router.post( // not used on frontend
|
|||||||
router.get(
|
router.get(
|
||||||
'/:organizationId',
|
'/:organizationId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -44,7 +50,7 @@ router.get(
|
|||||||
router.get( // deprecated (moved to api/v2/organizations/:organizationId/memberships)
|
router.get( // deprecated (moved to api/v2/organizations/:organizationId/memberships)
|
||||||
'/:organizationId/users',
|
'/:organizationId/users',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -58,7 +64,7 @@ router.get( // deprecated (moved to api/v2/organizations/:organizationId/members
|
|||||||
router.get(
|
router.get(
|
||||||
'/:organizationId/my-workspaces', // deprecated (moved to api/v2/organizations/:organizationId/workspaces)
|
'/:organizationId/my-workspaces', // deprecated (moved to api/v2/organizations/:organizationId/workspaces)
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -72,7 +78,7 @@ router.get(
|
|||||||
router.patch(
|
router.patch(
|
||||||
'/:organizationId/name',
|
'/:organizationId/name',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -87,7 +93,7 @@ router.patch(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:organizationId/incidentContactOrg',
|
'/:organizationId/incidentContactOrg',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -101,7 +107,7 @@ router.get(
|
|||||||
router.post(
|
router.post(
|
||||||
'/:organizationId/incidentContactOrg',
|
'/:organizationId/incidentContactOrg',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -116,7 +122,7 @@ router.post(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:organizationId/incidentContactOrg',
|
'/:organizationId/incidentContactOrg',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -131,7 +137,7 @@ router.delete(
|
|||||||
router.post(
|
router.post(
|
||||||
'/:organizationId/customer-portal-session',
|
'/:organizationId/customer-portal-session',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -145,7 +151,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:organizationId/subscriptions',
|
'/:organizationId/subscriptions',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -159,7 +165,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:organizationId/workspace-memberships',
|
'/:organizationId/workspace-memberships',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
|
|||||||
@@ -4,11 +4,14 @@ import { body } from 'express-validator';
|
|||||||
import { requireAuth, requireSignupAuth, validateRequest } from '../../middleware';
|
import { requireAuth, requireSignupAuth, validateRequest } from '../../middleware';
|
||||||
import { passwordController } from '../../controllers/v1';
|
import { passwordController } from '../../controllers/v1';
|
||||||
import { passwordLimiter } from '../../helpers/rateLimiter';
|
import { passwordLimiter } from '../../helpers/rateLimiter';
|
||||||
|
import {
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/srp1',
|
'/srp1',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('clientPublicKey').exists().isString().trim().notEmpty(),
|
body('clientPublicKey').exists().isString().trim().notEmpty(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -19,7 +22,7 @@ router.post(
|
|||||||
'/change-password',
|
'/change-password',
|
||||||
passwordLimiter,
|
passwordLimiter,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('clientProof').exists().trim().notEmpty(),
|
body('clientProof').exists().trim().notEmpty(),
|
||||||
body('protectedKey').exists().isString().trim().notEmpty(),
|
body('protectedKey').exists().isString().trim().notEmpty(),
|
||||||
@@ -62,7 +65,7 @@ router.post(
|
|||||||
'/backup-private-key',
|
'/backup-private-key',
|
||||||
passwordLimiter,
|
passwordLimiter,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('clientProof').exists().isString().trim().notEmpty(),
|
body('clientProof').exists().isString().trim().notEmpty(),
|
||||||
body('encryptedPrivateKey').exists().isString().trim().notEmpty(), // (backup) private key encrypted under a strong key
|
body('encryptedPrivateKey').exists().isString().trim().notEmpty(), // (backup) private key encrypted under a strong key
|
||||||
|
|||||||
@@ -8,14 +8,18 @@ import {
|
|||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { body, query, param } from 'express-validator';
|
import { body, query, param } from 'express-validator';
|
||||||
import { secretController } from '../../controllers/v1';
|
import { secretController } from '../../controllers/v1';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
|
|
||||||
// note to devs: these endpoints will be deprecated in favor of v2
|
// note to devs: these endpoints will be deprecated in favor of v2
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/:workspaceId',
|
'/:workspaceId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -33,7 +37,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId',
|
'/:workspaceId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
|
|||||||
@@ -7,7 +7,11 @@ import {
|
|||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { body } from 'express-validator';
|
import { body } from 'express-validator';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
import { serviceTokenController } from '../../controllers/v1';
|
import { serviceTokenController } from '../../controllers/v1';
|
||||||
|
|
||||||
// note: deprecate service-token routes in favor of service-token data routes/structure
|
// note: deprecate service-token routes in favor of service-token data routes/structure
|
||||||
@@ -21,7 +25,7 @@ router.get(
|
|||||||
router.post(
|
router.post(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
|
|||||||
@@ -2,11 +2,14 @@ import express from 'express';
|
|||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
import { requireAuth } from '../../middleware';
|
import { requireAuth } from '../../middleware';
|
||||||
import { userController } from '../../controllers/v1';
|
import { userController } from '../../controllers/v1';
|
||||||
|
import {
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
userController.getUser
|
userController.getUser
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ const router = express.Router();
|
|||||||
import { requireAuth, validateRequest } from '../../middleware';
|
import { requireAuth, validateRequest } from '../../middleware';
|
||||||
import { body, query } from 'express-validator';
|
import { body, query } from 'express-validator';
|
||||||
import { userActionController } from '../../controllers/v1';
|
import { userActionController } from '../../controllers/v1';
|
||||||
|
import { AUTH_MODE_JWT } from '../../variables';
|
||||||
|
|
||||||
// note: [userAction] will be deprecated in /v2 in favor of [action]
|
// note: [userAction] will be deprecated in /v2 in favor of [action]
|
||||||
router.post(
|
router.post(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('action'),
|
body('action'),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -18,7 +19,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
query('action'),
|
query('action'),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
|
|||||||
@@ -6,13 +6,17 @@ import {
|
|||||||
requireWorkspaceAuth,
|
requireWorkspaceAuth,
|
||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
import { workspaceController, membershipController } from '../../controllers/v1';
|
import { workspaceController, membershipController } from '../../controllers/v1';
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/keys',
|
'/:workspaceId/keys',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -26,7 +30,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/users',
|
'/:workspaceId/users',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -40,7 +44,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
workspaceController.getWorkspaces
|
workspaceController.getWorkspaces
|
||||||
);
|
);
|
||||||
@@ -48,7 +52,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId',
|
'/:workspaceId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -62,7 +66,7 @@ router.get(
|
|||||||
router.post(
|
router.post(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('workspaceName').exists().trim().notEmpty(),
|
body('workspaceName').exists().trim().notEmpty(),
|
||||||
body('organizationId').exists().trim().notEmpty(),
|
body('organizationId').exists().trim().notEmpty(),
|
||||||
@@ -73,7 +77,7 @@ router.post(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:workspaceId',
|
'/:workspaceId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN],
|
acceptedRoles: [ADMIN],
|
||||||
@@ -87,7 +91,7 @@ router.delete(
|
|||||||
router.post(
|
router.post(
|
||||||
'/:workspaceId/name',
|
'/:workspaceId/name',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -102,7 +106,7 @@ router.post(
|
|||||||
router.post(
|
router.post(
|
||||||
'/:workspaceId/invite-signup',
|
'/:workspaceId/invite-signup',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -117,7 +121,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/integrations',
|
'/:workspaceId/integrations',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -131,7 +135,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/authorizations',
|
'/:workspaceId/authorizations',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -145,7 +149,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/service-tokens', // deprecate
|
'/:workspaceId/service-tokens', // deprecate
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
|
|||||||
@@ -1,16 +1,19 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
import { param, body } from 'express-validator';
|
||||||
import {
|
import {
|
||||||
requireAuth,
|
requireAuth,
|
||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { param, body } from 'express-validator';
|
|
||||||
import { apiKeyDataController } from '../../controllers/v2';
|
import { apiKeyDataController } from '../../controllers/v2';
|
||||||
|
import {
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
apiKeyDataController.getAPIKeyData
|
apiKeyDataController.getAPIKeyData
|
||||||
);
|
);
|
||||||
@@ -18,7 +21,7 @@ router.get(
|
|||||||
router.post(
|
router.post(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('name').exists().trim(),
|
body('name').exists().trim(),
|
||||||
body('expiresIn'), // measured in ms
|
body('expiresIn'), // measured in ms
|
||||||
@@ -29,7 +32,7 @@ router.post(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:apiKeyDataId',
|
'/:apiKeyDataId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
param('apiKeyDataId').exists().trim(),
|
param('apiKeyDataId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
|
|||||||
@@ -7,12 +7,16 @@ import {
|
|||||||
requireWorkspaceAuth,
|
requireWorkspaceAuth,
|
||||||
validateRequest,
|
validateRequest,
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/:workspaceId/environments',
|
'/:workspaceId/environments',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt'],
|
acceptedAuthModes: [AUTH_MODE_JWT],
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -28,7 +32,7 @@ router.post(
|
|||||||
router.put(
|
router.put(
|
||||||
'/:workspaceId/environments',
|
'/:workspaceId/environments',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt'],
|
acceptedAuthModes: [AUTH_MODE_JWT],
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -45,7 +49,7 @@ router.put(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:workspaceId/environments',
|
'/:workspaceId/environments',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt'],
|
acceptedAuthModes: [AUTH_MODE_JWT],
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN],
|
acceptedRoles: [ADMIN],
|
||||||
@@ -60,7 +64,7 @@ router.delete(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/environments',
|
'/:workspaceId/environments',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt'],
|
acceptedAuthModes: [AUTH_MODE_JWT],
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [MEMBER, ADMIN],
|
acceptedRoles: [MEMBER, ADMIN],
|
||||||
@@ -71,4 +75,4 @@ router.get(
|
|||||||
environmentController.getAllAccessibleEnvironmentsOfWorkspace
|
environmentController.getAllAccessibleEnvironmentsOfWorkspace
|
||||||
);
|
);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
@@ -7,7 +7,14 @@ import {
|
|||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { body, param } from 'express-validator';
|
import { body, param } from 'express-validator';
|
||||||
import { OWNER, ADMIN, MEMBER, ACCEPTED } from '../../variables';
|
import {
|
||||||
|
OWNER,
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
ACCEPTED,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_API_KEY
|
||||||
|
} from '../../variables';
|
||||||
import { organizationsController } from '../../controllers/v2';
|
import { organizationsController } from '../../controllers/v2';
|
||||||
|
|
||||||
// TODO: /POST to create membership
|
// TODO: /POST to create membership
|
||||||
@@ -17,7 +24,7 @@ router.get(
|
|||||||
param('organizationId').exists().trim(),
|
param('organizationId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -33,7 +40,7 @@ router.patch(
|
|||||||
body('role').exists().isString().trim().isIn([OWNER, ADMIN, MEMBER]),
|
body('role').exists().isString().trim().isIn([OWNER, ADMIN, MEMBER]),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -52,7 +59,7 @@ router.delete(
|
|||||||
param('membershipId').exists().trim(),
|
param('membershipId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -70,7 +77,7 @@ router.get(
|
|||||||
param('organizationId').exists().trim(),
|
param('organizationId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -84,7 +91,7 @@ router.get(
|
|||||||
param('organizationId').exists().trim(),
|
param('organizationId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
|
|||||||
@@ -6,7 +6,12 @@ import {
|
|||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { body, param, query } from 'express-validator';
|
import { body, param, query } from 'express-validator';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_SERVICE_TOKEN
|
||||||
|
} from '../../variables';
|
||||||
import { CreateSecretRequestBody, ModifySecretRequestBody } from '../../types/secret';
|
import { CreateSecretRequestBody, ModifySecretRequestBody } from '../../types/secret';
|
||||||
import { secretController } from '../../controllers/v2';
|
import { secretController } from '../../controllers/v2';
|
||||||
|
|
||||||
@@ -17,7 +22,7 @@ const router = express.Router();
|
|||||||
router.post(
|
router.post(
|
||||||
'/batch-create/workspace/:workspaceId/environment/:environment',
|
'/batch-create/workspace/:workspaceId/environment/:environment',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -34,7 +39,7 @@ router.post(
|
|||||||
router.post(
|
router.post(
|
||||||
'/workspace/:workspaceId/environment/:environment',
|
'/workspace/:workspaceId/environment/:environment',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -53,7 +58,7 @@ router.get(
|
|||||||
param('workspaceId').exists().trim(),
|
param('workspaceId').exists().trim(),
|
||||||
query("environment").exists(),
|
query("environment").exists(),
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'serviceToken']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_SERVICE_TOKEN]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -67,7 +72,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:secretId',
|
'/:secretId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'serviceToken']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_SERVICE_TOKEN]
|
||||||
}),
|
}),
|
||||||
requireSecretAuth({
|
requireSecretAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
@@ -79,7 +84,7 @@ router.get(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/batch/workspace/:workspaceId/environment/:environmentName',
|
'/batch/workspace/:workspaceId/environment/:environmentName',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
param('workspaceId').exists().isMongoId().trim(),
|
param('workspaceId').exists().isMongoId().trim(),
|
||||||
param('environmentName').exists().trim(),
|
param('environmentName').exists().trim(),
|
||||||
@@ -95,7 +100,7 @@ router.delete(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:secretId',
|
'/:secretId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireSecretAuth({
|
requireSecretAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
@@ -108,7 +113,7 @@ router.delete(
|
|||||||
router.patch(
|
router.patch(
|
||||||
'/batch-modify/workspace/:workspaceId/environment/:environmentName',
|
'/batch-modify/workspace/:workspaceId/environment/:environmentName',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('secrets').exists().isArray().custom((secrets: ModifySecretRequestBody[]) => secrets.length > 0),
|
body('secrets').exists().isArray().custom((secrets: ModifySecretRequestBody[]) => secrets.length > 0),
|
||||||
param('workspaceId').exists().isMongoId().trim(),
|
param('workspaceId').exists().isMongoId().trim(),
|
||||||
@@ -124,7 +129,7 @@ router.patch(
|
|||||||
router.patch(
|
router.patch(
|
||||||
'/workspace/:workspaceId/environment/:environmentName',
|
'/workspace/:workspaceId/environment/:environmentName',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
body('secret').isObject(),
|
body('secret').isObject(),
|
||||||
param('workspaceId').exists().isMongoId().trim(),
|
param('workspaceId').exists().isMongoId().trim(),
|
||||||
|
|||||||
@@ -15,7 +15,11 @@ import {
|
|||||||
SECRET_PERSONAL,
|
SECRET_PERSONAL,
|
||||||
SECRET_SHARED,
|
SECRET_SHARED,
|
||||||
PERMISSION_READ_SECRETS,
|
PERMISSION_READ_SECRETS,
|
||||||
PERMISSION_WRITE_SECRETS
|
PERMISSION_WRITE_SECRETS,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_SERVICE_ACCOUNT,
|
||||||
|
AUTH_MODE_SERVICE_TOKEN,
|
||||||
|
AUTH_MODE_API_KEY
|
||||||
} from '../../variables';
|
} from '../../variables';
|
||||||
import {
|
import {
|
||||||
BatchSecretRequest
|
BatchSecretRequest
|
||||||
@@ -24,7 +28,7 @@ import {
|
|||||||
router.post(
|
router.post(
|
||||||
'/batch',
|
'/batch',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey', 'serviceToken']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY, AUTH_MODE_SERVICE_TOKEN]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -100,7 +104,7 @@ router.post(
|
|||||||
}),
|
}),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey', 'serviceToken', 'serviceAccount']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY, AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_SERVICE_ACCOUNT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -118,7 +122,7 @@ router.get(
|
|||||||
query('tagSlugs'),
|
query('tagSlugs'),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey', 'serviceToken', 'serviceAccount']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY, AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_SERVICE_ACCOUNT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -159,7 +163,7 @@ router.patch(
|
|||||||
}),
|
}),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey', 'serviceToken', 'serviceAccount']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY, AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_SERVICE_ACCOUNT]
|
||||||
}),
|
}),
|
||||||
requireSecretsAuth({
|
requireSecretsAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -188,7 +192,7 @@ router.delete(
|
|||||||
.isEmpty(),
|
.isEmpty(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey', 'serviceToken', 'serviceAccount']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY, AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_SERVICE_ACCOUNT]
|
||||||
}),
|
}),
|
||||||
requireSecretsAuth({
|
requireSecretsAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
|
|||||||
@@ -13,14 +13,16 @@ import {
|
|||||||
OWNER,
|
OWNER,
|
||||||
ADMIN,
|
ADMIN,
|
||||||
MEMBER,
|
MEMBER,
|
||||||
ACCEPTED
|
ACCEPTED,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_SERVICE_ACCOUNT
|
||||||
} from '../../variables';
|
} from '../../variables';
|
||||||
import { serviceAccountsController } from '../../controllers/v2';
|
import { serviceAccountsController } from '../../controllers/v2';
|
||||||
|
|
||||||
router.get( // TODO: check
|
router.get( // TODO: check
|
||||||
'/me',
|
'/me',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['serviceAccount']
|
acceptedAuthModes: [AUTH_MODE_SERVICE_ACCOUNT]
|
||||||
}),
|
}),
|
||||||
serviceAccountsController.getCurrentServiceAccount
|
serviceAccountsController.getCurrentServiceAccount
|
||||||
);
|
);
|
||||||
@@ -29,7 +31,7 @@ router.get(
|
|||||||
'/:serviceAccountId',
|
'/:serviceAccountId',
|
||||||
param('serviceAccountId').exists().isString().trim(),
|
param('serviceAccountId').exists().isString().trim(),
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireServiceAccountAuth({
|
requireServiceAccountAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -46,7 +48,7 @@ router.post(
|
|||||||
body('expiresIn').isNumeric(), // measured in ms
|
body('expiresIn').isNumeric(), // measured in ms
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireOrganizationAuth({
|
requireOrganizationAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
acceptedRoles: [OWNER, ADMIN, MEMBER],
|
||||||
@@ -61,7 +63,7 @@ router.patch(
|
|||||||
param('serviceAccountId').exists().isString().trim(),
|
param('serviceAccountId').exists().isString().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireServiceAccountAuth({
|
requireServiceAccountAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -75,7 +77,7 @@ router.delete(
|
|||||||
param('serviceAccountId').exists().isString().trim(),
|
param('serviceAccountId').exists().isString().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireServiceAccountAuth({
|
requireServiceAccountAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -89,7 +91,7 @@ router.get(
|
|||||||
param('serviceAccountId').exists().isString().trim(),
|
param('serviceAccountId').exists().isString().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireServiceAccountAuth({
|
requireServiceAccountAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -109,7 +111,7 @@ router.post(
|
|||||||
body('nonce').exists().isString().notEmpty(),
|
body('nonce').exists().isString().notEmpty(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireServiceAccountAuth({
|
requireServiceAccountAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -128,7 +130,7 @@ router.delete(
|
|||||||
param('serviceAccountWorkspacePermissionId').exists().isString().trim(),
|
param('serviceAccountWorkspacePermissionId').exists().isString().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireServiceAccountAuth({
|
requireServiceAccountAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
@@ -145,7 +147,7 @@ router.get(
|
|||||||
'/:serviceAccountId/keys',
|
'/:serviceAccountId/keys',
|
||||||
query('workspaceId').optional().isString(),
|
query('workspaceId').optional().isString(),
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'serviceAccount']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_SERVICE_ACCOUNT]
|
||||||
}),
|
}),
|
||||||
requireServiceAccountAuth({
|
requireServiceAccountAuth({
|
||||||
acceptedRoles: [OWNER, ADMIN],
|
acceptedRoles: [OWNER, ADMIN],
|
||||||
|
|||||||
@@ -10,14 +10,17 @@ import { param, body } from 'express-validator';
|
|||||||
import {
|
import {
|
||||||
ADMIN,
|
ADMIN,
|
||||||
MEMBER,
|
MEMBER,
|
||||||
PERMISSION_WRITE_SECRETS
|
PERMISSION_WRITE_SECRETS,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_SERVICE_ACCOUNT,
|
||||||
|
AUTH_MODE_SERVICE_TOKEN
|
||||||
} from '../../variables';
|
} from '../../variables';
|
||||||
import { serviceTokenDataController } from '../../controllers/v2';
|
import { serviceTokenDataController } from '../../controllers/v2';
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['serviceToken']
|
acceptedAuthModes: [AUTH_MODE_SERVICE_TOKEN]
|
||||||
}),
|
}),
|
||||||
serviceTokenDataController.getServiceTokenData
|
serviceTokenDataController.getServiceTokenData
|
||||||
);
|
);
|
||||||
@@ -25,7 +28,7 @@ router.get(
|
|||||||
router.post(
|
router.post(
|
||||||
'/',
|
'/',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'serviceAccount']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_SERVICE_ACCOUNT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -56,7 +59,7 @@ router.post(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/:serviceTokenDataId',
|
'/:serviceTokenDataId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireServiceTokenDataAuth({
|
requireServiceTokenDataAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER]
|
acceptedRoles: [ADMIN, MEMBER]
|
||||||
|
|||||||
@@ -7,12 +7,16 @@ import {
|
|||||||
requireWorkspaceAuth,
|
requireWorkspaceAuth,
|
||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT
|
||||||
|
} from '../../variables';
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/tags',
|
'/:workspaceId/tags',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt'],
|
acceptedAuthModes: [AUTH_MODE_JWT],
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [MEMBER, ADMIN],
|
acceptedRoles: [MEMBER, ADMIN],
|
||||||
@@ -26,7 +30,7 @@ router.get(
|
|||||||
router.delete(
|
router.delete(
|
||||||
'/tags/:tagId',
|
'/tags/:tagId',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt'],
|
acceptedAuthModes: [AUTH_MODE_JWT],
|
||||||
}),
|
}),
|
||||||
param('tagId').exists().trim(),
|
param('tagId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -36,7 +40,7 @@ router.delete(
|
|||||||
router.post(
|
router.post(
|
||||||
'/:workspaceId/tags',
|
'/:workspaceId/tags',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt'],
|
acceptedAuthModes: [AUTH_MODE_JWT],
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [MEMBER, ADMIN],
|
acceptedRoles: [MEMBER, ADMIN],
|
||||||
|
|||||||
@@ -6,11 +6,15 @@ import {
|
|||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { body } from 'express-validator';
|
import { body } from 'express-validator';
|
||||||
import { usersController } from '../../controllers/v2';
|
import { usersController } from '../../controllers/v2';
|
||||||
|
import {
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_API_KEY
|
||||||
|
} from '../../variables';
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/me',
|
'/me',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
usersController.getMe
|
usersController.getMe
|
||||||
);
|
);
|
||||||
@@ -18,7 +22,7 @@ router.get(
|
|||||||
router.patch(
|
router.patch(
|
||||||
'/me/mfa',
|
'/me/mfa',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
body('isMfaEnabled').exists().isBoolean(),
|
body('isMfaEnabled').exists().isBoolean(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
@@ -28,7 +32,7 @@ router.patch(
|
|||||||
router.get(
|
router.get(
|
||||||
'/me/organizations',
|
'/me/organizations',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
usersController.getMyOrganizations
|
usersController.getMyOrganizations
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,13 +7,19 @@ import {
|
|||||||
requireWorkspaceAuth,
|
requireWorkspaceAuth,
|
||||||
validateRequest
|
validateRequest
|
||||||
} from '../../middleware';
|
} from '../../middleware';
|
||||||
import { ADMIN, MEMBER } from '../../variables';
|
import {
|
||||||
|
ADMIN,
|
||||||
|
MEMBER,
|
||||||
|
AUTH_MODE_JWT,
|
||||||
|
AUTH_MODE_SERVICE_TOKEN,
|
||||||
|
AUTH_MODE_API_KEY
|
||||||
|
} from '../../variables';
|
||||||
import { workspaceController } from '../../controllers/v2';
|
import { workspaceController } from '../../controllers/v2';
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/:workspaceId/secrets',
|
'/:workspaceId/secrets',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -31,7 +37,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/secrets',
|
'/:workspaceId/secrets',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'serviceToken']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_SERVICE_TOKEN]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -47,7 +53,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/encrypted-key',
|
'/:workspaceId/encrypted-key',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -61,7 +67,7 @@ router.get(
|
|||||||
router.get(
|
router.get(
|
||||||
'/:workspaceId/service-token-data',
|
'/:workspaceId/service-token-data',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -72,14 +78,12 @@ router.get(
|
|||||||
workspaceController.getWorkspaceServiceTokenData
|
workspaceController.getWorkspaceServiceTokenData
|
||||||
);
|
);
|
||||||
|
|
||||||
// TODO: /POST to create membership and re-route inviting user to workspace there
|
|
||||||
|
|
||||||
router.get( // new - TODO: rewire dashboard to this route
|
router.get( // new - TODO: rewire dashboard to this route
|
||||||
'/:workspaceId/memberships',
|
'/:workspaceId/memberships',
|
||||||
param('workspaceId').exists().trim(),
|
param('workspaceId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -95,7 +99,7 @@ router.patch( // TODO - rewire dashboard to this route
|
|||||||
body('role').exists().isString().trim().isIn([ADMIN, MEMBER]),
|
body('role').exists().isString().trim().isIn([ADMIN, MEMBER]),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN],
|
acceptedRoles: [ADMIN],
|
||||||
@@ -113,7 +117,7 @@ router.delete( // TODO - rewire dashboard to this route
|
|||||||
param('membershipId').exists().trim(),
|
param('membershipId').exists().trim(),
|
||||||
validateRequest,
|
validateRequest,
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt', 'apiKey']
|
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN],
|
acceptedRoles: [ADMIN],
|
||||||
@@ -128,7 +132,7 @@ router.delete( // TODO - rewire dashboard to this route
|
|||||||
router.patch(
|
router.patch(
|
||||||
'/:workspaceId/auto-capitalization',
|
'/:workspaceId/auto-capitalization',
|
||||||
requireAuth({
|
requireAuth({
|
||||||
acceptedAuthModes: ['jwt']
|
acceptedAuthModes: [AUTH_MODE_JWT]
|
||||||
}),
|
}),
|
||||||
requireWorkspaceAuth({
|
requireWorkspaceAuth({
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
acceptedRoles: [ADMIN, MEMBER],
|
||||||
@@ -140,18 +144,4 @@ router.patch(
|
|||||||
workspaceController.toggleAutoCapitalization
|
workspaceController.toggleAutoCapitalization
|
||||||
);
|
);
|
||||||
|
|
||||||
router.get(
|
|
||||||
'/:workspaceId/aak',
|
|
||||||
requireAuth({
|
|
||||||
acceptedAuthModes: ['serviceAccount']
|
|
||||||
}),
|
|
||||||
requireWorkspaceAuth({
|
|
||||||
acceptedRoles: [ADMIN, MEMBER],
|
|
||||||
locationWorkspaceId: 'params'
|
|
||||||
}),
|
|
||||||
param('workspaceId').exists().trim(),
|
|
||||||
validateRequest,
|
|
||||||
workspaceController.getAak
|
|
||||||
);
|
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|||||||
15
backend/src/types/express/index.d.ts
vendored
15
backend/src/types/express/index.d.ts
vendored
@@ -1,5 +1,10 @@
|
|||||||
import * as express from 'express';
|
import * as express from 'express';
|
||||||
import { ISecret } from '../../models';
|
import {
|
||||||
|
IUser,
|
||||||
|
IServiceAccount,
|
||||||
|
IServiceTokenData,
|
||||||
|
ISecret
|
||||||
|
} from '../../models';
|
||||||
|
|
||||||
// TODO: fix (any) types
|
// TODO: fix (any) types
|
||||||
declare global {
|
declare global {
|
||||||
@@ -24,7 +29,13 @@ declare global {
|
|||||||
serviceTokenData: any;
|
serviceTokenData: any;
|
||||||
apiKeyData: any;
|
apiKeyData: any;
|
||||||
query?: any;
|
query?: any;
|
||||||
authData: any;
|
authData: {
|
||||||
|
authMode: string;
|
||||||
|
authPayload: IUser | IServiceAccount | IServiceTokenData;
|
||||||
|
};
|
||||||
|
requestData: {
|
||||||
|
[key: string]: string
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user