From b2b33b4f8b2dc8f45e6b56985d11ab4a4adeeb47 Mon Sep 17 00:00:00 2001 From: Carlos Monastyrski Date: Fri, 19 Sep 2025 20:50:51 -0300 Subject: [PATCH] Merge remote-tracking branch 'origin/main' into ENG-3639 --- ...standalone-docker-img-postgres-offical.yml | 2 + .github/workflows/release_helm_gateway.yaml | 2 +- Dockerfile.standalone-infisical | 6 + .../e2e-test/routes/v2/secret-folder.spec.ts | 165 ++ .../e2e-test/routes/v2/service-token.spec.ts | 2 +- backend/e2e-test/routes/v4/secrets.spec.ts | 678 +++++++++ ...ions-and-secret-syncs-unique-constraint.ts | 5 +- .../20250819081226_identity-lockouts-ldap.ts | 57 + ...912011133_app-connection-project-id-col.ts | 41 + backend/src/db/schemas/app-connections.ts | 3 +- backend/src/db/schemas/identity-ldap-auths.ts | 6 +- .../audit-log-stream-router.ts | 6 + .../v1/audit-log-stream-routers/index.ts | 14 + .../v1/deprecated-project-role-router.ts | 342 +++++ .../ee/routes/v1/deprecated-project-router.ts | 195 +++ ...eprecated-secret-approval-policy-router.ts | 293 ++++ backend/src/ee/routes/v1/index.ts | 25 +- backend/src/ee/routes/v1/org-role-router.ts | 43 + .../src/ee/routes/v1/project-role-router.ts | 140 +- backend/src/ee/routes/v1/project-router.ts | 181 +-- backend/src/ee/routes/v1/relay-router.ts | 60 +- .../v1/secret-approval-request-router.ts | 8 +- backend/src/ee/routes/v1/trusted-ip-router.ts | 24 +- ...r.ts => deprecated-project-role-router.ts} | 59 +- backend/src/ee/routes/v2/index.ts | 9 +- .../secret-approval-policy-router.ts | 10 +- .../access-approval-request-service.ts | 16 +- .../audit-log-stream-enums.ts | 1 + .../audit-log-stream-factory.ts | 2 + .../audit-log-stream/audit-log-stream-fns.ts | 2 + .../audit-log-stream-types.ts | 4 +- .../azure/azure-provider-factory.ts | 98 ++ .../azure/azure-provider-fns.ts | 8 + .../azure/azure-provider-schemas.ts | 52 + .../azure/azure-provider-types.ts | 7 + .../ee/services/audit-log/audit-log-types.ts | 201 ++- .../dynamic-secret/providers/aws-iam.ts | 384 ++++- .../dynamic-secret/providers/models.ts | 8 + .../services/gateway-v2/gateway-v2-service.ts | 6 +- .../ee/services/license/license-service.ts | 5 +- .../src/ee/services/license/license-types.ts | 2 +- .../ee/services/permission/default-roles.ts | 14 + .../ee/services/permission/org-permission.ts | 32 + .../services/permission/project-permission.ts | 47 +- backend/src/ee/services/pit/pit-service.ts | 6 +- .../src/ee/services/relay/relay-constants.ts | 1 + .../src/ee/services/relay/relay-service.ts | 139 +- .../secret-approval-request-fns.ts | 17 +- .../secret-approval-request-service.ts | 39 +- .../ldap-password-rotation-fns.ts | 3 +- .../secret-rotation-v2-dal.ts | 3 + .../secret-rotation-v2-queue.ts | 23 +- .../secret-rotation-v2-service.ts | 8 +- .../secret-rotation-queue.ts | 2 +- .../secret-scanning-v2-dal.ts | 5 +- .../secret-scanning-v2-queue.ts | 36 +- .../secret-scanning-v2-service.ts | 10 +- backend/src/lib/api-docs/constants.ts | 82 +- backend/src/queue/queue-service.ts | 2 + backend/src/server/routes/index.ts | 39 +- .../app-connection-endpoints.ts | 127 +- .../app-connection-router.ts | 23 +- .../src/server/routes/v1/dashboard-router.ts | 426 +++++- .../v1/deprecated-project-env-router.ts | 298 ++++ .../deprecated-project-membership-router.ts | 378 +++++ .../routes/v1/deprecated-project-router.ts | 728 +++++++++ .../v1/deprecated-secret-folder-router.ts | 444 ++++++ .../v1/deprecated-secret-import-router.ts | 472 ++++++ .../routes/v1/deprecated-secret-tag-router.ts | 213 +++ .../routes/{v2 => v1}/group-project-router.ts | 0 .../routes/v1/identity-ldap-auth-router.ts | 140 +- .../{v2 => v1}/identity-project-router.ts | 0 backend/src/server/routes/v1/index.ts | 35 +- .../server/routes/v1/notification-router.ts | 12 + .../server/routes/v1/project-env-router.ts | 86 +- .../routes/v1/project-membership-router.ts | 187 ++- .../src/server/routes/v1/project-router.ts | 972 ++++++++---- .../src/server/routes/v1/secret-tag-router.ts | 36 +- .../src/server/routes/v1/webhook-router.ts | 9 +- .../v2/deprecated-group-project-router.ts | 363 +++++ .../v2/deprecated-identity-project-router.ts | 418 ++++++ ...> deprecated-project-membership-router.ts} | 6 +- ...router.ts => deprecated-project-router.ts} | 76 +- backend/src/server/routes/v2/index.ts | 23 +- .../routes/{v1 => v2}/secret-folder-router.ts | 85 +- .../routes/{v1 => v2}/secret-import-router.ts | 79 +- ...-router.ts => deprecated-secret-router.ts} | 159 +- backend/src/server/routes/v3/index.ts | 6 +- .../routes/v3/secret-blind-index-router.ts | 109 -- backend/src/server/routes/v4/index.ts | 5 + backend/src/server/routes/v4/secret-router.ts | 1335 +++++++++++++++++ .../app-connection/app-connection-dal.ts | 110 +- .../app-connection/app-connection-fns.ts | 149 +- .../app-connection/app-connection-schemas.ts | 11 +- .../app-connection/app-connection-service.ts | 415 +++-- .../app-connection/app-connection-types.ts | 14 +- .../auth0/auth0-connection-fns.ts | 5 +- .../azure-adcs/azure-adcs-connection-fns.ts | 3 +- .../azure-client-secrets-connection-fns.ts | 4 + .../azure-devops/azure-devops-fns.ts | 15 +- .../azure-key-vault-connection-fns.ts | 12 +- .../camunda/camunda-connection-fns.ts | 5 +- .../databricks/databricks-connection-fns.ts | 5 +- .../gitlab/gitlab-connection-fns.ts | 7 +- .../heroku/heroku-connection-fns.ts | 5 +- .../src/services/auth/auth-login-service.ts | 28 +- .../acme/acme-certificate-authority-fns.ts | 20 +- .../azure-ad-cs-certificate-authority-fns.ts | 18 +- .../certificate-authority-queue.ts | 2 +- .../certificate-authority-service.ts | 2 +- .../external-migration-fns/import.ts | 2 +- .../external-migration-queue.ts | 41 +- .../external-migration-service.ts | 4 + .../identity-ldap-auth-service.ts | 170 ++- .../identity-ldap-auth-types.ts | 17 + .../identity-ua/identity-ua-service.ts | 294 ++-- .../src/services/identity/identity-service.ts | 14 +- .../notification/notification-types.ts | 17 +- .../services/org-admin/org-admin-service.ts | 49 +- .../project-membership-service.ts | 16 +- backend/src/services/project/project-dal.ts | 6 + .../src/services/project/project-service.ts | 52 +- backend/src/services/project/project-types.ts | 9 +- .../secret-sync/gitlab/gitlab-sync-fns.ts | 1 + .../secret-sync/heroku/heroku-sync-fns.ts | 1 + .../services/secret-sync/secret-sync-dal.ts | 5 +- .../services/secret-sync/secret-sync-queue.ts | 36 +- .../secret-sync/secret-sync-service.ts | 14 +- .../secret-v2-bridge/secret-v2-bridge-dal.ts | 7 +- .../secret-v2-bridge-service.ts | 70 +- .../secret-v2-bridge-types.ts | 1 + backend/src/services/secret/secret-service.ts | 25 +- backend/src/services/secret/secret-types.ts | 4 +- .../src/services/telemetry/telemetry-types.ts | 14 +- backend/src/services/user/user-service.ts | 9 +- .../deprecated/environments/create.mdx | 4 + .../deprecated/environments/delete.mdx | 4 + .../deprecated/environments/update.mdx | 4 + .../endpoints/deprecated/folders/create.mdx | 4 + .../endpoints/deprecated/folders/delete.mdx | 4 + .../deprecated/folders/get-by-id.mdx | 4 + .../endpoints/deprecated/folders/list.mdx | 4 + .../endpoints/deprecated/folders/update.mdx | 4 + .../organizations/projects.mdx} | 0 .../deprecated/project-groups/create.mdx | 4 + .../deprecated/project-groups/delete.mdx | 4 + .../deprecated/project-groups/get-by-id.mdx | 4 + .../deprecated/project-groups/list.mdx | 4 + .../deprecated/project-groups/update.mdx | 4 + .../add-identity-membership.mdx | 4 + .../delete-identity-membership.mdx | 4 + .../project-identities/get-by-id.mdx | 4 + .../list-identity-memberships.mdx | 4 + .../update-identity-membership.mdx | 4 + .../deprecated/project-roles/create.mdx | 10 + .../deprecated/project-roles/delete.mdx | 4 + .../deprecated/project-roles/get-by-slug.mdx | 4 + .../deprecated/project-roles/list.mdx | 4 + .../deprecated/project-roles/update.mdx | 4 + .../project-users/delete-membership.mdx | 4 + .../project-users/get-by-username.mdx | 4 + .../invite-member-to-project.mdx} | 0 .../deprecated/project-users/memberships.mdx | 4 + .../remove-member-from-project.mdx} | 0 .../project-users/update-membership.mdx | 4 + .../projects/create-project.mdx} | 0 .../projects/delete-project.mdx} | 0 .../projects/get-project-by-slug.mdx} | 0 .../projects/get-project.mdx} | 2 +- .../projects/project-key.mdx} | 0 .../projects/project-workspace.mdx} | 0 .../projects}/rollback-snapshot.mdx | 0 .../projects}/secret-snapshots.mdx | 0 .../deprecated/projects/update-project.mdx | 4 + .../deprecated/secret-imports/create.mdx | 4 + .../deprecated/secret-imports/delete.mdx | 4 + .../deprecated/secret-imports/list.mdx | 4 + .../deprecated/secret-imports/update.mdx | 4 + .../deprecated/secret-tags/create.mdx | 4 + .../deprecated/secret-tags/delete.mdx | 4 + .../deprecated/secret-tags/get-by-id.mdx | 4 + .../deprecated/secret-tags/get-by-slug.mdx | 4 + .../endpoints/deprecated/secret-tags/list.mdx | 4 + .../deprecated/secret-tags/update.mdx | 4 + .../{ => deprecated}/secrets/attach-tags.mdx | 0 .../deprecated/secrets/create-many.mdx | 5 + .../endpoints/deprecated/secrets/create.mdx | 5 + .../deprecated/secrets/delete-many.mdx | 5 + .../endpoints/deprecated/secrets/delete.mdx | 5 + .../{ => deprecated}/secrets/detach-tags.mdx | 0 .../endpoints/deprecated/secrets/list.mdx | 4 + .../endpoints/deprecated/secrets/read.mdx | 5 + .../deprecated/secrets/update-many.mdx | 5 + .../endpoints/deprecated/secrets/update.mdx | 4 + .../endpoints/environments/create.mdx | 2 +- .../endpoints/environments/delete.mdx | 2 +- .../endpoints/environments/update.mdx | 2 +- .../endpoints/folders/create.mdx | 2 +- .../endpoints/folders/delete.mdx | 2 +- .../endpoints/folders/get-by-id.mdx | 2 +- docs/api-reference/endpoints/folders/list.mdx | 2 +- .../endpoints/folders/update.mdx | 2 +- .../endpoints/project-groups/create.mdx | 2 +- .../endpoints/project-groups/delete.mdx | 2 +- .../endpoints/project-groups/get-by-id.mdx | 2 +- .../endpoints/project-groups/list.mdx | 2 +- .../endpoints/project-groups/update.mdx | 2 +- .../add-identity-membership.mdx | 2 +- .../delete-identity-membership.mdx | 2 +- .../project-identities/get-by-id.mdx | 2 +- .../list-identity-memberships.mdx | 2 +- .../update-identity-membership.mdx | 2 +- .../endpoints/project-roles/create.mdx | 3 +- .../endpoints/project-roles/delete.mdx | 2 +- .../endpoints/project-roles/get-by-slug.mdx | 2 +- .../endpoints/project-roles/list.mdx | 2 +- .../endpoints/project-roles/update.mdx | 2 +- .../project-users/delete-membership.mdx | 2 +- .../project-users/get-by-username.mdx | 2 +- .../invite-member-to-project.mdx | 4 + .../endpoints/project-users/memberships.mdx | 2 +- .../remove-member-from-project.mdx | 4 + .../project-users/update-membership.mdx | 2 +- .../endpoints/projects/create-project.mdx | 4 + .../endpoints/projects/delete-project.mdx | 8 + .../projects/get-project-by-slug.mdx | 4 + .../endpoints/projects/get-project.mdx | 4 + .../endpoints/projects/list-projects.mdx | 4 + .../endpoints/projects/rollback-snapshot.mdx | 4 + .../endpoints/projects/secret-snapshots.mdx | 4 + .../endpoints/projects/update-project.mdx | 4 + .../endpoints/secret-imports/create.mdx | 2 +- .../endpoints/secret-imports/delete.mdx | 2 +- .../endpoints/secret-imports/list.mdx | 2 +- .../endpoints/secret-imports/update.mdx | 2 +- .../endpoints/secret-tags/create.mdx | 4 +- .../endpoints/secret-tags/delete.mdx | 4 +- .../endpoints/secret-tags/get-by-id.mdx | 2 +- .../endpoints/secret-tags/get-by-slug.mdx | 2 +- .../endpoints/secret-tags/list.mdx | 4 +- .../endpoints/secret-tags/update.mdx | 2 +- .../endpoints/secrets/create-many.mdx | 3 +- .../endpoints/secrets/create.mdx | 3 +- .../endpoints/secrets/delete-many.mdx | 3 +- .../endpoints/secrets/delete.mdx | 3 +- docs/api-reference/endpoints/secrets/list.mdx | 2 +- docs/api-reference/endpoints/secrets/read.mdx | 3 +- .../endpoints/secrets/update-many.mdx | 3 +- .../endpoints/secrets/update.mdx | 2 +- docs/cli/commands/gateway.mdx | 24 +- docs/cli/commands/relay.mdx | 212 ++- docs/docs.json | 151 +- .../audit-log-streams/audit-log-streams.mdx | 110 ++ .../platform/auth-methods/email-password.mdx | 3 + .../platform/dynamic-secrets/aws-iam.mdx | 375 +++-- .../platform/gateways/gateway-deployment.mdx | 265 ++++ .../platform/gateways/networking.mdx | 178 --- .../platform/gateways/overview.mdx | 487 +----- .../platform/gateways/relay-deployment.mdx | 243 +++ .../{gateway-security.mdx => security.mdx} | 19 +- .../platform/identities/ldap-auth/general.mdx | 27 +- .../identities/machine-identities.mdx | 12 +- .../platform/identities/universal-auth.mdx | 31 +- .../general/add-connection.png | Bin 1113148 -> 952486 bytes .../audit-log-streams/azure-configure-dce.png | Bin 0 -> 308539 bytes .../audit-log-streams/azure-configure-law.png | Bin 0 -> 396532 bytes .../azure-configure-table.png | Bin 0 -> 400871 bytes .../audit-log-streams/azure-create-als.png | Bin 0 -> 143696 bytes .../audit-log-streams/azure-create-dce.png | Bin 0 -> 373436 bytes .../audit-log-streams/azure-create-law.png | Bin 0 -> 400962 bytes .../audit-log-streams/azure-dce-url.png | Bin 0 -> 527163 bytes .../platform/audit-log-streams/azure-dcr.png | Bin 0 -> 550626 bytes .../azure-go-to-resource.png | Bin 0 -> 473654 bytes .../audit-log-streams/azure-new-table.png | Bin 0 -> 493789 bytes ...ies-org-create-universal-auth-method-1.png | Bin 581835 -> 529646 bytes ...ies-org-create-universal-auth-method-2.png | Bin 552062 -> 524152 bytes ...ies-org-create-universal-auth-method-3.png | Bin 0 -> 501845 bytes .../identities/ldap-reset-lockouts.png | Bin 0 -> 216424 bytes .../platform/identities/ua-reset-lockouts.png | Bin 0 -> 192257 bytes .../app-connections/1password.mdx | 6 +- docs/integrations/app-connections/auth0.mdx | 4 +- docs/integrations/app-connections/aws.mdx | 8 +- .../azure-app-configuration.mdx | 2 +- .../app-connections/azure-client-secrets.mdx | 2 +- .../app-connections/azure-devops.mdx | 2 +- .../app-connections/azure-key-vault.mdx | 2 +- .../app-connections/bitbucket.mdx | 6 +- docs/integrations/app-connections/camunda.mdx | 3 +- docs/integrations/app-connections/checkly.mdx | 6 +- .../app-connections/cloudflare.mdx | 3 +- .../app-connections/databricks.mdx | 3 +- .../app-connections/digital-ocean.mdx | 6 +- docs/integrations/app-connections/flyio.mdx | 6 +- docs/integrations/app-connections/gcp.mdx | 3 +- .../app-connections/github-radar.mdx | 2 +- docs/integrations/app-connections/github.mdx | 4 +- docs/integrations/app-connections/gitlab.mdx | 4 +- .../app-connections/hashicorp-vault.mdx | 4 +- docs/integrations/app-connections/heroku.mdx | 4 +- .../app-connections/humanitec.mdx | 2 +- docs/integrations/app-connections/ldap.mdx | 4 +- docs/integrations/app-connections/mssql.mdx | 6 +- docs/integrations/app-connections/mysql.mdx | 4 +- docs/integrations/app-connections/netlify.mdx | 6 +- docs/integrations/app-connections/oci.mdx | 6 +- docs/integrations/app-connections/okta.mdx | 6 +- .../integrations/app-connections/oracledb.mdx | 4 +- .../integrations/app-connections/overview.mdx | 10 +- .../integrations/app-connections/postgres.mdx | 4 +- docs/integrations/app-connections/railway.mdx | 6 +- docs/integrations/app-connections/render.mdx | 3 +- .../integrations/app-connections/supabase.mdx | 6 +- .../integrations/app-connections/teamcity.mdx | 6 +- .../app-connections/terraform-cloud.mdx | 4 +- docs/integrations/app-connections/vercel.mdx | 6 +- .../integrations/app-connections/windmill.mdx | 5 +- docs/integrations/app-connections/zabbix.mdx | 6 +- .../kubernetes/infisical-secret-crd.mdx | 8 + .../permissions/organization-permissions.mdx | 21 +- .../permissions/project-permissions.mdx | 14 +- docs/sdks/languages/node.mdx | 224 ++- .../guides/upgrading-infisical.mdx | 60 +- .../app-connections/AppConnectionOption.tsx | 45 + .../src/components/app-connections/index.ts | 1 + .../src/components/navigation/NavHeader.tsx | 12 +- .../permissions/AccessTree/hooks/index.ts | 10 +- .../permissions/OrgPermissionCan.tsx | 25 +- .../permissions/VariablePermissionCan.tsx | 17 + frontend/src/components/permissions/index.tsx | 1 + .../project/ProjectOverviewChangeSection.tsx | 24 +- .../components/projects/NewProjectModal.tsx | 6 +- .../projects/RequestProjectAccessModal.tsx | 88 ++ frontend/src/components/projects/index.tsx | 1 + .../CreateSecretRotationV2Modal.tsx | 75 +- .../SecretRotationV2ConfigurationFields.tsx | 4 +- .../forms/SecretRotationV2ConnectionField.tsx | 71 +- .../forms/SecretRotationV2Form.tsx | 21 +- .../CreateSecretScanningDataSourceModal.tsx | 73 +- ...ecretScanningDataSourceConnectionField.tsx | 72 +- .../forms/SecretScanningDataSourceForm.tsx | 18 +- .../secret-syncs/CreateSecretSyncModal.tsx | 14 +- .../forms/CreateSecretSyncForm.tsx | 20 +- .../forms/SecretSyncConnectionField.tsx | 71 +- .../forms/SecretSyncSourceFields.tsx | 8 +- .../SecretReferenceDetails.tsx | 14 +- .../tags/CreateTagModal/CreateTagModal.tsx | 9 +- .../InfisicalSecretInput.tsx | 32 +- .../components/v2/SecretInput/SecretInput.tsx | 21 +- .../v2/SecretPathInput/SecretPathInput.tsx | 10 +- .../src/context/OrgPermissionContext/types.ts | 31 +- .../context/ProjectContext/ProjectContext.tsx | 22 + frontend/src/context/ProjectContext/index.tsx | 1 + .../ProjectPermissionContext.tsx | 4 +- .../context/ProjectPermissionContext/types.ts | 25 +- .../WorkspaceContext/WorkspaceContext.tsx | 22 - .../src/context/WorkspaceContext/index.tsx | 1 - frontend/src/context/index.tsx | 2 +- frontend/src/helpers/appConnections.ts | 9 + frontend/src/helpers/auditLogStreams.ts | 3 + frontend/src/helpers/project.ts | 10 +- .../src/hooks/api/accessApproval/queries.tsx | 4 +- .../src/hooks/api/accessApproval/types.ts | 4 +- .../hooks/api/appConnections/mutations.tsx | 19 +- .../src/hooks/api/appConnections/queries.tsx | 168 ++- .../hooks/api/appConnections/types/index.ts | 103 +- .../appConnections/types/root-connection.ts | 9 + .../hooks/api/assumePrivileges/mutations.tsx | 4 +- .../src/hooks/api/auditLogStreams/enums.ts | 1 + .../hooks/api/auditLogStreams/types/index.ts | 3 + .../types/providers/azure-provider.ts | 14 + .../src/hooks/api/auditLogs/constants.tsx | 31 +- frontend/src/hooks/api/auditLogs/enums.tsx | 31 +- frontend/src/hooks/api/auditLogs/queries.tsx | 14 +- frontend/src/hooks/api/auditLogs/types.tsx | 20 +- frontend/src/hooks/api/auth/queries.tsx | 4 +- frontend/src/hooks/api/ca/mutations.tsx | 12 +- frontend/src/hooks/api/ca/types.ts | 1 + .../api/certificateTemplates/mutations.tsx | 8 +- .../src/hooks/api/certificates/mutations.tsx | 8 +- frontend/src/hooks/api/dashboard/queries.tsx | 76 +- frontend/src/hooks/api/dashboard/types.ts | 19 +- frontend/src/hooks/api/dynamicSecret/types.ts | 8 + .../src/hooks/api/folderCommits/queries.tsx | 88 +- frontend/src/hooks/api/groups/queries.tsx | 2 +- .../src/hooks/api/identities/mutations.tsx | 44 +- frontend/src/hooks/api/identities/types.ts | 23 +- frontend/src/hooks/api/index.tsx | 3 +- .../src/hooks/api/integrationAuth/queries.tsx | 14 +- .../src/hooks/api/integrations/queries.tsx | 8 +- frontend/src/hooks/api/keys/index.tsx | 1 - frontend/src/hooks/api/keys/queries.tsx | 43 - frontend/src/hooks/api/keys/types.ts | 29 - frontend/src/hooks/api/kms/mutations.tsx | 4 +- frontend/src/hooks/api/kms/queries.tsx | 4 +- .../src/hooks/api/migration/mutations.tsx | 4 +- .../src/hooks/api/pkiAlerts/mutations.tsx | 8 +- .../hooks/api/pkiCollections/mutations.tsx | 8 +- .../src/hooks/api/pkiSubscriber/mutations.tsx | 8 +- .../src/hooks/api/projectTemplates/types.ts | 2 +- .../api/{workspace => projects}/index.tsx | 7 +- .../api/{workspace => projects}/mutations.tsx | 38 +- .../api/{workspace => projects}/queries.tsx | 446 +++--- .../src/hooks/api/projects/query-keys.tsx | 77 + .../api/{workspace => projects}/types.ts | 36 +- frontend/src/hooks/api/relays/index.tsx | 3 + frontend/src/hooks/api/relays/mutations.tsx | 17 + frontend/src/hooks/api/relays/queries.tsx | 21 + frontend/src/hooks/api/relays/types.ts | 13 + frontend/src/hooks/api/roles/mutation.tsx | 6 +- frontend/src/hooks/api/roles/queries.tsx | 22 +- frontend/src/hooks/api/roles/types.ts | 4 +- .../src/hooks/api/secretApproval/mutation.tsx | 22 +- .../src/hooks/api/secretApproval/queries.tsx | 35 +- .../src/hooks/api/secretApproval/types.ts | 16 +- .../api/secretApprovalRequest/mutation.tsx | 10 +- .../api/secretApprovalRequest/queries.tsx | 32 +- .../hooks/api/secretApprovalRequest/types.ts | 10 +- .../src/hooks/api/secretFolders/queries.tsx | 56 +- frontend/src/hooks/api/secretFolders/types.ts | 5 +- .../src/hooks/api/secretImports/mutation.tsx | 16 +- .../src/hooks/api/secretImports/queries.tsx | 27 +- frontend/src/hooks/api/secretImports/types.ts | 8 +- .../src/hooks/api/secretRotation/types.ts | 4 +- .../src/hooks/api/secretSnapshots/queries.tsx | 38 +- .../src/hooks/api/secretSnapshots/types.ts | 10 +- frontend/src/hooks/api/secrets/mutations.tsx | 187 ++- frontend/src/hooks/api/secrets/queries.tsx | 80 +- frontend/src/hooks/api/secrets/types.ts | 58 +- .../src/hooks/api/serviceTokens/queries.tsx | 4 +- frontend/src/hooks/api/sshCa/mutations.tsx | 12 +- frontend/src/hooks/api/sshHost/mutations.tsx | 8 +- .../src/hooks/api/sshHostGroup/mutations.tsx | 12 +- frontend/src/hooks/api/tags/queries.tsx | 45 +- frontend/src/hooks/api/tags/types.ts | 2 +- frontend/src/hooks/api/trustedIps/queries.ts | 36 +- frontend/src/hooks/api/types.ts | 25 +- frontend/src/hooks/api/users/mutation.tsx | 6 +- frontend/src/hooks/api/users/queries.tsx | 6 +- frontend/src/hooks/api/users/types.ts | 2 +- frontend/src/hooks/api/webhooks/mutation.tsx | 20 +- frontend/src/hooks/api/webhooks/query.tsx | 12 +- frontend/src/hooks/api/webhooks/types.ts | 8 +- .../api/workflowIntegrations/mutation.tsx | 12 +- .../hooks/api/workflowIntegrations/types.ts | 4 +- .../src/hooks/api/workspace/query-keys.tsx | 86 -- .../src/hooks/useGetProjectTypeFromRoute.tsx | 2 +- frontend/src/hooks/usePathAccessPolicies.tsx | 6 +- frontend/src/layouts/KmsLayout/KmsLayout.tsx | 14 +- .../components/NavBar/Navbar.tsx | 4 +- .../components/NavBar/Notification.tsx | 6 +- .../NavBar/NotificationDropdown.tsx | 2 +- .../components/OrgSidebar/OrgSidebar.tsx | 13 + .../PkiManagerLayout/PkiManagerLayout.tsx | 38 +- .../AssumePrivilegeModeBanner.tsx | 13 +- .../ProjectSelect/ProjectSelect.tsx | 46 +- .../SecretManagerLayout.tsx | 49 +- .../SecretScanningLayout.tsx | 36 +- frontend/src/layouts/SshLayout/SshLayout.tsx | 16 +- .../AlertingPage/components/PkiAlertModal.tsx | 8 +- .../components/PkiAlertsSection.tsx | 6 +- .../components/PkiAlertsTable.tsx | 8 +- .../components/PkiCollectionModal.tsx | 6 +- .../components/PkiCollectionSection.tsx | 6 +- .../components/PkiCollectionTable.tsx | 8 +- .../CertAuthDetailsByIDPage.tsx | 12 +- .../components/CaDetailsSection.tsx | 6 +- .../components/CaRenewalModal.tsx | 6 +- .../ExternalCaInstallForm.tsx | 10 +- .../InternalCaInstallForm.tsx | 12 +- .../components/CaModal.tsx | 12 +- .../components/CaSection.tsx | 12 +- .../components/CaTable.tsx | 8 +- .../components/ExternalCaModal.tsx | 21 +- .../components/ExternalCaSection.tsx | 12 +- .../components/ExternalCaTable.tsx | 6 +- .../components/CertificateImportModal.tsx | 10 +- .../components/CertificateModal.tsx | 14 +- .../components/CertificateRevocationModal.tsx | 8 +- .../components/CertificateTemplateModal.tsx | 14 +- .../CertificateTemplatesSection.tsx | 8 +- .../components/CertificatesSection.tsx | 8 +- .../components/CertificatesTable.tsx | 8 +- .../PkiCollectionDetailsByIDPage.tsx | 6 +- .../components/AddPkiCollectionItemModal.tsx | 8 +- .../PkiSubscriberDetailsByIDPage.tsx | 6 +- .../PkiSubscriberCertificatesTable.tsx | 10 +- .../PkiSubscriberDetailsSection.tsx | 8 +- .../components/PkiSubscriberModal.tsx | 6 +- .../components/PkiSubscriberSection.tsx | 8 +- .../components/PkiSubscribersTable.tsx | 8 +- .../PkiTemplateListPage.tsx | 10 +- .../components/PkiTemplateForm.tsx | 12 +- frontend/src/pages/cert-manager/layout.tsx | 12 +- .../KmipPage/components/KmipClientModal.tsx | 6 +- .../KmipPage/components/KmipClientTable.tsx | 8 +- .../kms/OverviewPage/components/CmekModal.tsx | 6 +- .../kms/OverviewPage/components/CmekTable.tsx | 8 +- frontend/src/pages/kms/layout.tsx | 12 +- .../IdentitySection/IdentityLdapAuthForm.tsx | 113 +- .../IdentitySection/IdentitySection.tsx | 2 +- .../IdentityUniversalAuthForm.tsx | 251 +--- .../IdentitySection/lockout/LockoutTab.tsx | 205 +++ .../IdentitySection/lockout/super-refine.ts | 67 + .../OrgMembersSection/AddOrgMemberModal.tsx | 6 +- .../AppConnectionsPage/AppConnectionsPage.tsx | 69 +- .../components/AddAppConnectionModal.tsx | 38 +- .../AppConnectionForm/AppConnectionForm.tsx | 81 +- .../AzureAppConfigurationConnectionForm.tsx | 23 +- .../AzureClientSecretsConnectionForm.tsx | 19 +- .../AzureDevOpsConnectionForm.tsx | 19 +- .../AzureKeyVaultConnectionForm.tsx | 19 +- .../GitHubConnectionForm.tsx | 20 +- .../GitHubRadarConnectionForm.tsx | 19 +- .../GitLabConnectionForm.tsx | 18 +- .../components/AppConnectionList.tsx | 6 +- .../components/AppConnectionRow.tsx | 171 ++- .../components/AppConnectionsTable.tsx | 224 ++- .../OauthCallbackPage/OauthCallbackPage.tsx | 238 +-- .../OauthCallbackPage.types.ts | 68 + .../AuditLogsPage/components/LogsFilter.tsx | 8 +- .../AuditLogsPage/components/LogsSection.tsx | 4 +- .../AuditLogsPage/components/types.tsx | 2 +- .../GatewayListPage/GatewayListPage.tsx | 4 +- .../Relay/RelayListPage/RelayListPage.tsx | 214 +++ .../Gateways/Relay/RelayListPage/route.tsx | 16 + .../IdentityAddToProjectModal.tsx | 6 +- .../IdentityProjectRow.tsx | 4 +- .../IdentityProjectsSection.tsx | 2 +- .../IdentityAuthLockoutFields.tsx | 81 + .../ViewIdentityLdapAuthContent.tsx | 20 +- .../ViewIdentityUniversalAuthContent.tsx | 68 +- .../components/AllProjectView.tsx | 115 +- .../ProjectsPage/components/MyProjectView.tsx | 48 +- .../components/OrgRoleModifySection.utils.ts | 22 +- .../OrgPermissionRelayRow.tsx | 180 +++ .../OrgRoleWorkspaceRow.tsx | 8 +- .../RolePermissionRow.tsx | 3 +- .../RolePermissionsSection.tsx | 6 + .../AuditLogStreamForm/AuditLogStreamForm.tsx | 7 + .../AzureProviderAuditLogStreamForm.tsx | 158 ++ .../ExternalMigrationsTab.tsx | 80 +- .../components/EditProjectTemplate.tsx | 2 +- .../ProjectTemplateDetailsModal.tsx | 2 +- .../UserAddToProjectModal.tsx | 6 +- .../UserProjectsSection/UserProjectRow.tsx | 4 +- .../UserProjectsSection.tsx | 2 +- .../AccessControlPage/AccessControlPage.tsx | 12 +- .../components/GroupsSection/GroupModal.tsx | 10 +- .../components/GroupsSection/GroupRoles.tsx | 12 +- .../GroupsSection/GroupsSection.tsx | 8 +- .../components/GroupsSection/GroupsTable.tsx | 14 +- .../components/IdentityTab/IdentityTab.tsx | 20 +- .../IdentityTab/components/IdentityModal.tsx | 11 +- .../MembersTab/components/AddMemberModal.tsx | 20 +- .../MemberRoleForm/MemberRbacSection.tsx | 13 +- .../MemberRoleForm/MemberRoleForm.tsx | 8 +- .../SpecificPrivilegeSection.tsx | 14 +- .../MembersTab/components/MembersSection.tsx | 8 +- .../MembersTab/components/MembersTable.tsx | 23 +- .../ProjectRoleList/ProjectRoleList.tsx | 14 +- .../AddServiceTokenModal.tsx | 20 +- .../ServiceTokenSection/ServiceTokenTable.tsx | 6 +- .../AppConnectionsPage/AppConnectionsPage.tsx | 41 + .../AppConnectionsPage/route-cert-manager.tsx | 19 + .../route-secret-manager.tsx | 19 + .../route-secret-scanning.tsx | 19 + .../project/AuditLogsPage/AuditLogsPage.tsx | 6 +- .../GroupDetailsByIDPage.tsx | 8 +- .../components/GroupDetailsSection.tsx | 10 +- .../GroupMembersSection/GroupMembersTable.tsx | 12 +- .../IdentityDetailsByIDPage.tsx | 20 +- ...rojectAdditionalPrivilegeModifySection.tsx | 10 +- .../IdentityRoleDetailsSection.tsx | 6 +- .../IdentityRoleModify.tsx | 13 +- .../MemberDetailsByIDPage.tsx | 22 +- ...rojectAdditionalPrivilegeModifySection.tsx | 10 +- .../MemberRoleDetailsSection.tsx | 11 +- .../MemberRoleModify.tsx | 13 +- .../RoleDetailsBySlugPage.tsx | 10 +- .../components/AddPoliciesButton.tsx | 2 +- .../AppConnectionPermissionConditions.tsx | 19 + .../components/DuplicateProjectRoleModal.tsx | 14 +- .../components/PermissionConditionHelpers.tsx | 1 + .../components/PolicySelectionModal.tsx | 2 +- .../components/PolicyTemplateModal.tsx | 2 +- .../ProjectRoleModifySection.utils.tsx | 87 +- .../components/RoleModal.tsx | 8 +- .../components/RolePermissionsSection.tsx | 19 +- .../AuditLogsRetentionSection.tsx | 12 +- .../DeleteProjectProtection.tsx | 17 +- .../DeleteProjectSection.tsx | 24 +- .../src/pages/public/ErrorPage/ErrorPage.tsx | 10 + .../components/ProjectAccessError.tsx | 109 ++ .../public/ErrorPage/components/index.ts | 1 + .../CommitDetailsPage/CommitDetailsPage.tsx | 10 +- .../CommitDetailsTab/CommitDetailsTab.tsx | 8 +- .../RollbackPreviewTab/RollbackPreviewTab.tsx | 10 +- .../CommitsPage/CommitsPage.tsx | 8 +- .../CommitHistoryTab/CommitHistoryTab.tsx | 2 +- .../components/IPAllowlistModal.tsx | 10 +- .../components/IPAllowlistSection.tsx | 10 +- .../components/IPAllowlistTable.tsx | 14 +- .../IntegrationsDetailsByIDPage.tsx | 10 +- .../IntegrationAuditLogsSection.tsx | 6 +- .../IntegrationsListPage.tsx | 6 +- .../CloudIntegrationSection.tsx | 16 +- .../NativeIntegrationsTab/IntegrationRow.tsx | 6 +- .../NativeIntegrationsTab.tsx | 8 +- .../SecretSyncTable/SecretSyncsTable.tsx | 6 +- .../SecretSyncsTab/SecretSyncsTab.tsx | 52 +- .../IntegrationsListPage/route.tsx | 10 +- .../OverviewPage/OverviewPage.tsx | 58 +- .../CreateSecretForm/CreateSecretForm.tsx | 21 +- .../SecretOverviewRotationSecretRow.tsx | 77 + .../SecretOverviewSecretRotationRow.tsx | 57 +- .../SecretOverviewTableRow/SecretEditRow.tsx | 133 +- .../SecretOverviewTableRow.tsx | 19 +- .../SecretRenameRow.tsx | 9 +- .../components/QuickSearchModal.tsx | 4 +- .../components/QuickSearchSecretItem.tsx | 45 +- .../SecretV2MigrationSection.tsx | 18 +- .../SelectionPanel/SelectionPanel.tsx | 17 +- .../MoveSecretsDialog/MoveSecretsDialog.tsx | 6 +- .../secret-manager/OverviewPage/route.tsx | 4 +- .../SecretApprovalsPage.tsx | 11 +- .../AccessApprovalRequest.tsx | 8 +- .../components/ReviewAccessModal.tsx | 6 +- .../ApprovalPolicyList/ApprovalPolicyList.tsx | 36 +- .../components/AccessPolicyModal.tsx | 10 +- .../components/ApprovalPolicyRow.tsx | 4 +- .../components/RemoveApprovalPolicyModal.tsx | 12 +- .../SecretApprovalRequest.tsx | 16 +- .../SecretApprovalRequestAction.tsx | 8 +- .../SecretApprovalRequestChanges.tsx | 14 +- .../SecretDashboardPage.tsx | 114 +- .../SecretMainPage.store.tsx | 23 +- .../components/ActionBar/ActionBar.tsx | 51 +- .../AwsElastiCacheInputForm.tsx | 4 +- .../AwsIamInputForm.tsx | 281 ++-- .../AzureEntraIdInputForm.tsx | 4 +- .../CassandraInputForm.tsx | 4 +- .../CouchbaseInputForm.tsx | 4 +- .../CreateDynamicSecretForm.tsx | 4 +- .../ElasticSearchInputForm.tsx | 4 +- .../GcpIamInputForm.tsx | 4 +- .../GithubInputForm.tsx | 4 +- .../KubernetesInputForm.tsx | 4 +- .../CreateDynamicSecretForm/LdapInputForm.tsx | 4 +- .../MongoAtlasInputForm.tsx | 4 +- .../MongoDBInputForm.tsx | 4 +- .../RabbitMqInputForm.tsx | 4 +- .../RedisInputForm.tsx | 4 +- .../SapAseInputForm.tsx | 4 +- .../SapHanaInputForm.tsx | 4 +- .../SnowflakeInputForm.tsx | 4 +- .../SqlDatabaseInputForm.tsx | 4 +- .../CreateDynamicSecretForm/TotpInputForm.tsx | 4 +- .../VerticaInputForm.tsx | 4 +- .../ActionBar/CreateSecretImportForm.tsx | 12 +- .../components/ActionBar/MoveSecretsModal.tsx | 6 +- .../ReplicateFolderFromBoard.tsx | 8 +- .../components/CommitForm/CommitForm.tsx | 37 +- .../CompareEnvironments.tsx | 30 +- .../components/SecretRow/SecretRow.tsx | 4 +- .../CreateSecretForm/CreateSecretForm.tsx | 13 +- .../CreateDynamicSecretLease.tsx | 18 +- .../EditDynamicSecretAwsIamForm.tsx | 271 ++-- .../EnvironmentTabs/EnvironmentTabs.tsx | 41 +- .../FolderListView/FolderListView.tsx | 16 +- .../SecretDropzone/CopySecretsFromBoard.tsx | 8 +- .../SecretDropzone/SecretDropzone.tsx | 18 +- .../SecretImportListView/SecretImportItem.tsx | 33 +- .../SecretImportListView.tsx | 24 +- .../SecretImportSecretRow.tsx | 68 + .../CollapsibleSecretImports.tsx | 8 +- .../SecretListView/CreateReminderForm.tsx | 14 +- .../SecretListView/SecretDetailSidebar.tsx | 449 +++--- .../components/SecretListView/SecretItem.tsx | 163 +- .../SecretListView/SecretListView.tsx | 108 +- .../SecretListView/SecretVersionItem.tsx | 277 ++++ .../SecretRotationItem.tsx | 48 +- .../SecretRotationSecretRow.tsx | 76 + .../components/SnapshotView/SnapshotView.tsx | 6 +- .../SecretDashboardPage/route.tsx | 4 +- .../SecretRotationPage/SecretRotationPage.tsx | 14 +- .../steps/RotationOutputForm.tsx | 10 +- .../components/SecretSyncAuditLogsSection.tsx | 6 +- .../SettingsPage/SettingsPage.tsx | 8 +- .../AutoCapitalizationSection.tsx | 16 +- .../BackfillSecretReferenceSection.tsx | 8 +- .../EncryptionTab/EncryptionTab.tsx | 35 +- .../AddEnvironmentModal.tsx | 14 +- .../EnvironmentSection/EnvironmentSection.tsx | 14 +- .../EnvironmentSection/EnvironmentTable.tsx | 29 +- .../UpdateEnvironmentModal.tsx | 8 +- .../PointInTimeVersionLimitSection.tsx | 16 +- .../SecretDetectionIgnoreValuesSection.tsx | 12 +- .../SecretSharingSection.tsx | 12 +- .../SecretSnapshotsLegacySection.tsx | 12 +- .../SecretTagsSection/AddSecretTagModal.tsx | 10 +- .../SecretTagsSection/SecretTagsSection.tsx | 8 +- .../SecretTagsSection/SecretTagsTable.tsx | 6 +- .../components/WebhooksTab/WebhooksTab.tsx | 18 +- .../WorkflowIntegrationTab.tsx | 12 +- .../AddWorkflowIntegrationModal.tsx | 8 +- .../MicrosoftTeamsIntegrationForm.tsx | 12 +- .../components/SlackIntegrationForm.tsx | 12 +- .../AwsParameterStoreAuthorizePage.tsx | 8 +- .../AwsParamterStoreConfigurePage.tsx | 16 +- .../AwsSecretManagerAuthorizePage.tsx | 8 +- .../AwsSecretManagerConfigurePage.tsx | 16 +- .../AzureAppConfigurationConfigurePage.tsx | 10 +- ...AzureAppConfigurationOauthCallbackPage.tsx | 8 +- .../AzureDevopsAuthorizePage.tsx | 8 +- .../AzureDevopsConfigurePage.tsx | 10 +- .../AzureKeyVaultConfigurePage.tsx | 10 +- .../AzureKeyVaultOauthCallback.tsx | 8 +- .../BitbucketConfigurePage.tsx | 16 +- .../BitbucketOauthCallbackPage.tsx | 8 +- .../ChecklyAuthorizePage.tsx | 8 +- .../ChecklyConfigurePage.tsx | 10 +- .../CircleCIAuthorizePage.tsx | 8 +- .../CircleCIConfigurePage.tsx | 12 +- .../Cloud66AuthorizePage.tsx | 8 +- .../Cloud66ConfigurePage.tsx | 14 +- .../CloudflarePagesAuthorizePage.tsx | 8 +- .../CloudflarePagesConfigurePage.tsx | 8 +- .../CloudflareWorkersAuthorizePage.tsx | 8 +- .../CloudflareWorkersConfigurePage.tsx | 10 +- .../CodefreshAuthorizePage.tsx | 8 +- .../CodefreshConfigurePage.tsx | 10 +- .../DatabricksAuthorizePage.tsx | 8 +- .../DatabricksConfigurePage.tsx | 10 +- .../DigitalOceanAppPlatformAuthorizePage.tsx | 8 +- .../DigitalOceanAppPlatformConfigurePage.tsx | 10 +- .../FlyioAuthorizePage/FlyioAuthorizePage.tsx | 8 +- .../FlyioConfigurePage/FlyioConfigurePage.tsx | 10 +- .../GcpSecretManagerAuthorizePage.tsx | 10 +- .../GcpSecretManagerConfigurePage.tsx | 10 +- .../GcpSecretManagerOauthCallbackPage.tsx | 8 +- .../GithubAuthorizePage.tsx | 8 +- .../GithubConfigurePage.tsx | 10 +- .../GithubOauthCallbackPage.tsx | 8 +- .../GitlabAuthorizePage.tsx | 8 +- .../GitlabConfigurePage.tsx | 10 +- .../GitlabOauthCallbackPage.tsx | 8 +- .../HashicorpVaultAuthorizePage.tsx | 8 +- .../HashicorpVaultConfigurePage.tsx | 12 +- .../HasuraCloudAuthorizePage.tsx | 8 +- .../HasuraCloudConfigurePage.tsx | 8 +- .../HerokuConfigurePage.tsx | 10 +- .../HerokuOauthCallbackPage.tsx | 8 +- .../LaravelForgeAuthorizePage.tsx | 8 +- .../LaravelForgeConfigurePage.tsx | 10 +- .../NetlifyConfigurePage.tsx | 10 +- .../NetlifyOauthCallbackPage.tsx | 8 +- .../NorthflankAuthorizePage.tsx | 8 +- .../NorthflankConfigurePage.tsx | 10 +- .../OctopusDeployAuthorizePage.tsx | 8 +- .../OctopusDeployConfigurePage.tsx | 16 +- .../QoveryAuthorizePage.tsx | 8 +- .../QoveryConfigurePage.tsx | 10 +- .../RailwayAuthorizePage.tsx | 8 +- .../RailwayConfigurePage.tsx | 10 +- .../RenderAuthorizePage.tsx | 8 +- .../RenderConfigurePage.tsx | 10 +- .../RundeckAuthorizePage.tsx | 8 +- .../RundeckConfigurePage.tsx | 10 +- .../SelectIntegrationAuthPage.tsx | 16 +- .../SupabaseAuthorizePage.tsx | 8 +- .../SupabaseConfigurePage.tsx | 10 +- .../TeamcityAuthorizePage.tsx | 8 +- .../TeamcityConfigurePage.tsx | 10 +- .../TerraformCloudAuthorizePage.tsx | 8 +- .../TerraformCloudConfigurePage.tsx | 10 +- .../TravisCIAuthorizePage.tsx | 8 +- .../TravisCIConfigurePage.tsx | 10 +- .../VercelConfigurePage.tsx | 10 +- .../VercelOauthCallbackPage.tsx | 8 +- .../WindmillAuthorizePage.tsx | 8 +- .../WindmillConfigurePage.tsx | 10 +- frontend/src/pages/secret-manager/layout.tsx | 12 +- .../components/SecretScanningScanRow.tsx | 6 +- .../SecretScanningDataSourcesSection.tsx | 6 +- .../SecretScanningDataSourcesPage/route.tsx | 8 + .../SecretScanningFindingsSection.tsx | 6 +- .../ProjectScanningConfigTab.tsx | 6 +- frontend/src/pages/secret-scanning/layout.tsx | 12 +- .../components/ProjectSshConfigCasSection.tsx | 10 +- .../pages/ssh/SshCaByIDPage/SshCaByIDPage.tsx | 6 +- .../components/SshCertificateModal.tsx | 6 +- .../SshCertificateTemplateModal.tsx | 6 +- .../ssh/SshCasPage/components/SshCaModal.tsx | 6 +- .../ssh/SshCasPage/components/SshCaTable.tsx | 8 +- .../components/SshCertificatesTable.tsx | 6 +- .../SshHostGroupDetailsByIDPage.tsx | 6 +- .../components/SshHostGroupModal.tsx | 6 +- .../components/SshHostGroupsTable.tsx | 10 +- .../SshHostsPage/components/SshHostModal.tsx | 8 +- .../SshHostsPage/components/SshHostsTable.tsx | 6 +- frontend/src/pages/ssh/layout.tsx | 12 +- .../ChangeEmailSection/ChangeEmailSection.tsx | 7 + frontend/src/routeTree.gen.ts | 162 ++ frontend/src/routes.ts | 6 +- helm-charts/infisical-gateway/Chart.yaml | 4 +- helm-charts/infisical-gateway/values.yaml | 2 +- 806 files changed, 20335 insertions(+), 7209 deletions(-) create mode 100644 backend/e2e-test/routes/v2/secret-folder.spec.ts create mode 100644 backend/e2e-test/routes/v4/secrets.spec.ts create mode 100644 backend/src/db/migrations/20250819081226_identity-lockouts-ldap.ts create mode 100644 backend/src/db/migrations/20250912011133_app-connection-project-id-col.ts create mode 100644 backend/src/ee/routes/v1/deprecated-project-role-router.ts create mode 100644 backend/src/ee/routes/v1/deprecated-project-router.ts create mode 100644 backend/src/ee/routes/v1/deprecated-secret-approval-policy-router.ts rename backend/src/ee/routes/v2/{project-role-router.ts => deprecated-project-role-router.ts} (81%) rename backend/src/ee/routes/{v1 => v2}/secret-approval-policy-router.ts (97%) create mode 100644 backend/src/ee/services/audit-log-stream/azure/azure-provider-factory.ts create mode 100644 backend/src/ee/services/audit-log-stream/azure/azure-provider-fns.ts create mode 100644 backend/src/ee/services/audit-log-stream/azure/azure-provider-schemas.ts create mode 100644 backend/src/ee/services/audit-log-stream/azure/azure-provider-types.ts create mode 100644 backend/src/ee/services/relay/relay-constants.ts create mode 100644 backend/src/server/routes/v1/deprecated-project-env-router.ts create mode 100644 backend/src/server/routes/v1/deprecated-project-membership-router.ts create mode 100644 backend/src/server/routes/v1/deprecated-project-router.ts create mode 100644 backend/src/server/routes/v1/deprecated-secret-folder-router.ts create mode 100644 backend/src/server/routes/v1/deprecated-secret-import-router.ts create mode 100644 backend/src/server/routes/v1/deprecated-secret-tag-router.ts rename backend/src/server/routes/{v2 => v1}/group-project-router.ts (100%) rename backend/src/server/routes/{v2 => v1}/identity-project-router.ts (100%) create mode 100644 backend/src/server/routes/v2/deprecated-group-project-router.ts create mode 100644 backend/src/server/routes/v2/deprecated-identity-project-router.ts rename backend/src/server/routes/v2/{project-membership-router.ts => deprecated-project-membership-router.ts} (96%) rename backend/src/server/routes/v2/{project-router.ts => deprecated-project-router.ts} (92%) rename backend/src/server/routes/{v1 => v2}/secret-folder-router.ts (80%) rename backend/src/server/routes/{v1 => v2}/secret-import-router.ts (85%) rename backend/src/server/routes/v3/{secret-router.ts => deprecated-secret-router.ts} (95%) delete mode 100644 backend/src/server/routes/v3/secret-blind-index-router.ts create mode 100644 backend/src/server/routes/v4/index.ts create mode 100644 backend/src/server/routes/v4/secret-router.ts create mode 100644 docs/api-reference/endpoints/deprecated/environments/create.mdx create mode 100644 docs/api-reference/endpoints/deprecated/environments/delete.mdx create mode 100644 docs/api-reference/endpoints/deprecated/environments/update.mdx create mode 100644 docs/api-reference/endpoints/deprecated/folders/create.mdx create mode 100644 docs/api-reference/endpoints/deprecated/folders/delete.mdx create mode 100644 docs/api-reference/endpoints/deprecated/folders/get-by-id.mdx create mode 100644 docs/api-reference/endpoints/deprecated/folders/list.mdx create mode 100644 docs/api-reference/endpoints/deprecated/folders/update.mdx rename docs/api-reference/endpoints/{organizations/workspaces.mdx => deprecated/organizations/projects.mdx} (100%) create mode 100644 docs/api-reference/endpoints/deprecated/project-groups/create.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-groups/delete.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-groups/get-by-id.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-groups/list.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-groups/update.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-identities/add-identity-membership.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-identities/delete-identity-membership.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-identities/get-by-id.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-identities/list-identity-memberships.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-identities/update-identity-membership.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-roles/create.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-roles/delete.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-roles/get-by-slug.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-roles/list.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-roles/update.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-users/delete-membership.mdx create mode 100644 docs/api-reference/endpoints/deprecated/project-users/get-by-username.mdx rename docs/api-reference/endpoints/{project-users/invite-member-to-workspace.mdx => deprecated/project-users/invite-member-to-project.mdx} (100%) create mode 100644 docs/api-reference/endpoints/deprecated/project-users/memberships.mdx rename docs/api-reference/endpoints/{project-users/remove-member-from-workspace.mdx => deprecated/project-users/remove-member-from-project.mdx} (100%) create mode 100644 docs/api-reference/endpoints/deprecated/project-users/update-membership.mdx rename docs/api-reference/endpoints/{workspaces/create-workspace.mdx => deprecated/projects/create-project.mdx} (100%) rename docs/api-reference/endpoints/{workspaces/delete-workspace.mdx => deprecated/projects/delete-project.mdx} (100%) rename docs/api-reference/endpoints/{workspaces/get-workspace-by-slug.mdx => deprecated/projects/get-project-by-slug.mdx} (100%) rename docs/api-reference/endpoints/{workspaces/get-workspace.mdx => deprecated/projects/get-project.mdx} (94%) rename docs/api-reference/endpoints/{workspaces/workspace-key.mdx => deprecated/projects/project-key.mdx} (100%) rename docs/api-reference/endpoints/{workspaces/update-workspace.mdx => deprecated/projects/project-workspace.mdx} (100%) rename docs/api-reference/endpoints/{workspaces => deprecated/projects}/rollback-snapshot.mdx (100%) rename docs/api-reference/endpoints/{workspaces => deprecated/projects}/secret-snapshots.mdx (100%) create mode 100644 docs/api-reference/endpoints/deprecated/projects/update-project.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-imports/create.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-imports/delete.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-imports/list.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-imports/update.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-tags/create.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-tags/delete.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-tags/get-by-id.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-tags/get-by-slug.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-tags/list.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secret-tags/update.mdx rename docs/api-reference/endpoints/{ => deprecated}/secrets/attach-tags.mdx (100%) create mode 100644 docs/api-reference/endpoints/deprecated/secrets/create-many.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secrets/create.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secrets/delete-many.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secrets/delete.mdx rename docs/api-reference/endpoints/{ => deprecated}/secrets/detach-tags.mdx (100%) create mode 100644 docs/api-reference/endpoints/deprecated/secrets/list.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secrets/read.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secrets/update-many.mdx create mode 100644 docs/api-reference/endpoints/deprecated/secrets/update.mdx create mode 100644 docs/api-reference/endpoints/project-users/invite-member-to-project.mdx create mode 100644 docs/api-reference/endpoints/project-users/remove-member-from-project.mdx create mode 100644 docs/api-reference/endpoints/projects/create-project.mdx create mode 100644 docs/api-reference/endpoints/projects/delete-project.mdx create mode 100644 docs/api-reference/endpoints/projects/get-project-by-slug.mdx create mode 100644 docs/api-reference/endpoints/projects/get-project.mdx create mode 100644 docs/api-reference/endpoints/projects/list-projects.mdx create mode 100644 docs/api-reference/endpoints/projects/rollback-snapshot.mdx create mode 100644 docs/api-reference/endpoints/projects/secret-snapshots.mdx create mode 100644 docs/api-reference/endpoints/projects/update-project.mdx create mode 100644 docs/documentation/platform/gateways/gateway-deployment.mdx delete mode 100644 docs/documentation/platform/gateways/networking.mdx create mode 100644 docs/documentation/platform/gateways/relay-deployment.mdx rename docs/documentation/platform/gateways/{gateway-security.mdx => security.mdx} (91%) create mode 100644 docs/images/platform/audit-log-streams/azure-configure-dce.png create mode 100644 docs/images/platform/audit-log-streams/azure-configure-law.png create mode 100644 docs/images/platform/audit-log-streams/azure-configure-table.png create mode 100644 docs/images/platform/audit-log-streams/azure-create-als.png create mode 100644 docs/images/platform/audit-log-streams/azure-create-dce.png create mode 100644 docs/images/platform/audit-log-streams/azure-create-law.png create mode 100644 docs/images/platform/audit-log-streams/azure-dce-url.png create mode 100644 docs/images/platform/audit-log-streams/azure-dcr.png create mode 100644 docs/images/platform/audit-log-streams/azure-go-to-resource.png create mode 100644 docs/images/platform/audit-log-streams/azure-new-table.png create mode 100644 docs/images/platform/identities/identities-org-create-universal-auth-method-3.png create mode 100644 docs/images/platform/identities/ldap-reset-lockouts.png create mode 100644 docs/images/platform/identities/ua-reset-lockouts.png create mode 100644 frontend/src/components/app-connections/AppConnectionOption.tsx create mode 100644 frontend/src/components/app-connections/index.ts create mode 100644 frontend/src/components/permissions/VariablePermissionCan.tsx create mode 100644 frontend/src/components/projects/RequestProjectAccessModal.tsx create mode 100644 frontend/src/context/ProjectContext/ProjectContext.tsx create mode 100644 frontend/src/context/ProjectContext/index.tsx delete mode 100644 frontend/src/context/WorkspaceContext/WorkspaceContext.tsx delete mode 100644 frontend/src/context/WorkspaceContext/index.tsx create mode 100644 frontend/src/hooks/api/auditLogStreams/types/providers/azure-provider.ts delete mode 100644 frontend/src/hooks/api/keys/index.tsx delete mode 100644 frontend/src/hooks/api/keys/queries.tsx delete mode 100644 frontend/src/hooks/api/keys/types.ts rename frontend/src/hooks/api/{workspace => projects}/index.tsx (89%) rename frontend/src/hooks/api/{workspace => projects}/mutations.tsx (68%) rename frontend/src/hooks/api/{workspace => projects}/queries.tsx (55%) create mode 100644 frontend/src/hooks/api/projects/query-keys.tsx rename frontend/src/hooks/api/{workspace => projects}/types.ts (84%) create mode 100644 frontend/src/hooks/api/relays/index.tsx create mode 100644 frontend/src/hooks/api/relays/mutations.tsx create mode 100644 frontend/src/hooks/api/relays/queries.tsx create mode 100644 frontend/src/hooks/api/relays/types.ts delete mode 100644 frontend/src/hooks/api/workspace/query-keys.tsx create mode 100644 frontend/src/pages/organization/AccessManagementPage/components/OrgIdentityTab/components/IdentitySection/lockout/LockoutTab.tsx create mode 100644 frontend/src/pages/organization/AccessManagementPage/components/OrgIdentityTab/components/IdentitySection/lockout/super-refine.ts create mode 100644 frontend/src/pages/organization/AppConnections/OauthCallbackPage/OauthCallbackPage.types.ts create mode 100644 frontend/src/pages/organization/Gateways/Relay/RelayListPage/RelayListPage.tsx create mode 100644 frontend/src/pages/organization/Gateways/Relay/RelayListPage/route.tsx create mode 100644 frontend/src/pages/organization/IdentityDetailsByIDPage/components/ViewIdentityAuthModal/IdentityAuthLockoutFields.tsx create mode 100644 frontend/src/pages/organization/RoleByIDPage/components/RolePermissionsSection/OrgPermissionRelayRow.tsx create mode 100644 frontend/src/pages/organization/SettingsPage/components/AuditLogStreamTab/AuditLogStreamForm/AzureProviderAuditLogStreamForm.tsx create mode 100644 frontend/src/pages/project/AppConnectionsPage/AppConnectionsPage.tsx create mode 100644 frontend/src/pages/project/AppConnectionsPage/route-cert-manager.tsx create mode 100644 frontend/src/pages/project/AppConnectionsPage/route-secret-manager.tsx create mode 100644 frontend/src/pages/project/AppConnectionsPage/route-secret-scanning.tsx create mode 100644 frontend/src/pages/project/RoleDetailsBySlugPage/components/AppConnectionPermissionConditions.tsx create mode 100644 frontend/src/pages/public/ErrorPage/components/ProjectAccessError.tsx create mode 100644 frontend/src/pages/public/ErrorPage/components/index.ts create mode 100644 frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewSecretRotationRow/SecretOverviewRotationSecretRow.tsx create mode 100644 frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretImportListView/SecretImportSecretRow.tsx create mode 100644 frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretVersionItem.tsx create mode 100644 frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretRotationListView/SecretRotationSecretRow.tsx diff --git a/.github/workflows/release-standalone-docker-img-postgres-offical.yml b/.github/workflows/release-standalone-docker-img-postgres-offical.yml index 5c8809eb4..b17d5e50c 100644 --- a/.github/workflows/release-standalone-docker-img-postgres-offical.yml +++ b/.github/workflows/release-standalone-docker-img-postgres-offical.yml @@ -63,6 +63,8 @@ jobs: build-args: | POSTHOG_API_KEY=${{ secrets.PUBLIC_POSTHOG_API_KEY }} INFISICAL_PLATFORM_VERSION=${{ steps.extract_version.outputs.version }} + DD_GIT_REPOSITORY_URL=${{ github.server_url }}/${{ github.repository }} + DD_GIT_COMMIT_SHA=${{ github.sha }} infisical-fips-standalone: name: Build infisical standalone image postgres diff --git a/.github/workflows/release_helm_gateway.yaml b/.github/workflows/release_helm_gateway.yaml index 85f61c4c6..7fd0eb03a 100644 --- a/.github/workflows/release_helm_gateway.yaml +++ b/.github/workflows/release_helm_gateway.yaml @@ -35,7 +35,7 @@ jobs: run: kubectl create namespace infisical-gateway - name: Create gateway secret - run: kubectl create secret generic infisical-gateway-environment --from-literal=TOKEN=my-test-token -n infisical-gateway + run: kubectl create secret generic infisical-gateway-environment --from-literal=TOKEN=my-test-token --from-literal=INFISICAL_RELAY_NAME=my-test-relay -n infisical-gateway - name: Run chart-testing (install) run: | diff --git a/Dockerfile.standalone-infisical b/Dockerfile.standalone-infisical index a4e5c150a..9ca5e1dea 100644 --- a/Dockerfile.standalone-infisical +++ b/Dockerfile.standalone-infisical @@ -173,6 +173,12 @@ COPY --from=frontend-runner /app ./backend/frontend-build ARG INFISICAL_PLATFORM_VERSION ENV INFISICAL_PLATFORM_VERSION $INFISICAL_PLATFORM_VERSION +ARG DD_GIT_REPOSITORY_URL +ENV DD_GIT_REPOSITORY_URL $DD_GIT_REPOSITORY_URL + +ARG DD_GIT_COMMIT_SHA +ENV DD_GIT_COMMIT_SHA $DD_GIT_COMMIT_SHA + ENV PORT 8080 ENV HOST=0.0.0.0 ENV HTTPS_ENABLED false diff --git a/backend/e2e-test/routes/v2/secret-folder.spec.ts b/backend/e2e-test/routes/v2/secret-folder.spec.ts new file mode 100644 index 000000000..a2bed759a --- /dev/null +++ b/backend/e2e-test/routes/v2/secret-folder.spec.ts @@ -0,0 +1,165 @@ +import { seedData1 } from "@app/db/seed-data"; + +const createFolder = async (dto: { path: string; name: string }) => { + const res = await testServer.inject({ + method: "POST", + url: `/api/v2/folders`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + body: { + projectId: seedData1.project.id, + environment: seedData1.environment.slug, + name: dto.name, + path: dto.path + } + }); + expect(res.statusCode).toBe(200); + return res.json().folder; +}; + +const deleteFolder = async (dto: { path: string; id: string }) => { + const res = await testServer.inject({ + method: "DELETE", + url: `/api/v2/folders/${dto.id}`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + body: { + projectId: seedData1.project.id, + environment: seedData1.environment.slug, + path: dto.path + } + }); + expect(res.statusCode).toBe(200); + return res.json().folder; +}; + +describe("Secret Folder Router", async () => { + test.each([ + { name: "folder1", path: "/" }, // one in root + { name: "folder1", path: "/level1/level2" }, // then create a deep one creating intermediate ones + { name: "folder2", path: "/" }, + { name: "folder1", path: "/level1/level2" } // this should not create folder return same thing + ])("Create folder $name in $path", async ({ name, path }) => { + const createdFolder = await createFolder({ path, name }); + // check for default environments + expect(createdFolder).toEqual( + expect.objectContaining({ + name, + id: expect.any(String) + }) + ); + await deleteFolder({ path, id: createdFolder.id }); + }); + + test.each([ + { + path: "/", + expected: { + folders: [{ name: "folder1" }, { name: "level1" }, { name: "folder2" }], + length: 3 + } + }, + { path: "/level1/level2", expected: { folders: [{ name: "folder1" }], length: 1 } } + ])("Get folders $path", async ({ path, expected }) => { + const newFolders = await Promise.all(expected.folders.map(({ name }) => createFolder({ name, path }))); + + const res = await testServer.inject({ + method: "GET", + url: `/api/v2/folders`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + query: { + projectId: seedData1.project.id, + environment: seedData1.environment.slug, + path + } + }); + + expect(res.statusCode).toBe(200); + const payload = JSON.parse(res.payload); + expect(payload).toHaveProperty("folders"); + expect(payload.folders.length >= expected.folders.length).toBeTruthy(); + expect(payload).toEqual({ + folders: expect.arrayContaining(expected.folders.map((el) => expect.objectContaining(el))) + }); + + await Promise.all(newFolders.map(({ id }) => deleteFolder({ path, id }))); + }); + + test("Update a deep folder", async () => { + const newFolder = await createFolder({ name: "folder-updated", path: "/level1/level2" }); + expect(newFolder).toEqual( + expect.objectContaining({ + id: expect.any(String), + name: "folder-updated" + }) + ); + + const resUpdatedFolders = await testServer.inject({ + method: "GET", + url: `/api/v2/folders`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + query: { + projectId: seedData1.project.id, + environment: seedData1.environment.slug, + path: "/level1/level2" + } + }); + + expect(resUpdatedFolders.statusCode).toBe(200); + const updatedFolderList = JSON.parse(resUpdatedFolders.payload); + expect(updatedFolderList).toHaveProperty("folders"); + expect(updatedFolderList.folders[0].name).toEqual("folder-updated"); + + await deleteFolder({ path: "/level1/level2", id: newFolder.id }); + }); + + test("Delete a deep folder", async () => { + const newFolder = await createFolder({ name: "folder-updated", path: "/level1/level2" }); + const res = await testServer.inject({ + method: "DELETE", + url: `/api/v2/folders/${newFolder.id}`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + body: { + projectId: seedData1.project.id, + environment: seedData1.environment.slug, + path: "/level1/level2" + } + }); + + expect(res.statusCode).toBe(200); + const payload = JSON.parse(res.payload); + expect(payload).toHaveProperty("folder"); + expect(payload.folder).toEqual( + expect.objectContaining({ + id: expect.any(String), + name: "folder-updated" + }) + ); + + const resUpdatedFolders = await testServer.inject({ + method: "GET", + url: `/api/v2/folders`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + query: { + projectId: seedData1.project.id, + environment: seedData1.environment.slug, + path: "/level1/level2" + } + }); + + expect(resUpdatedFolders.statusCode).toBe(200); + const updatedFolderList = JSON.parse(resUpdatedFolders.payload); + expect(updatedFolderList).toHaveProperty("folders"); + expect(updatedFolderList.folders.length).toEqual(0); + }); +}); diff --git a/backend/e2e-test/routes/v2/service-token.spec.ts b/backend/e2e-test/routes/v2/service-token.spec.ts index 025d9796f..4f72987cb 100644 --- a/backend/e2e-test/routes/v2/service-token.spec.ts +++ b/backend/e2e-test/routes/v2/service-token.spec.ts @@ -70,7 +70,7 @@ const createServiceToken = async ( const deleteServiceToken = async () => { const serviceTokenListRes = await testServer.inject({ method: "GET", - url: `/api/v1/workspace/${seedData1.project.id}/service-token-data`, + url: `/api/v1/projects/${seedData1.project.id}/service-token-data`, headers: { authorization: `Bearer ${jwtAuthToken}` } diff --git a/backend/e2e-test/routes/v4/secrets.spec.ts b/backend/e2e-test/routes/v4/secrets.spec.ts new file mode 100644 index 000000000..979adddf8 --- /dev/null +++ b/backend/e2e-test/routes/v4/secrets.spec.ts @@ -0,0 +1,678 @@ +import { SecretType } from "@app/db/schemas"; +import { seedData1 } from "@app/db/seed-data"; +import { AuthMode } from "@app/services/auth/auth-type"; + +type TRawSecret = { + secretKey: string; + secretValue: string; + secretComment?: string; + version: number; +}; + +const createSecret = async (dto: { path: string; key: string; value: string; comment: string; type?: SecretType }) => { + const createSecretReqBody = { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + type: dto.type || SecretType.Shared, + secretPath: dto.path, + secretKey: dto.key, + secretValue: dto.value, + secretComment: dto.comment + }; + const createSecRes = await testServer.inject({ + method: "POST", + url: `/api/v4/secrets/${dto.key}`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + body: createSecretReqBody + }); + expect(createSecRes.statusCode).toBe(200); + const createdSecretPayload = JSON.parse(createSecRes.payload); + expect(createdSecretPayload).toHaveProperty("secret"); + return createdSecretPayload.secret as TRawSecret; +}; + +const deleteSecret = async (dto: { path: string; key: string }) => { + const deleteSecRes = await testServer.inject({ + method: "DELETE", + url: `/api/v4/secrets/${dto.key}`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + secretPath: dto.path + } + }); + expect(deleteSecRes.statusCode).toBe(200); + const updatedSecretPayload = JSON.parse(deleteSecRes.payload); + expect(updatedSecretPayload).toHaveProperty("secret"); + return updatedSecretPayload.secret as TRawSecret; +}; + +describe.each([{ auth: AuthMode.JWT }, { auth: AuthMode.IDENTITY_ACCESS_TOKEN }])( + "Secret V4 - $auth mode", + async ({ auth }) => { + let folderId = ""; + let authToken = ""; + const secretTestCases = [ + { + path: "/", + secret: { + key: "SEC1", + value: "something-secret", + comment: "some comment" + } + }, + { + path: "/nested1/nested2/folder", + secret: { + key: "NESTED-SEC1", + value: "something-secret", + comment: "some comment" + } + }, + { + path: "/", + secret: { + key: "secret-key-2", + value: `-----BEGIN PRIVATE KEY----- + MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCa6eeFk+cMVqFn + hoVQDYgn2Ptp5Azysr2UPq6P73pCL9BzUtOXKZROqDyGehzzfg3wE2KdYU1Jk5Uq + fP0ZOWDIlM2SaVCSI3FW32o5+ZiggjpqcVdLFc/PS0S/ZdSmpPd8h11iO2brtIAI + ugTW8fcKlGSNUwx9aFmE7A6JnTRliTxB1l6QaC+YAwTK39VgeVH2gDSWC407aS15 + QobAkaBKKmFkzB5D7i2ZJwt+uXJV/rbLmyDmtnw0lubciGn7NX9wbYef180fisqT + aPNAz0nPKk0fFH2Wd5MZixNGbrrpDA+FCYvI5doThZyT2hpj08qWP07oXXCAqw46 + IEupNSILAgMBAAECggEBAIJb5KzeaiZS3B3O8G4OBQ5rJB3WfyLYUHnoSWLsBbie + nc392/ovThLmtZAAQE6SO85Tsb93+t64Z2TKqv1H8G658UeMgfWIB78v4CcLJ2mi + TN/3opqXrzjkQOTDHzBgT7al/mpETHZ6fOdbCemK0fVALGFUioUZg4M8VXtuI4Jw + q28jAyoRKrCrzda4BeQ553NZ4G5RvwhX3O2I8B8upTbt5hLcisBKy8MPLYY5LUFj + YKAP+raf6QLliP6KYHuVxUlgzxjLTxVG41etcyqqZF+foyiKBO3PU3n8oh++tgQP + ExOxiR0JSkBG5b+oOBD0zxcvo3/SjBHn0dJOZCSU2SkCgYEAyCe676XnNyBZMRD7 + 6trsaoiCWBpA6M8H44+x3w4cQFtqV38RyLy60D+iMKjIaLqeBbnay61VMzo24Bz3 + EuF2n4+9k/MetLJ0NCw8HmN5k0WSMD2BFsJWG8glVbzaqzehP4tIclwDTYc1jQVt + IoV2/iL7HGT+x2daUwbU5kN5hK0CgYEAxiLB+fmjxJW7VY4SHDLqPdpIW0q/kv4K + d/yZBrCX799vjmFb9vLh7PkQUfJhMJ/ttJOd7EtT3xh4mfkBeLfHwVU0d/ahbmSH + UJu/E9ZGxAW3PP0kxHZtPrLKQwBnfq8AxBauIhR3rPSorQTIOKtwz1jMlHFSUpuL + 3KeK2YfDYJcCgYEAkQnJOlNcAuRb/WQzSHIvktssqK8NjiZHryy3Vc0hx7j2jES2 + HGI2dSVHYD9OSiXA0KFm3OTTsnViwm/60iGzFdjRJV6tR39xGUVcoyCuPnvRfUd0 + PYvBXgxgkYpyYlPDcwp5CvWGJy3tLi1acgOIwIuUr3S38sL//t4adGk8q1kCgYB8 + Jbs1Tl53BvrimKpwUNbE+sjrquJu0A7vL68SqgQJoQ7dP9PH4Ff/i+/V6PFM7mib + BQOm02wyFbs7fvKVGVJoqWK+6CIucX732x7W5yRgHtS5ukQXdbzt1Ek3wkEW98Cb + HTruz7RNAt/NyXlLSODeit1lBbx3Vk9EaxZtRsv88QKBgGn7JwXgez9NOyobsNIo + QVO80rpUeenSjuFi+R0VmbLKe/wgAQbYJ0xTAsQ0btqViMzB27D6mJyC+KUIwWNX + MN8a+m46v4kqvZkKL2c4gmDibyURNe/vCtCHFuanJS/1mo2tr4XDyEeiuK52eTd9 + omQDpP86RX/hIIQ+JyLSaWYa + -----END PRIVATE KEY-----`, + comment: + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation" + } + }, + { + path: "/nested1/nested2/folder", + secret: { + key: "secret-key-3", + value: `-----BEGIN PRIVATE KEY----- + MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCa6eeFk+cMVqFn + hoVQDYgn2Ptp5Azysr2UPq6P73pCL9BzUtOXKZROqDyGehzzfg3wE2KdYU1Jk5Uq + fP0ZOWDIlM2SaVCSI3FW32o5+ZiggjpqcVdLFc/PS0S/ZdSmpPd8h11iO2brtIAI + ugTW8fcKlGSNUwx9aFmE7A6JnTRliTxB1l6QaC+YAwTK39VgeVH2gDSWC407aS15 + QobAkaBKKmFkzB5D7i2ZJwt+uXJV/rbLmyDmtnw0lubciGn7NX9wbYef180fisqT + aPNAz0nPKk0fFH2Wd5MZixNGbrrpDA+FCYvI5doThZyT2hpj08qWP07oXXCAqw46 + IEupNSILAgMBAAECggEBAIJb5KzeaiZS3B3O8G4OBQ5rJB3WfyLYUHnoSWLsBbie + nc392/ovThLmtZAAQE6SO85Tsb93+t64Z2TKqv1H8G658UeMgfWIB78v4CcLJ2mi + TN/3opqXrzjkQOTDHzBgT7al/mpETHZ6fOdbCemK0fVALGFUioUZg4M8VXtuI4Jw + q28jAyoRKrCrzda4BeQ553NZ4G5RvwhX3O2I8B8upTbt5hLcisBKy8MPLYY5LUFj + YKAP+raf6QLliP6KYHuVxUlgzxjLTxVG41etcyqqZF+foyiKBO3PU3n8oh++tgQP + ExOxiR0JSkBG5b+oOBD0zxcvo3/SjBHn0dJOZCSU2SkCgYEAyCe676XnNyBZMRD7 + 6trsaoiCWBpA6M8H44+x3w4cQFtqV38RyLy60D+iMKjIaLqeBbnay61VMzo24Bz3 + EuF2n4+9k/MetLJ0NCw8HmN5k0WSMD2BFsJWG8glVbzaqzehP4tIclwDTYc1jQVt + IoV2/iL7HGT+x2daUwbU5kN5hK0CgYEAxiLB+fmjxJW7VY4SHDLqPdpIW0q/kv4K + d/yZBrCX799vjmFb9vLh7PkQUfJhMJ/ttJOd7EtT3xh4mfkBeLfHwVU0d/ahbmSH + UJu/E9ZGxAW3PP0kxHZtPrLKQwBnfq8AxBauIhR3rPSorQTIOKtwz1jMlHFSUpuL + 3KeK2YfDYJcCgYEAkQnJOlNcAuRb/WQzSHIvktssqK8NjiZHryy3Vc0hx7j2jES2 + HGI2dSVHYD9OSiXA0KFm3OTTsnViwm/60iGzFdjRJV6tR39xGUVcoyCuPnvRfUd0 + PYvBXgxgkYpyYlPDcwp5CvWGJy3tLi1acgOIwIuUr3S38sL//t4adGk8q1kCgYB8 + Jbs1Tl53BvrimKpwUNbE+sjrquJu0A7vL68SqgQJoQ7dP9PH4Ff/i+/V6PFM7mib + BQOm02wyFbs7fvKVGVJoqWK+6CIucX732x7W5yRgHtS5ukQXdbzt1Ek3wkEW98Cb + HTruz7RNAt/NyXlLSODeit1lBbx3Vk9EaxZtRsv88QKBgGn7JwXgez9NOyobsNIo + QVO80rpUeenSjuFi+R0VmbLKe/wgAQbYJ0xTAsQ0btqViMzB27D6mJyC+KUIwWNX + MN8a+m46v4kqvZkKL2c4gmDibyURNe/vCtCHFuanJS/1mo2tr4XDyEeiuK52eTd9 + omQDpP86RX/hIIQ+JyLSaWYa + -----END PRIVATE KEY-----`, + comment: + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation" + } + }, + { + path: "/nested1/nested2/folder", + secret: { + key: "secret-key-3", + value: + "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gU2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uCg==", + comment: "" + } + } + ]; + + beforeAll(async () => { + if (auth === AuthMode.JWT) { + authToken = jwtAuthToken; + } else if (auth === AuthMode.IDENTITY_ACCESS_TOKEN) { + const identityLogin = await testServer.inject({ + method: "POST", + url: "/api/v1/auth/universal-auth/login", + body: { + clientSecret: seedData1.machineIdentity.clientCredentials.secret, + clientId: seedData1.machineIdentity.clientCredentials.id + } + }); + expect(identityLogin.statusCode).toBe(200); + authToken = identityLogin.json().accessToken; + } + // create a deep folder + const folderCreate = await testServer.inject({ + method: "POST", + url: `/api/v2/folders`, + headers: { + authorization: `Bearer ${jwtAuthToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + name: "folder", + path: "/nested1/nested2" + } + }); + expect(folderCreate.statusCode).toBe(200); + folderId = folderCreate.json().folder.id; + }); + + afterAll(async () => { + const deleteFolder = await testServer.inject({ + method: "DELETE", + url: `/api/v2/folders/${folderId}`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + path: "/nested1/nested2" + } + }); + expect(deleteFolder.statusCode).toBe(200); + }); + + const getSecrets = async (environment: string, secretPath = "/") => { + const res = await testServer.inject({ + method: "GET", + url: `/api/v4/secrets`, + headers: { + authorization: `Bearer ${authToken}` + }, + query: { + secretPath, + environment, + projectId: seedData1.projectV3.id + } + }); + const secrets: TRawSecret[] = JSON.parse(res.payload).secrets || []; + return secrets; + }; + + test.each(secretTestCases)("Create secret in path $path", async ({ secret, path }) => { + const createdSecret = await createSecret({ path, ...secret }); + expect(createdSecret.secretKey).toEqual(secret.key); + expect(createdSecret.secretValue).toEqual(secret.value); + expect(createdSecret.secretComment || "").toEqual(secret.comment); + expect(createdSecret.version).toEqual(1); + + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + secretKey: secret.key, + secretValue: secret.value, + type: SecretType.Shared + }) + ]) + ); + await deleteSecret({ path, key: secret.key }); + }); + + test.each(secretTestCases)("Get secret by name in path $path", async ({ secret, path }) => { + await createSecret({ path, ...secret }); + + const getSecByNameRes = await testServer.inject({ + method: "GET", + url: `/api/v4/secrets/${secret.key}`, + headers: { + authorization: `Bearer ${authToken}` + }, + query: { + secretPath: path, + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug + } + }); + expect(getSecByNameRes.statusCode).toBe(200); + const getSecretByNamePayload = JSON.parse(getSecByNameRes.payload); + expect(getSecretByNamePayload).toHaveProperty("secret"); + const decryptedSecret = getSecretByNamePayload.secret as TRawSecret; + expect(decryptedSecret.secretKey).toEqual(secret.key); + expect(decryptedSecret.secretValue).toEqual(secret.value); + expect(decryptedSecret.secretComment || "").toEqual(secret.comment); + + await deleteSecret({ path, key: secret.key }); + }); + + if (auth === AuthMode.JWT) { + test.each(secretTestCases)( + "Creating personal secret without shared throw error in path $path", + async ({ secret }) => { + const createSecretReqBody = { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + type: SecretType.Personal, + secretKey: secret.key, + secretValue: secret.value, + secretComment: secret.comment + }; + const createSecRes = await testServer.inject({ + method: "POST", + url: `/api/v4/secrets/SEC2`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: createSecretReqBody + }); + const payload = JSON.parse(createSecRes.payload); + expect(createSecRes.statusCode).toBe(400); + expect(payload.error).toEqual("BadRequest"); + } + ); + + test.each(secretTestCases)("Creating personal secret in path $path", async ({ secret, path }) => { + await createSecret({ path, ...secret }); + + const createSecretReqBody = { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + type: SecretType.Personal, + secretPath: path, + secretKey: secret.key, + secretValue: "personal-value", + secretComment: secret.comment + }; + const createSecRes = await testServer.inject({ + method: "POST", + url: `/api/v4/secrets/${secret.key}`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: createSecretReqBody + }); + expect(createSecRes.statusCode).toBe(200); + + // list secrets should contain personal one and shared one + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + secretKey: secret.key, + secretValue: secret.value, + type: SecretType.Shared + }), + expect.objectContaining({ + secretKey: secret.key, + secretValue: "personal-value", + type: SecretType.Personal + }) + ]) + ); + + await deleteSecret({ path, key: secret.key }); + }); + + test.each(secretTestCases)( + "Deleting personal one should not delete shared secret in path $path", + async ({ secret, path }) => { + await createSecret({ path, ...secret }); // shared one + await createSecret({ path, ...secret, type: SecretType.Personal }); + + // shared secret deletion should delete personal ones also + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + secretKey: secret.key, + type: SecretType.Shared + }), + expect.not.objectContaining({ + secretKey: secret.key, + type: SecretType.Personal + }) + ]) + ); + await deleteSecret({ path, key: secret.key }); + } + ); + } + + test.each(secretTestCases)("Update secret in path $path", async ({ path, secret }) => { + await createSecret({ path, ...secret }); + const updateSecretReqBody = { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + type: SecretType.Shared, + secretPath: path, + secretKey: secret.key, + secretValue: "new-value", + secretComment: secret.comment + }; + const updateSecRes = await testServer.inject({ + method: "PATCH", + url: `/api/v4/secrets/${secret.key}`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: updateSecretReqBody + }); + expect(updateSecRes.statusCode).toBe(200); + const updatedSecretPayload = JSON.parse(updateSecRes.payload); + expect(updatedSecretPayload).toHaveProperty("secret"); + const decryptedSecret = updatedSecretPayload.secret; + expect(decryptedSecret.secretKey).toEqual(secret.key); + expect(decryptedSecret.secretValue).toEqual("new-value"); + expect(decryptedSecret.secretComment || "").toEqual(secret.comment); + + // list secret should have updated value + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + secretKey: secret.key, + secretValue: "new-value", + type: SecretType.Shared + }) + ]) + ); + + await deleteSecret({ path, key: secret.key }); + }); + + test.each(secretTestCases)("Delete secret in path $path", async ({ secret, path }) => { + await createSecret({ path, ...secret }); + const deletedSecret = await deleteSecret({ path, key: secret.key }); + expect(deletedSecret.secretKey).toEqual(secret.key); + + // shared secret deletion should delete personal ones also + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.not.arrayContaining([ + expect.objectContaining({ + secretKey: secret.key, + type: SecretType.Shared + }), + expect.objectContaining({ + secretKey: secret.key, + type: SecretType.Personal + }) + ]) + ); + }); + + test.each(secretTestCases)("Bulk create secrets in path $path", async ({ secret, path }) => { + const createSharedSecRes = await testServer.inject({ + method: "POST", + url: `/api/v4/secrets/batch`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + secretPath: path, + secrets: Array.from(Array(5)).map((_e, i) => ({ + secretKey: `BULK-${secret.key}-${i + 1}`, + secretValue: secret.value, + secretComment: secret.comment + })) + } + }); + expect(createSharedSecRes.statusCode).toBe(200); + const createSharedSecPayload = JSON.parse(createSharedSecRes.payload); + expect(createSharedSecPayload).toHaveProperty("secrets"); + + // bulk ones should exist + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.arrayContaining( + Array.from(Array(5)).map((_e, i) => + expect.objectContaining({ + secretKey: `BULK-${secret.key}-${i + 1}`, + secretValue: secret.value, + type: SecretType.Shared + }) + ) + ) + ); + + await Promise.all( + Array.from(Array(5)).map((_e, i) => deleteSecret({ path, key: `BULK-${secret.key}-${i + 1}` })) + ); + }); + + test.each(secretTestCases)("Bulk create fail on existing secret in path $path", async ({ secret, path }) => { + await createSecret({ ...secret, key: `BULK-${secret.key}-1`, path }); + + const createSharedSecRes = await testServer.inject({ + method: "POST", + url: `/api/v4/secrets/batch`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + secretPath: path, + secrets: Array.from(Array(5)).map((_e, i) => ({ + secretKey: `BULK-${secret.key}-${i + 1}`, + secretValue: secret.value, + secretComment: secret.comment + })) + } + }); + expect(createSharedSecRes.statusCode).toBe(400); + + await deleteSecret({ path, key: `BULK-${secret.key}-1` }); + }); + + test.each(secretTestCases)("Bulk update secrets in path $path", async ({ secret, path }) => { + await Promise.all( + Array.from(Array(5)).map((_e, i) => createSecret({ ...secret, key: `BULK-${secret.key}-${i + 1}`, path })) + ); + + const updateSharedSecRes = await testServer.inject({ + method: "PATCH", + url: `/api/v4/secrets/batch`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + secretPath: path, + secrets: Array.from(Array(5)).map((_e, i) => ({ + secretKey: `BULK-${secret.key}-${i + 1}`, + secretValue: "update-value", + secretComment: secret.comment + })) + } + }); + expect(updateSharedSecRes.statusCode).toBe(200); + const updateSharedSecPayload = JSON.parse(updateSharedSecRes.payload); + expect(updateSharedSecPayload).toHaveProperty("secrets"); + + // bulk ones should exist + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.arrayContaining( + Array.from(Array(5)).map((_e, i) => + expect.objectContaining({ + secretKey: `BULK-${secret.key}-${i + 1}`, + secretValue: "update-value", + type: SecretType.Shared + }) + ) + ) + ); + await Promise.all( + Array.from(Array(5)).map((_e, i) => deleteSecret({ path, key: `BULK-${secret.key}-${i + 1}` })) + ); + }); + + test.each(secretTestCases)("Bulk upsert secrets in path $path", async ({ secret, path }) => { + const updateSharedSecRes = await testServer.inject({ + method: "PATCH", + url: `/api/v4/secrets/batch`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + secretPath: path, + mode: "upsert", + secrets: Array.from(Array(5)).map((_e, i) => ({ + secretKey: `BULK-${secret.key}-${i + 1}`, + secretValue: "update-value", + secretComment: secret.comment + })) + } + }); + expect(updateSharedSecRes.statusCode).toBe(200); + const updateSharedSecPayload = JSON.parse(updateSharedSecRes.payload); + expect(updateSharedSecPayload).toHaveProperty("secrets"); + + // bulk ones should exist + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.arrayContaining( + Array.from(Array(5)).map((_e, i) => + expect.objectContaining({ + secretKey: `BULK-${secret.key}-${i + 1}`, + secretValue: "update-value", + type: SecretType.Shared + }) + ) + ) + ); + await Promise.all( + Array.from(Array(5)).map((_e, i) => deleteSecret({ path, key: `BULK-${secret.key}-${i + 1}` })) + ); + }); + + test("Bulk upsert secrets in path multiple paths", async () => { + const firstBatchSecrets = Array.from(Array(5)).map((_e, i) => ({ + secretKey: `BULK-KEY-${secretTestCases[0].secret.key}-${i + 1}`, + secretValue: "update-value", + secretComment: "comment", + secretPath: secretTestCases[0].path + })); + const secondBatchSecrets = Array.from(Array(5)).map((_e, i) => ({ + secretKey: `BULK-KEY-${secretTestCases[1].secret.key}-${i + 1}`, + secretValue: "update-value", + secretComment: "comment", + secretPath: secretTestCases[1].path + })); + const testSecrets = [...firstBatchSecrets, ...secondBatchSecrets]; + + const updateSharedSecRes = await testServer.inject({ + method: "PATCH", + url: `/api/v4/secrets/batch`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + mode: "upsert", + secrets: testSecrets + } + }); + expect(updateSharedSecRes.statusCode).toBe(200); + const updateSharedSecPayload = JSON.parse(updateSharedSecRes.payload); + expect(updateSharedSecPayload).toHaveProperty("secrets"); + + // bulk ones should exist + const firstBatchSecretsOnInfisical = await getSecrets(seedData1.environment.slug, secretTestCases[0].path); + expect(firstBatchSecretsOnInfisical).toEqual( + expect.arrayContaining( + firstBatchSecrets.map((el) => + expect.objectContaining({ + secretKey: el.secretKey, + secretValue: "update-value", + type: SecretType.Shared + }) + ) + ) + ); + const secondBatchSecretsOnInfisical = await getSecrets(seedData1.environment.slug, secretTestCases[1].path); + expect(secondBatchSecretsOnInfisical).toEqual( + expect.arrayContaining( + secondBatchSecrets.map((el) => + expect.objectContaining({ + secretKey: el.secretKey, + secretValue: "update-value", + type: SecretType.Shared + }) + ) + ) + ); + await Promise.all(testSecrets.map((el) => deleteSecret({ path: el.secretPath, key: el.secretKey }))); + }); + + test.each(secretTestCases)("Bulk delete secrets in path $path", async ({ secret, path }) => { + await Promise.all( + Array.from(Array(5)).map((_e, i) => createSecret({ ...secret, key: `BULK-${secret.key}-${i + 1}`, path })) + ); + + const deletedSharedSecRes = await testServer.inject({ + method: "DELETE", + url: `/api/v4/secrets/batch`, + headers: { + authorization: `Bearer ${authToken}` + }, + body: { + projectId: seedData1.projectV3.id, + environment: seedData1.environment.slug, + secretPath: path, + secrets: Array.from(Array(5)).map((_e, i) => ({ + secretKey: `BULK-${secret.key}-${i + 1}` + })) + } + }); + + expect(deletedSharedSecRes.statusCode).toBe(200); + const deletedSecretPayload = JSON.parse(deletedSharedSecRes.payload); + expect(deletedSecretPayload).toHaveProperty("secrets"); + + // bulk ones should exist + const secrets = await getSecrets(seedData1.environment.slug, path); + expect(secrets).toEqual( + expect.not.arrayContaining( + Array.from(Array(5)).map((_e, i) => + expect.objectContaining({ + secretKey: `BULK-${secret.value}-${i + 1}`, + type: SecretType.Shared + }) + ) + ) + ); + }); + } +); diff --git a/backend/src/db/migrations/20250204025010_app-connections-and-secret-syncs-unique-constraint.ts b/backend/src/db/migrations/20250204025010_app-connections-and-secret-syncs-unique-constraint.ts index 348694ae7..f9b46559d 100644 --- a/backend/src/db/migrations/20250204025010_app-connections-and-secret-syncs-unique-constraint.ts +++ b/backend/src/db/migrations/20250204025010_app-connections-and-secret-syncs-unique-constraint.ts @@ -1,5 +1,6 @@ import { Knex } from "knex"; +import { dropConstraintIfExists } from "@app/db/migrations/utils/dropConstraintIfExists"; import { TableName } from "@app/db/schemas"; export async function up(knex: Knex): Promise { @@ -13,9 +14,7 @@ export async function up(knex: Knex): Promise { } export async function down(knex: Knex): Promise { - await knex.schema.alterTable(TableName.AppConnection, (t) => { - t.dropUnique(["orgId", "name"]); - }); + await dropConstraintIfExists(TableName.AppConnection, "app_connections_orgid_name_unique", knex); await knex.schema.alterTable(TableName.SecretSync, (t) => { t.dropUnique(["projectId", "name"]); diff --git a/backend/src/db/migrations/20250819081226_identity-lockouts-ldap.ts b/backend/src/db/migrations/20250819081226_identity-lockouts-ldap.ts new file mode 100644 index 000000000..6cc851368 --- /dev/null +++ b/backend/src/db/migrations/20250819081226_identity-lockouts-ldap.ts @@ -0,0 +1,57 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + if (await knex.schema.hasTable(TableName.IdentityLdapAuth)) { + const hasLockoutEnabled = await knex.schema.hasColumn(TableName.IdentityLdapAuth, "lockoutEnabled"); + const hasLockoutThreshold = await knex.schema.hasColumn(TableName.IdentityLdapAuth, "lockoutThreshold"); + const hasLockoutDuration = await knex.schema.hasColumn(TableName.IdentityLdapAuth, "lockoutDurationSeconds"); + const hasLockoutCounterReset = await knex.schema.hasColumn( + TableName.IdentityLdapAuth, + "lockoutCounterResetSeconds" + ); + + await knex.schema.alterTable(TableName.IdentityLdapAuth, (t) => { + if (!hasLockoutEnabled) { + t.boolean("lockoutEnabled").notNullable().defaultTo(true); + } + if (!hasLockoutThreshold) { + t.integer("lockoutThreshold").notNullable().defaultTo(3); + } + if (!hasLockoutDuration) { + t.integer("lockoutDurationSeconds").notNullable().defaultTo(300); // 5 minutes + } + if (!hasLockoutCounterReset) { + t.integer("lockoutCounterResetSeconds").notNullable().defaultTo(30); // 30 seconds + } + }); + } +} + +export async function down(knex: Knex): Promise { + if (await knex.schema.hasTable(TableName.IdentityLdapAuth)) { + const hasLockoutEnabled = await knex.schema.hasColumn(TableName.IdentityLdapAuth, "lockoutEnabled"); + const hasLockoutThreshold = await knex.schema.hasColumn(TableName.IdentityLdapAuth, "lockoutThreshold"); + const hasLockoutDuration = await knex.schema.hasColumn(TableName.IdentityLdapAuth, "lockoutDurationSeconds"); + const hasLockoutCounterReset = await knex.schema.hasColumn( + TableName.IdentityLdapAuth, + "lockoutCounterResetSeconds" + ); + + await knex.schema.alterTable(TableName.IdentityLdapAuth, (t) => { + if (hasLockoutEnabled) { + t.dropColumn("lockoutEnabled"); + } + if (hasLockoutThreshold) { + t.dropColumn("lockoutThreshold"); + } + if (hasLockoutDuration) { + t.dropColumn("lockoutDurationSeconds"); + } + if (hasLockoutCounterReset) { + t.dropColumn("lockoutCounterResetSeconds"); + } + }); + } +} diff --git a/backend/src/db/migrations/20250912011133_app-connection-project-id-col.ts b/backend/src/db/migrations/20250912011133_app-connection-project-id-col.ts new file mode 100644 index 000000000..5c846a739 --- /dev/null +++ b/backend/src/db/migrations/20250912011133_app-connection-project-id-col.ts @@ -0,0 +1,41 @@ +import { Knex } from "knex"; + +import { dropConstraintIfExists } from "@app/db/migrations/utils/dropConstraintIfExists"; +import { TableName } from "@app/db/schemas"; + +const UNIQUE_NAME_ORG_CONNECTION_INDEX = "unique_name_org_app_connection"; + +export async function up(knex: Knex): Promise { + if (await knex.schema.hasTable(TableName.AppConnection)) { + // we can't add the constraint back after up since there may be conflicting names so we do if exists + await dropConstraintIfExists(TableName.AppConnection, "app_connections_orgid_name_unique", knex); + + if (!(await knex.schema.hasColumn(TableName.AppConnection, "projectId"))) { + await knex.schema.alterTable(TableName.AppConnection, (t) => { + t.string("projectId").nullable(); + t.foreign("projectId").references("id").inTable(TableName.Project).onDelete("CASCADE"); + // unique name for project-level connections + t.unique(["name", "projectId", "orgId"]); + }); + + // unique name for org-level connections + await knex.raw(` + CREATE UNIQUE INDEX ${UNIQUE_NAME_ORG_CONNECTION_INDEX} + ON ${TableName.AppConnection} ("name", "orgId") + WHERE "projectId" IS NULL + `); + } + } +} + +export async function down(knex: Knex): Promise { + if (await knex.schema.hasTable(TableName.AppConnection)) { + if (await knex.schema.hasColumn(TableName.AppConnection, "projectId")) { + await knex.schema.alterTable(TableName.AppConnection, (t) => { + t.dropUnique(["name", "projectId", "orgId"]); + t.dropColumn("projectId"); + }); + await dropConstraintIfExists(TableName.AppConnection, UNIQUE_NAME_ORG_CONNECTION_INDEX, knex); + } + } +} diff --git a/backend/src/db/schemas/app-connections.ts b/backend/src/db/schemas/app-connections.ts index 2218b75ce..41d1df17f 100644 --- a/backend/src/db/schemas/app-connections.ts +++ b/backend/src/db/schemas/app-connections.ts @@ -21,7 +21,8 @@ export const AppConnectionsSchema = z.object({ createdAt: z.date(), updatedAt: z.date(), isPlatformManagedCredentials: z.boolean().default(false).nullable().optional(), - gatewayId: z.string().uuid().nullable().optional() + gatewayId: z.string().uuid().nullable().optional(), + projectId: z.string().nullable().optional() }); export type TAppConnections = z.infer; diff --git a/backend/src/db/schemas/identity-ldap-auths.ts b/backend/src/db/schemas/identity-ldap-auths.ts index 3e4d88649..87c7f1608 100644 --- a/backend/src/db/schemas/identity-ldap-auths.ts +++ b/backend/src/db/schemas/identity-ldap-auths.ts @@ -26,7 +26,11 @@ export const IdentityLdapAuthsSchema = z.object({ createdAt: z.date(), updatedAt: z.date(), accessTokenPeriod: z.coerce.number().default(0), - templateId: z.string().uuid().nullable().optional() + templateId: z.string().uuid().nullable().optional(), + lockoutEnabled: z.boolean().default(true), + lockoutThreshold: z.number().default(3), + lockoutDurationSeconds: z.number().default(300), + lockoutCounterResetSeconds: z.number().default(30) }); export type TIdentityLdapAuths = z.infer; diff --git a/backend/src/ee/routes/v1/audit-log-stream-routers/audit-log-stream-router.ts b/backend/src/ee/routes/v1/audit-log-stream-routers/audit-log-stream-router.ts index e0ac0b6af..48eed14c9 100644 --- a/backend/src/ee/routes/v1/audit-log-stream-routers/audit-log-stream-router.ts +++ b/backend/src/ee/routes/v1/audit-log-stream-routers/audit-log-stream-router.ts @@ -1,5 +1,9 @@ import { z } from "zod"; +import { + AzureProviderListItemSchema, + SanitizedAzureProviderSchema +} from "@app/ee/services/audit-log-stream/azure/azure-provider-schemas"; import { CriblProviderListItemSchema, SanitizedCriblProviderSchema @@ -24,6 +28,7 @@ const SanitizedAuditLogStreamSchema = z.union([ SanitizedCustomProviderSchema, SanitizedDatadogProviderSchema, SanitizedSplunkProviderSchema, + SanitizedAzureProviderSchema, SanitizedCriblProviderSchema ]); @@ -31,6 +36,7 @@ const ProviderOptionsSchema = z.discriminatedUnion("provider", [ CustomProviderListItemSchema, DatadogProviderListItemSchema, SplunkProviderListItemSchema, + AzureProviderListItemSchema, CriblProviderListItemSchema ]); diff --git a/backend/src/ee/routes/v1/audit-log-stream-routers/index.ts b/backend/src/ee/routes/v1/audit-log-stream-routers/index.ts index f40a82d89..ad338c801 100644 --- a/backend/src/ee/routes/v1/audit-log-stream-routers/index.ts +++ b/backend/src/ee/routes/v1/audit-log-stream-routers/index.ts @@ -1,4 +1,9 @@ import { LogProvider } from "@app/ee/services/audit-log-stream/audit-log-stream-enums"; +import { + CreateAzureProviderLogStreamSchema, + SanitizedAzureProviderSchema, + UpdateAzureProviderLogStreamSchema +} from "@app/ee/services/audit-log-stream/azure/azure-provider-schemas"; import { CreateCriblProviderLogStreamSchema, SanitizedCriblProviderSchema, @@ -26,6 +31,15 @@ export * from "./audit-log-stream-router"; export const AUDIT_LOG_STREAM_REGISTER_ROUTER_MAP: Record Promise> = { + [LogProvider.Azure]: async (server: FastifyZodProvider) => { + registerAuditLogStreamEndpoints({ + server, + provider: LogProvider.Azure, + sanitizedResponseSchema: SanitizedAzureProviderSchema, + createSchema: CreateAzureProviderLogStreamSchema, + updateSchema: UpdateAzureProviderLogStreamSchema + }); + }, [LogProvider.Custom]: async (server: FastifyZodProvider) => { registerAuditLogStreamEndpoints({ server, diff --git a/backend/src/ee/routes/v1/deprecated-project-role-router.ts b/backend/src/ee/routes/v1/deprecated-project-role-router.ts new file mode 100644 index 000000000..dc361626d --- /dev/null +++ b/backend/src/ee/routes/v1/deprecated-project-role-router.ts @@ -0,0 +1,342 @@ +import { packRules } from "@casl/ability/extra"; +import { z } from "zod"; + +import { ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { + backfillPermissionV1SchemaToV2Schema, + ProjectPermissionV1Schema +} from "@app/ee/services/permission/project-permission"; +import { PROJECT_ROLE } from "@app/lib/api-docs"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { slugSchema } from "@app/server/lib/schemas"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { SanitizedRoleSchemaV1 } from "@app/server/routes/sanitizedSchemas"; +import { AuthMode } from "@app/services/auth/auth-type"; +import { ProjectRoleServiceIdentifierType } from "@app/services/project-role/project-role-types"; + +export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "POST", + url: "/:projectSlug/roles", + config: { + rateLimit: writeLimit + }, + schema: { + description: "Create a project role", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectSlug: z.string().trim().describe(PROJECT_ROLE.CREATE.projectSlug) + }), + body: z.object({ + slug: slugSchema({ max: 64 }) + .refine( + (val) => !Object.values(ProjectMembershipRole).includes(val as ProjectMembershipRole), + "Please choose a different slug, the slug you have entered is reserved" + ) + .describe(PROJECT_ROLE.CREATE.slug), + name: z.string().min(1).trim().describe(PROJECT_ROLE.CREATE.name), + description: z.string().trim().nullish().describe(PROJECT_ROLE.CREATE.description), + permissions: ProjectPermissionV1Schema.array().describe(PROJECT_ROLE.CREATE.permissions) + }), + response: { + 200: z.object({ + role: SanitizedRoleSchemaV1 + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const stringifiedPermissions = JSON.stringify( + packRules(backfillPermissionV1SchemaToV2Schema(req.body.permissions, true)) + ); + + const role = await server.services.projectRole.createRole({ + actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actor: req.permission.type, + filter: { + type: ProjectRoleServiceIdentifierType.SLUG, + projectSlug: req.params.projectSlug + }, + data: { + ...req.body, + permissions: stringifiedPermissions + } + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.CREATE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: req.body.slug, + name: req.body.name, + description: req.body.description, + permissions: stringifiedPermissions + } + } + }); + + return { role }; + } + }); + + server.route({ + method: "PATCH", + url: "/:projectSlug/roles/:roleId", + config: { + rateLimit: writeLimit + }, + schema: { + description: "Update a project role", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectSlug: z.string().trim().describe(PROJECT_ROLE.UPDATE.projectSlug), + roleId: z.string().trim().describe(PROJECT_ROLE.UPDATE.roleId) + }), + body: z.object({ + slug: slugSchema({ max: 64 }) + .refine( + (val) => !Object.values(ProjectMembershipRole).includes(val as ProjectMembershipRole), + "Please choose a different slug, the slug you have entered is reserved" + ) + .describe(PROJECT_ROLE.UPDATE.slug) + .optional(), + name: z.string().trim().optional().describe(PROJECT_ROLE.UPDATE.name), + description: z.string().trim().nullish().describe(PROJECT_ROLE.UPDATE.description), + permissions: ProjectPermissionV1Schema.array().describe(PROJECT_ROLE.UPDATE.permissions).optional() + }), + response: { + 200: z.object({ + role: SanitizedRoleSchemaV1 + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const stringifiedPermissions = req.body.permissions + ? JSON.stringify(packRules(backfillPermissionV1SchemaToV2Schema(req.body.permissions, true))) + : undefined; + + const role = await server.services.projectRole.updateRole({ + actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actor: req.permission.type, + roleId: req.params.roleId, + data: { + ...req.body, + permissions: stringifiedPermissions + } + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.UPDATE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: req.body.slug, + name: req.body.name, + description: req.body.description, + permissions: stringifiedPermissions + } + } + }); + + return { role }; + } + }); + + server.route({ + method: "DELETE", + url: "/:projectSlug/roles/:roleId", + config: { + rateLimit: writeLimit + }, + schema: { + description: "Delete a project role", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectSlug: z.string().trim().describe(PROJECT_ROLE.DELETE.projectSlug), + roleId: z.string().trim().describe(PROJECT_ROLE.DELETE.roleId) + }), + response: { + 200: z.object({ + role: SanitizedRoleSchemaV1 + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const role = await server.services.projectRole.deleteRole({ + actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actor: req.permission.type, + roleId: req.params.roleId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.DELETE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: role.slug, + name: role.name + } + } + }); + + return { role }; + } + }); + + server.route({ + method: "GET", + url: "/:projectSlug/roles", + config: { + rateLimit: readLimit + }, + schema: { + description: "List project role", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectSlug: z.string().trim().describe(PROJECT_ROLE.LIST.projectSlug) + }), + response: { + 200: z.object({ + roles: ProjectRolesSchema.omit({ permissions: true, version: true }).array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const roles = await server.services.projectRole.listRoles({ + actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actor: req.permission.type, + filter: { + type: ProjectRoleServiceIdentifierType.SLUG, + projectSlug: req.params.projectSlug + } + }); + return { roles }; + } + }); + + server.route({ + method: "GET", + url: "/:projectSlug/roles/slug/:slug", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + projectSlug: z.string().trim().describe(PROJECT_ROLE.GET_ROLE_BY_SLUG.projectSlug), + slug: z.string().trim().describe(PROJECT_ROLE.GET_ROLE_BY_SLUG.roleSlug) + }), + response: { + 200: z.object({ + role: SanitizedRoleSchemaV1.omit({ version: true }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const role = await server.services.projectRole.getRoleBySlug({ + actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actor: req.permission.type, + filter: { + type: ProjectRoleServiceIdentifierType.SLUG, + projectSlug: req.params.projectSlug + }, + roleSlug: req.params.slug + }); + + return { role }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/permissions", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + projectId: z.string().trim() + }), + response: { + 200: z.object({ + data: z.object({ + membership: z.object({ + id: z.string(), + roles: z + .object({ + role: z.string() + }) + .array() + }), + assumedPrivilegeDetails: z + .object({ + actorId: z.string(), + actorType: z.string(), + actorName: z.string(), + actorEmail: z.string().optional() + }) + .optional(), + permissions: z.any().array() + }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const { permissions, membership, assumedPrivilegeDetails } = await server.services.projectRole.getUserPermission( + req.permission.id, + req.params.projectId, + req.permission.authMethod, + req.permission.orgId + ); + + return { + data: { + permissions, + membership, + assumedPrivilegeDetails + } + }; + } + }); +}; diff --git a/backend/src/ee/routes/v1/deprecated-project-router.ts b/backend/src/ee/routes/v1/deprecated-project-router.ts new file mode 100644 index 000000000..6c4175f84 --- /dev/null +++ b/backend/src/ee/routes/v1/deprecated-project-router.ts @@ -0,0 +1,195 @@ +import { z } from "zod"; + +import { AuditLogsSchema, SecretSnapshotsSchema } from "@app/db/schemas"; +import { EventType, UserAgentType } from "@app/ee/services/audit-log/audit-log-types"; +import { ApiDocsTags, AUDIT_LOGS, PROJECTS } from "@app/lib/api-docs"; +import { getLastMidnightDateISO, removeTrailingSlash } from "@app/lib/fn"; +import { readLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; + +export const registerDeprecatedProjectRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "GET", + url: "/:workspaceId/secret-snapshots", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Projects], + description: "Return project secret snapshots ids", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(PROJECTS.GET_SNAPSHOTS.projectId) + }), + querystring: z.object({ + environment: z.string().trim().describe(PROJECTS.GET_SNAPSHOTS.environment), + path: z.string().trim().default("/").transform(removeTrailingSlash).describe(PROJECTS.GET_SNAPSHOTS.path), + offset: z.coerce.number().default(0).describe(PROJECTS.GET_SNAPSHOTS.offset), + limit: z.coerce.number().default(20).describe(PROJECTS.GET_SNAPSHOTS.limit) + }), + response: { + 200: z.object({ + secretSnapshots: SecretSnapshotsSchema.array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretSnapshots = await server.services.snapshot.listSnapshots({ + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + ...req.query + }); + return { secretSnapshots }; + } + }); + + server.route({ + method: "GET", + url: "/:workspaceId/secret-snapshots/count", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + workspaceId: z.string().trim() + }), + querystring: z.object({ + environment: z.string().trim(), + path: z.string().trim().default("/").transform(removeTrailingSlash) + }), + response: { + 200: z.object({ + count: z.number() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const count = await server.services.snapshot.projectSecretSnapshotCount({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + environment: req.query.environment, + path: req.query.path + }); + return { count }; + } + }); + + /* + * Daniel: This endpoint is no longer is use. + * We are keeping it for now because it has been exposed in our public api docs for a while, so by removing it we are likely to break users workflows. + * + * Please refer to the new endpoint, GET /api/v1/organization/audit-logs, for the same (and more) functionality. + */ + server.route({ + method: "GET", + url: "/:workspaceId/audit-logs", + config: { + rateLimit: readLimit + }, + schema: { + description: "Return audit logs", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(AUDIT_LOGS.EXPORT.projectId) + }), + querystring: z + .object({ + eventType: z.nativeEnum(EventType).optional().describe(AUDIT_LOGS.EXPORT.eventType), + userAgentType: z.nativeEnum(UserAgentType).optional().describe(AUDIT_LOGS.EXPORT.userAgentType), + startDate: z.string().datetime().optional().describe(AUDIT_LOGS.EXPORT.startDate), + endDate: z.string().datetime().optional().describe(AUDIT_LOGS.EXPORT.endDate), + offset: z.coerce.number().default(0).describe(AUDIT_LOGS.EXPORT.offset), + limit: z.coerce.number().max(1000).default(20).describe(AUDIT_LOGS.EXPORT.limit), + actor: z.string().optional().describe(AUDIT_LOGS.EXPORT.actor) + }) + .superRefine((el, ctx) => { + if (el.endDate && el.startDate) { + const startDate = new Date(el.startDate); + const endDate = new Date(el.endDate); + const maxAllowedDate = new Date(startDate); + maxAllowedDate.setMonth(maxAllowedDate.getMonth() + 3); + if (endDate < startDate) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + path: ["endDate"], + message: "End date cannot be before start date" + }); + } + if (endDate > maxAllowedDate) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + path: ["endDate"], + message: "Dates must be within 3 months" + }); + } + } + }), + response: { + 200: z.object({ + auditLogs: AuditLogsSchema.omit({ + eventMetadata: true, + eventType: true, + actor: true, + actorMetadata: true + }) + .merge( + z.object({ + project: z + .object({ + name: z.string(), + slug: z.string() + }) + .optional(), + event: z.object({ + type: z.string(), + metadata: z.any() + }), + actor: z.object({ + type: z.string(), + metadata: z.any() + }) + }) + ) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const auditLogs = await server.services.auditLog.listAuditLogs({ + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + + filter: { + ...req.query, + projectId: req.params.workspaceId, + endDate: req.query.endDate || new Date().toISOString(), + startDate: req.query.startDate || getLastMidnightDateISO(), + auditLogActorId: req.query.actor, + eventType: req.query.eventType ? [req.query.eventType] : undefined + } + }); + return { auditLogs }; + } + }); +}; diff --git a/backend/src/ee/routes/v1/deprecated-secret-approval-policy-router.ts b/backend/src/ee/routes/v1/deprecated-secret-approval-policy-router.ts new file mode 100644 index 000000000..42f6f9c12 --- /dev/null +++ b/backend/src/ee/routes/v1/deprecated-secret-approval-policy-router.ts @@ -0,0 +1,293 @@ +import { nanoid } from "nanoid"; +import { z } from "zod"; + +import { ApproverType, BypasserType } from "@app/ee/services/access-approval-policy/access-approval-policy-types"; +import { removeTrailingSlash } from "@app/lib/fn"; +import { EnforcementLevel } from "@app/lib/types"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { sapPubSchema } from "@app/server/routes/sanitizedSchemas"; +import { AuthMode } from "@app/services/auth/auth-type"; + +export const registerDeprecatedSecretApprovalPolicyRouter = async (server: FastifyZodProvider) => { + server.route({ + url: "/", + method: "POST", + config: { + rateLimit: writeLimit + }, + schema: { + body: z + .object({ + workspaceId: z.string(), + name: z.string().optional(), + environment: z.string().optional(), + environments: z.string().array().optional(), + secretPath: z + .string() + .min(1, { message: "Secret path cannot be empty" }) + .transform((val) => removeTrailingSlash(val)), + approvers: z + .discriminatedUnion("type", [ + z.object({ type: z.literal(ApproverType.Group), id: z.string() }), + z.object({ + type: z.literal(ApproverType.User), + id: z.string().optional(), + username: z.string().optional() + }) + ]) + .array() + .min(1, { message: "At least one approver should be provided" }) + .max(100, "Cannot have more than 100 approvers"), + bypassers: z + .discriminatedUnion("type", [ + z.object({ type: z.literal(BypasserType.Group), id: z.string() }), + z.object({ + type: z.literal(BypasserType.User), + id: z.string().optional(), + username: z.string().optional() + }) + ]) + .array() + .max(100, "Cannot have more than 100 bypassers") + .optional(), + approvals: z.number().min(1).default(1), + enforcementLevel: z.nativeEnum(EnforcementLevel).default(EnforcementLevel.Hard), + allowedSelfApprovals: z.boolean().default(true) + }) + .refine((data) => data.environment || data.environments, "At least one environment should be provided"), + response: { + 200: z.object({ + approval: sapPubSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const approval = await server.services.secretApprovalPolicy.createSecretApprovalPolicy({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.body.workspaceId, + ...req.body, + name: req.body.name ?? `${req.body.environment || req.body.environments?.join(",")}-${nanoid(3)}`, + enforcementLevel: req.body.enforcementLevel + }); + return { approval }; + } + }); + + server.route({ + url: "/:sapId", + method: "PATCH", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({ + sapId: z.string() + }), + body: z.object({ + name: z.string().optional(), + approvers: z + .discriminatedUnion("type", [ + z.object({ type: z.literal(ApproverType.Group), id: z.string() }), + z.object({ type: z.literal(ApproverType.User), id: z.string().optional(), username: z.string().optional() }) + ]) + .array() + .min(1, { message: "At least one approver should be provided" }) + .max(100, "Cannot have more than 100 approvers"), + bypassers: z + .discriminatedUnion("type", [ + z.object({ type: z.literal(BypasserType.Group), id: z.string() }), + z.object({ type: z.literal(BypasserType.User), id: z.string().optional(), username: z.string().optional() }) + ]) + .array() + .max(100, "Cannot have more than 100 bypassers") + .optional(), + approvals: z.number().min(1).default(1), + secretPath: z + .string() + .trim() + .min(1, { message: "Secret path cannot be empty" }) + .optional() + .transform((val) => (val ? removeTrailingSlash(val) : undefined)), + enforcementLevel: z.nativeEnum(EnforcementLevel).optional(), + allowedSelfApprovals: z.boolean().default(true), + environments: z.array(z.string()).optional() + }), + response: { + 200: z.object({ + approval: sapPubSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const approval = await server.services.secretApprovalPolicy.updateSecretApprovalPolicy({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body, + secretPolicyId: req.params.sapId + }); + return { approval }; + } + }); + + server.route({ + url: "/:sapId", + method: "DELETE", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({ + sapId: z.string() + }), + response: { + 200: z.object({ + approval: sapPubSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const approval = await server.services.secretApprovalPolicy.deleteSecretApprovalPolicy({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + secretPolicyId: req.params.sapId + }); + return { approval }; + } + }); + + server.route({ + url: "/", + method: "GET", + config: { + rateLimit: readLimit + }, + schema: { + querystring: z.object({ + workspaceId: z.string().trim() + }), + response: { + 200: z.object({ + approvals: sapPubSchema + .extend({ + approvers: z + .object({ + id: z.string().nullable().optional(), + type: z.nativeEnum(ApproverType) + }) + .array(), + bypassers: z + .object({ + id: z.string().nullable().optional(), + type: z.nativeEnum(BypasserType) + }) + .array() + }) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const approvals = await server.services.secretApprovalPolicy.getSecretApprovalPolicyByProjectId({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.query.workspaceId + }); + return { approvals }; + } + }); + + server.route({ + url: "/:sapId", + method: "GET", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + sapId: z.string() + }), + response: { + 200: z.object({ + approval: sapPubSchema.extend({ + approvers: z + .object({ + id: z.string().nullable().optional(), + type: z.nativeEnum(ApproverType), + username: z.string().nullable().optional() + }) + .array(), + bypassers: z + .object({ + id: z.string().nullable().optional(), + type: z.nativeEnum(BypasserType), + username: z.string().nullable().optional() + }) + .array() + }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const approval = await server.services.secretApprovalPolicy.getSecretApprovalPolicyById({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.params + }); + + return { approval }; + } + }); + + server.route({ + url: "/board", + method: "GET", + config: { + rateLimit: readLimit + }, + schema: { + querystring: z.object({ + workspaceId: z.string().trim(), + environment: z.string().trim(), + secretPath: z.string().trim().transform(removeTrailingSlash) + }), + response: { + 200: z.object({ + policy: sapPubSchema + .extend({ + userApprovers: z.object({ userId: z.string().nullable().optional() }).array() + }) + .optional() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const policy = await server.services.secretApprovalPolicy.getSecretApprovalPolicyOfFolder({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.query.workspaceId, + ...req.query + }); + return { policy }; + } + }); +}; diff --git a/backend/src/ee/routes/v1/index.ts b/backend/src/ee/routes/v1/index.ts index 5a43de381..56d450df3 100644 --- a/backend/src/ee/routes/v1/index.ts +++ b/backend/src/ee/routes/v1/index.ts @@ -5,6 +5,9 @@ import { registerAccessApprovalRequestRouter } from "./access-approval-request-r import { registerAssumePrivilegeRouter } from "./assume-privilege-router"; import { AUDIT_LOG_STREAM_REGISTER_ROUTER_MAP, registerAuditLogStreamRouter } from "./audit-log-stream-routers"; import { registerCaCrlRouter } from "./certificate-authority-crl-router"; +import { registerDeprecatedProjectRoleRouter } from "./deprecated-project-role-router"; +import { registerDeprecatedProjectRouter } from "./deprecated-project-router"; +import { registerDeprecatedSecretApprovalPolicyRouter } from "./deprecated-secret-approval-policy-router"; import { registerDynamicSecretLeaseRouter } from "./dynamic-secret-lease-router"; import { registerKubernetesDynamicSecretLeaseRouter } from "./dynamic-secret-lease-routers/kubernetes-lease-router"; import { registerDynamicSecretRouter } from "./dynamic-secret-router"; @@ -27,7 +30,6 @@ import { registerRateLimitRouter } from "./rate-limit-router"; import { registerRelayRouter } from "./relay-router"; import { registerSamlRouter } from "./saml-router"; import { registerScimRouter } from "./scim-router"; -import { registerSecretApprovalPolicyRouter } from "./secret-approval-policy-router"; import { registerSecretApprovalRequestRouter } from "./secret-approval-request-router"; import { registerSecretRotationProviderRouter } from "./secret-rotation-provider-router"; import { registerSecretRotationRouter } from "./secret-rotation-router"; @@ -47,18 +49,29 @@ export const registerV1EERoutes = async (server: FastifyZodProvider) => { // org role starts with organization await server.register(registerOrgRoleRouter, { prefix: "/organization" }); await server.register(registerLicenseRouter, { prefix: "/organizations" }); + + // depreciated in favour of infisical workspace await server.register( async (projectRouter) => { - await projectRouter.register(registerProjectRoleRouter); - await projectRouter.register(registerProjectRouter); - await projectRouter.register(registerTrustedIpRouter); - await projectRouter.register(registerAssumePrivilegeRouter); + await projectRouter.register(registerDeprecatedProjectRoleRouter); + await projectRouter.register(registerDeprecatedProjectRouter); }, { prefix: "/workspace" } ); + + await server.register( + async (projectRouter) => { + await projectRouter.register(registerProjectRoleRouter); + await projectRouter.register(registerTrustedIpRouter); + await projectRouter.register(registerAssumePrivilegeRouter); + await projectRouter.register(registerProjectRouter); + }, + { prefix: "/projects" } + ); + await server.register(registerSnapshotRouter, { prefix: "/secret-snapshot" }); await server.register(registerPITRouter, { prefix: "/pit" }); - await server.register(registerSecretApprovalPolicyRouter, { prefix: "/secret-approvals" }); + await server.register(registerDeprecatedSecretApprovalPolicyRouter, { prefix: "/secret-approvals" }); await server.register(registerSecretApprovalRequestRouter, { prefix: "/secret-approval-requests" }); diff --git a/backend/src/ee/routes/v1/org-role-router.ts b/backend/src/ee/routes/v1/org-role-router.ts index c8ee03a99..070462d47 100644 --- a/backend/src/ee/routes/v1/org-role-router.ts +++ b/backend/src/ee/routes/v1/org-role-router.ts @@ -1,6 +1,7 @@ import { z } from "zod"; import { OrgMembershipRole, OrgMembershipsSchema, OrgRolesSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; @@ -42,6 +43,22 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { req.permission.authMethod, req.permission.orgId ); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + event: { + type: EventType.CREATE_ORG_ROLE, + metadata: { + roleId: role.id, + slug: req.body.slug, + name: req.body.name, + description: req.body.description, + permissions: JSON.stringify(req.body.permissions) + } + } + }); + return { role }; } }); @@ -116,6 +133,22 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { req.permission.authMethod, req.permission.orgId ); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + event: { + type: EventType.UPDATE_ORG_ROLE, + metadata: { + roleId: role.id, + slug: req.body.slug, + name: req.body.name, + description: req.body.description, + permissions: req.body.permissions ? JSON.stringify(req.body.permissions) : undefined + } + } + }); + return { role }; } }); @@ -146,6 +179,16 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { req.permission.authMethod, req.permission.orgId ); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + event: { + type: EventType.DELETE_ORG_ROLE, + metadata: { roleId: role.id, slug: role.slug, name: role.name } + } + }); + return { role }; } }); diff --git a/backend/src/ee/routes/v1/project-role-router.ts b/backend/src/ee/routes/v1/project-role-router.ts index 949d4cf7e..5a20ad893 100644 --- a/backend/src/ee/routes/v1/project-role-router.ts +++ b/backend/src/ee/routes/v1/project-role-router.ts @@ -2,26 +2,27 @@ import { packRules } from "@casl/ability/extra"; import { z } from "zod"; import { ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; -import { - backfillPermissionV1SchemaToV2Schema, - ProjectPermissionV1Schema -} from "@app/ee/services/permission/project-permission"; -import { PROJECT_ROLE } from "@app/lib/api-docs"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { checkForInvalidPermissionCombination } from "@app/ee/services/permission/permission-fns"; +import { ProjectPermissionV2Schema } from "@app/ee/services/permission/project-permission"; +import { ApiDocsTags, PROJECT_ROLE } from "@app/lib/api-docs"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; -import { SanitizedRoleSchemaV1 } from "@app/server/routes/sanitizedSchemas"; +import { SanitizedRoleSchema } from "@app/server/routes/sanitizedSchemas"; import { AuthMode } from "@app/services/auth/auth-type"; import { ProjectRoleServiceIdentifierType } from "@app/services/project-role/project-role-types"; export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", - url: "/:projectSlug/roles", + url: "/:projectId/roles", config: { rateLimit: writeLimit }, schema: { + hide: false, + tags: [ApiDocsTags.ProjectRoles], description: "Create a project role", security: [ { @@ -29,10 +30,10 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - projectSlug: z.string().trim().describe(PROJECT_ROLE.CREATE.projectSlug) + projectId: z.string().trim().describe(PROJECT_ROLE.CREATE.projectId) }), body: z.object({ - slug: slugSchema({ max: 64 }) + slug: slugSchema({ min: 1, max: 64 }) .refine( (val) => !Object.values(ProjectMembershipRole).includes(val as ProjectMembershipRole), "Please choose a different slug, the slug you have entered is reserved" @@ -40,28 +41,48 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { .describe(PROJECT_ROLE.CREATE.slug), name: z.string().min(1).trim().describe(PROJECT_ROLE.CREATE.name), description: z.string().trim().nullish().describe(PROJECT_ROLE.CREATE.description), - permissions: ProjectPermissionV1Schema.array().describe(PROJECT_ROLE.CREATE.permissions) + permissions: ProjectPermissionV2Schema.array() + .describe(PROJECT_ROLE.CREATE.permissions) + .refine(checkForInvalidPermissionCombination) }), response: { 200: z.object({ - role: SanitizedRoleSchemaV1 + role: SanitizedRoleSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { + const stringifiedPermissions = JSON.stringify(packRules(req.body.permissions)); + const role = await server.services.projectRole.createRole({ actorAuthMethod: req.permission.authMethod, actorId: req.permission.id, actorOrgId: req.permission.orgId, actor: req.permission.type, filter: { - type: ProjectRoleServiceIdentifierType.SLUG, - projectSlug: req.params.projectSlug + type: ProjectRoleServiceIdentifierType.ID, + projectId: req.params.projectId }, data: { ...req.body, - permissions: JSON.stringify(packRules(backfillPermissionV1SchemaToV2Schema(req.body.permissions, true))) + permissions: stringifiedPermissions + } + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.CREATE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: req.body.slug, + name: req.body.name, + description: req.body.description, + permissions: stringifiedPermissions + } } }); @@ -71,11 +92,13 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { server.route({ method: "PATCH", - url: "/:projectSlug/roles/:roleId", + url: "/:projectId/roles/:roleId", config: { rateLimit: writeLimit }, schema: { + hide: false, + tags: [ApiDocsTags.ProjectRoles], description: "Update a project role", security: [ { @@ -83,29 +106,33 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - projectSlug: z.string().trim().describe(PROJECT_ROLE.UPDATE.projectSlug), + projectId: z.string().trim().describe(PROJECT_ROLE.UPDATE.projectId), roleId: z.string().trim().describe(PROJECT_ROLE.UPDATE.roleId) }), body: z.object({ - slug: slugSchema({ max: 64 }) + slug: slugSchema({ min: 1, max: 64 }) .refine( (val) => !Object.values(ProjectMembershipRole).includes(val as ProjectMembershipRole), "Please choose a different slug, the slug you have entered is reserved" ) - .describe(PROJECT_ROLE.UPDATE.slug) - .optional(), + .optional() + .describe(PROJECT_ROLE.UPDATE.slug), name: z.string().trim().optional().describe(PROJECT_ROLE.UPDATE.name), description: z.string().trim().nullish().describe(PROJECT_ROLE.UPDATE.description), - permissions: ProjectPermissionV1Schema.array().describe(PROJECT_ROLE.UPDATE.permissions).optional() + permissions: ProjectPermissionV2Schema.array() + .describe(PROJECT_ROLE.UPDATE.permissions) + .optional() + .superRefine(checkForInvalidPermissionCombination) }), response: { 200: z.object({ - role: SanitizedRoleSchemaV1 + role: SanitizedRoleSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { + const stringifiedPermissions = req.body.permissions ? JSON.stringify(packRules(req.body.permissions)) : undefined; const role = await server.services.projectRole.updateRole({ actorAuthMethod: req.permission.authMethod, actorId: req.permission.id, @@ -114,22 +141,39 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { roleId: req.params.roleId, data: { ...req.body, - permissions: req.body.permissions - ? JSON.stringify(packRules(backfillPermissionV1SchemaToV2Schema(req.body.permissions, true))) - : undefined + permissions: stringifiedPermissions } }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.UPDATE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: req.body.slug, + name: req.body.name, + description: req.body.description, + permissions: stringifiedPermissions + } + } + }); + return { role }; } }); server.route({ method: "DELETE", - url: "/:projectSlug/roles/:roleId", + url: "/:projectId/roles/:roleId", config: { rateLimit: writeLimit }, schema: { + hide: false, + tags: [ApiDocsTags.ProjectRoles], description: "Delete a project role", security: [ { @@ -137,12 +181,12 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - projectSlug: z.string().trim().describe(PROJECT_ROLE.DELETE.projectSlug), + projectId: z.string().trim().describe(PROJECT_ROLE.DELETE.projectId), roleId: z.string().trim().describe(PROJECT_ROLE.DELETE.roleId) }), response: { 200: z.object({ - role: SanitizedRoleSchemaV1 + role: SanitizedRoleSchema }) } }, @@ -155,17 +199,34 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { actor: req.permission.type, roleId: req.params.roleId }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.DELETE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: role.slug, + name: role.name + } + } + }); + return { role }; } }); server.route({ method: "GET", - url: "/:projectSlug/roles", + url: "/:projectId/roles", config: { rateLimit: readLimit }, schema: { + hide: false, + tags: [ApiDocsTags.ProjectRoles], description: "List project role", security: [ { @@ -173,7 +234,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - projectSlug: z.string().trim().describe(PROJECT_ROLE.LIST.projectSlug) + projectId: z.string().trim().describe(PROJECT_ROLE.LIST.projectId) }), response: { 200: z.object({ @@ -189,8 +250,8 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { actorOrgId: req.permission.orgId, actor: req.permission.type, filter: { - type: ProjectRoleServiceIdentifierType.SLUG, - projectSlug: req.params.projectSlug + type: ProjectRoleServiceIdentifierType.ID, + projectId: req.params.projectId } }); return { roles }; @@ -199,18 +260,20 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:projectSlug/roles/slug/:slug", + url: "/:projectId/roles/slug/:roleSlug", config: { rateLimit: readLimit }, schema: { + hide: false, + tags: [ApiDocsTags.ProjectRoles], params: z.object({ - projectSlug: z.string().trim().describe(PROJECT_ROLE.GET_ROLE_BY_SLUG.projectSlug), - slug: z.string().trim().describe(PROJECT_ROLE.GET_ROLE_BY_SLUG.roleSlug) + projectId: z.string().trim().describe(PROJECT_ROLE.GET_ROLE_BY_SLUG.projectId), + roleSlug: z.string().trim().describe(PROJECT_ROLE.GET_ROLE_BY_SLUG.roleSlug) }), response: { 200: z.object({ - role: SanitizedRoleSchemaV1.omit({ version: true }) + role: SanitizedRoleSchema.omit({ version: true }) }) } }, @@ -222,12 +285,11 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { actorOrgId: req.permission.orgId, actor: req.permission.type, filter: { - type: ProjectRoleServiceIdentifierType.SLUG, - projectSlug: req.params.projectSlug + type: ProjectRoleServiceIdentifierType.ID, + projectId: req.params.projectId }, - roleSlug: req.params.slug + roleSlug: req.params.roleSlug }); - return { role }; } }); diff --git a/backend/src/ee/routes/v1/project-router.ts b/backend/src/ee/routes/v1/project-router.ts index 8d8cc4817..4988565f8 100644 --- a/backend/src/ee/routes/v1/project-router.ts +++ b/backend/src/ee/routes/v1/project-router.ts @@ -1,9 +1,9 @@ import { z } from "zod"; -import { AuditLogsSchema, SecretSnapshotsSchema } from "@app/db/schemas"; -import { EventType, UserAgentType } from "@app/ee/services/audit-log/audit-log-types"; -import { ApiDocsTags, AUDIT_LOGS, PROJECTS } from "@app/lib/api-docs"; -import { getLastMidnightDateISO, removeTrailingSlash } from "@app/lib/fn"; +import { SecretSnapshotsSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { ApiDocsTags, PROJECTS } from "@app/lib/api-docs"; +import { removeTrailingSlash } from "@app/lib/fn"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -12,7 +12,7 @@ import { KmsType } from "@app/services/kms/kms-types"; export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/secret-snapshots", + url: "/:projectId/secret-snapshots", config: { rateLimit: readLimit }, @@ -26,7 +26,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.GET_SNAPSHOTS.workspaceId) + projectId: z.string().trim().describe(PROJECTS.GET_SNAPSHOTS.projectId) }), querystring: z.object({ environment: z.string().trim().describe(PROJECTS.GET_SNAPSHOTS.environment), @@ -47,7 +47,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actorId: req.permission.id, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, ...req.query }); return { secretSnapshots }; @@ -56,13 +56,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/secret-snapshots/count", + url: "/:projectId/secret-snapshots/count", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), querystring: z.object({ environment: z.string().trim(), @@ -81,7 +81,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, environment: req.query.environment, path: req.query.path }); @@ -89,140 +89,15 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { } }); - /* - * Daniel: This endpoint is no longer is use. - * We are keeping it for now because it has been exposed in our public api docs for a while, so by removing it we are likely to break users workflows. - * - * Please refer to the new endpoint, GET /api/v1/organization/audit-logs, for the same (and more) functionality. - */ server.route({ method: "GET", - url: "/:workspaceId/audit-logs", - config: { - rateLimit: readLimit - }, - schema: { - description: "Return audit logs", - security: [ - { - bearerAuth: [] - } - ], - params: z.object({ - workspaceId: z.string().trim().describe(AUDIT_LOGS.EXPORT.projectId) - }), - querystring: z - .object({ - eventType: z.nativeEnum(EventType).optional().describe(AUDIT_LOGS.EXPORT.eventType), - userAgentType: z.nativeEnum(UserAgentType).optional().describe(AUDIT_LOGS.EXPORT.userAgentType), - startDate: z.string().datetime().optional().describe(AUDIT_LOGS.EXPORT.startDate), - endDate: z.string().datetime().optional().describe(AUDIT_LOGS.EXPORT.endDate), - offset: z.coerce.number().default(0).describe(AUDIT_LOGS.EXPORT.offset), - limit: z.coerce.number().max(1000).default(20).describe(AUDIT_LOGS.EXPORT.limit), - actor: z.string().optional().describe(AUDIT_LOGS.EXPORT.actor) - }) - .superRefine((el, ctx) => { - if (el.endDate && el.startDate) { - const startDate = new Date(el.startDate); - const endDate = new Date(el.endDate); - const maxAllowedDate = new Date(startDate); - maxAllowedDate.setMonth(maxAllowedDate.getMonth() + 3); - if (endDate < startDate) { - ctx.addIssue({ - code: z.ZodIssueCode.custom, - path: ["endDate"], - message: "End date cannot be before start date" - }); - } - if (endDate > maxAllowedDate) { - ctx.addIssue({ - code: z.ZodIssueCode.custom, - path: ["endDate"], - message: "Dates must be within 3 months" - }); - } - } - }), - response: { - 200: z.object({ - auditLogs: AuditLogsSchema.omit({ - eventMetadata: true, - eventType: true, - actor: true, - actorMetadata: true - }) - .merge( - z.object({ - project: z - .object({ - name: z.string(), - slug: z.string() - }) - .optional(), - event: z.object({ - type: z.string(), - metadata: z.any() - }), - actor: z.object({ - type: z.string(), - metadata: z.any() - }) - }) - ) - .array() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), - handler: async (req) => { - const auditLogs = await server.services.auditLog.listAuditLogs({ - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - actor: req.permission.type, - - filter: { - ...req.query, - projectId: req.params.workspaceId, - endDate: req.query.endDate || new Date().toISOString(), - startDate: req.query.startDate || getLastMidnightDateISO(), - auditLogActorId: req.query.actor, - eventType: req.query.eventType ? [req.query.eventType] : undefined - } - }); - return { auditLogs }; - } - }); - - server.route({ - method: "GET", - url: "/:workspaceId/audit-logs/filters/actors", + url: "/:projectId/kms", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() - }), - response: { - 200: z.object({ - actors: z.string().array() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async () => ({ actors: [] }) - }); - - server.route({ - method: "GET", - url: "/:workspaceId/kms", - config: { - rateLimit: readLimit - }, - schema: { - params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: z.object({ @@ -241,7 +116,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + projectId: req.params.projectId }); return kmsKey; @@ -250,13 +125,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "PATCH", - url: "/:workspaceId/kms", + url: "/:projectId/kms", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), body: z.object({ kms: z.discriminatedUnion("type", [ @@ -281,13 +156,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, ...req.body }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { type: EventType.UPDATE_PROJECT_KMS, metadata: { @@ -307,13 +182,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/kms/backup", + url: "/:projectId/kms/backup", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: z.object({ @@ -328,12 +203,12 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + projectId: req.params.projectId }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { type: EventType.GET_PROJECT_KMS_BACKUP, metadata: {} @@ -346,13 +221,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", - url: "/:workspaceId/kms/backup", + url: "/:projectId/kms/backup", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), body: z.object({ backup: z.string().min(1) @@ -374,13 +249,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, backup: req.body.backup }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { type: EventType.LOAD_PROJECT_KMS_BACKUP, metadata: {} @@ -393,13 +268,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", - url: "/:workspaceId/migrate-v3", + url: "/:projectId/migrate-v3", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { @@ -415,7 +290,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + projectId: req.params.projectId }); return migration; diff --git a/backend/src/ee/routes/v1/relay-router.ts b/backend/src/ee/routes/v1/relay-router.ts index e20480088..f3d006b10 100644 --- a/backend/src/ee/routes/v1/relay-router.ts +++ b/backend/src/ee/routes/v1/relay-router.ts @@ -1,9 +1,10 @@ import { z } from "zod"; +import { RelaysSchema } from "@app/db/schemas"; import { getConfig } from "@app/lib/config/env"; import { crypto } from "@app/lib/crypto/cryptography"; -import { BadRequestError, UnauthorizedError } from "@app/lib/errors"; -import { writeLimit } from "@app/server/config/rateLimiter"; +import { UnauthorizedError } from "@app/lib/errors"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { slugSchema } from "@app/server/lib/schemas"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -89,14 +90,59 @@ export const registerRelayRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - throw new BadRequestError({ - message: "Org relay registration is not yet supported" - }); - return server.services.relay.registerRelay({ ...req.body, identityId: req.permission.id, - orgId: req.permission.orgId + orgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod + }); + } + }); + + server.route({ + method: "GET", + url: "/", + schema: { + response: { + 200: RelaysSchema.array() + } + }, + config: { + rateLimit: readLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + return server.services.relay.getRelays({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId + }); + } + }); + + server.route({ + method: "DELETE", + url: "/:id", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({ + id: z.string() + }), + response: { + 200: RelaysSchema + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + return server.services.relay.deleteRelay({ + id: req.params.id, + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId }); } }); diff --git a/backend/src/ee/routes/v1/secret-approval-request-router.ts b/backend/src/ee/routes/v1/secret-approval-request-router.ts index bdc9c2dcd..6a9b59f00 100644 --- a/backend/src/ee/routes/v1/secret-approval-request-router.ts +++ b/backend/src/ee/routes/v1/secret-approval-request-router.ts @@ -27,7 +27,7 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv }, schema: { querystring: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), environment: z.string().trim().optional(), committer: z.string().trim().optional(), search: z.string().trim().optional(), @@ -80,7 +80,7 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, ...req.query, - projectId: req.query.workspaceId + projectId: req.query.projectId }); return { approvals, totalCount }; } @@ -94,7 +94,7 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv }, schema: { querystring: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), policyId: z.string().trim().optional() }), response: { @@ -113,7 +113,7 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.query.workspaceId, + projectId: req.query.projectId, policyId: req.query.policyId }); return { approvals }; diff --git a/backend/src/ee/routes/v1/trusted-ip-router.ts b/backend/src/ee/routes/v1/trusted-ip-router.ts index b6fc3cc90..5416e8613 100644 --- a/backend/src/ee/routes/v1/trusted-ip-router.ts +++ b/backend/src/ee/routes/v1/trusted-ip-router.ts @@ -9,13 +9,13 @@ import { AuthMode } from "@app/services/auth/auth-type"; export const registerTrustedIpRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/trusted-ips", + url: "/:projectId/trusted-ips", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: z.object({ @@ -27,7 +27,7 @@ export const registerTrustedIpRouter = async (server: FastifyZodProvider) => { handler: async (req) => { const trustedIps = await server.services.trustedIp.listIpsByProjectId({ actorAuthMethod: req.permission.authMethod, - projectId: req.params.workspaceId, + projectId: req.params.projectId, actor: req.permission.type, actorId: req.permission.id, actorOrgId: req.permission.orgId @@ -38,13 +38,13 @@ export const registerTrustedIpRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", - url: "/:workspaceId/trusted-ips", + url: "/:projectId/trusted-ips", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), body: z.object({ ipAddress: z.string().trim(), @@ -61,7 +61,7 @@ export const registerTrustedIpRouter = async (server: FastifyZodProvider) => { handler: async (req) => { const { trustedIp, project } = await server.services.trustedIp.addProjectIp({ actorAuthMethod: req.permission.authMethod, - projectId: req.params.workspaceId, + projectId: req.params.projectId, actor: req.permission.type, actorId: req.permission.id, actorOrgId: req.permission.orgId, @@ -86,13 +86,13 @@ export const registerTrustedIpRouter = async (server: FastifyZodProvider) => { server.route({ method: "PATCH", - url: "/:workspaceId/trusted-ips/:trustedIpId", + url: "/:projectId/trusted-ips/:trustedIpId", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), trustedIpId: z.string().trim() }), body: z.object({ @@ -108,7 +108,7 @@ export const registerTrustedIpRouter = async (server: FastifyZodProvider) => { onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { const { trustedIp, project } = await server.services.trustedIp.updateProjectIp({ - projectId: req.params.workspaceId, + projectId: req.params.projectId, actor: req.permission.type, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, @@ -135,13 +135,13 @@ export const registerTrustedIpRouter = async (server: FastifyZodProvider) => { server.route({ method: "DELETE", - url: "/:workspaceId/trusted-ips/:trustedIpId", + url: "/:projectId/trusted-ips/:trustedIpId", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), trustedIpId: z.string().trim() }), response: { @@ -153,7 +153,7 @@ export const registerTrustedIpRouter = async (server: FastifyZodProvider) => { onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { const { trustedIp, project } = await server.services.trustedIp.deleteProjectIp({ - projectId: req.params.workspaceId, + projectId: req.params.projectId, actor: req.permission.type, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, diff --git a/backend/src/ee/routes/v2/project-role-router.ts b/backend/src/ee/routes/v2/deprecated-project-role-router.ts similarity index 81% rename from backend/src/ee/routes/v2/project-role-router.ts rename to backend/src/ee/routes/v2/deprecated-project-role-router.ts index 538929316..326bda06a 100644 --- a/backend/src/ee/routes/v2/project-role-router.ts +++ b/backend/src/ee/routes/v2/deprecated-project-role-router.ts @@ -2,6 +2,7 @@ import { packRules } from "@casl/ability/extra"; import { z } from "zod"; import { ProjectMembershipRole, ProjectRolesSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { checkForInvalidPermissionCombination } from "@app/ee/services/permission/permission-fns"; import { ProjectPermissionV2Schema } from "@app/ee/services/permission/project-permission"; import { ApiDocsTags, PROJECT_ROLE } from "@app/lib/api-docs"; @@ -12,7 +13,7 @@ import { SanitizedRoleSchema } from "@app/server/routes/sanitizedSchemas"; import { AuthMode } from "@app/services/auth/auth-type"; import { ProjectRoleServiceIdentifierType } from "@app/services/project-role/project-role-types"; -export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { +export const registerDeprecatedProjectRoleRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", url: "/:projectId/roles", @@ -52,6 +53,8 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { + const stringifiedPermissions = JSON.stringify(packRules(req.body.permissions)); + const role = await server.services.projectRole.createRole({ actorAuthMethod: req.permission.authMethod, actorId: req.permission.id, @@ -63,9 +66,26 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { }, data: { ...req.body, - permissions: JSON.stringify(packRules(req.body.permissions)) + permissions: stringifiedPermissions } }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.CREATE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: req.body.slug, + name: req.body.name, + description: req.body.description, + permissions: stringifiedPermissions + } + } + }); + return { role }; } }); @@ -112,6 +132,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { + const stringifiedPermissions = req.body.permissions ? JSON.stringify(packRules(req.body.permissions)) : undefined; const role = await server.services.projectRole.updateRole({ actorAuthMethod: req.permission.authMethod, actorId: req.permission.id, @@ -120,9 +141,26 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { roleId: req.params.roleId, data: { ...req.body, - permissions: req.body.permissions ? JSON.stringify(packRules(req.body.permissions)) : undefined + permissions: stringifiedPermissions } }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.UPDATE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: req.body.slug, + name: req.body.name, + description: req.body.description, + permissions: stringifiedPermissions + } + } + }); + return { role }; } }); @@ -161,6 +199,21 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => { actor: req.permission.type, roleId: req.params.roleId }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: role.projectId, + event: { + type: EventType.DELETE_PROJECT_ROLE, + metadata: { + roleId: role.id, + slug: role.slug, + name: role.name + } + } + }); + return { role }; } }); diff --git a/backend/src/ee/routes/v2/index.ts b/backend/src/ee/routes/v2/index.ts index e082773dd..c402ab00a 100644 --- a/backend/src/ee/routes/v2/index.ts +++ b/backend/src/ee/routes/v2/index.ts @@ -7,15 +7,16 @@ import { SECRET_SCANNING_REGISTER_ROUTER_MAP } from "@app/ee/routes/v2/secret-scanning-v2-routers"; +import { registerDeprecatedProjectRoleRouter } from "./deprecated-project-role-router"; import { registerGatewayV2Router } from "./gateway-router"; import { registerIdentityProjectAdditionalPrivilegeRouter } from "./identity-project-additional-privilege-router"; -import { registerProjectRoleRouter } from "./project-role-router"; +import { registerSecretApprovalPolicyRouter } from "./secret-approval-policy-router"; export const registerV2EERoutes = async (server: FastifyZodProvider) => { - // org role starts with organization await server.register( async (projectRouter) => { - await projectRouter.register(registerProjectRoleRouter); + // this has been depreciated and moved to /api/v1/projects + await projectRouter.register(registerDeprecatedProjectRoleRouter); }, { prefix: "/workspace" } ); @@ -26,6 +27,8 @@ export const registerV2EERoutes = async (server: FastifyZodProvider) => { await server.register(registerGatewayV2Router, { prefix: "/gateways" }); + await server.register(registerSecretApprovalPolicyRouter, { prefix: "/secret-approvals" }); + await server.register( async (secretRotationV2Router) => { // register generic secret rotation endpoints diff --git a/backend/src/ee/routes/v1/secret-approval-policy-router.ts b/backend/src/ee/routes/v2/secret-approval-policy-router.ts similarity index 97% rename from backend/src/ee/routes/v1/secret-approval-policy-router.ts rename to backend/src/ee/routes/v2/secret-approval-policy-router.ts index dc87b83f2..f7f770197 100644 --- a/backend/src/ee/routes/v1/secret-approval-policy-router.ts +++ b/backend/src/ee/routes/v2/secret-approval-policy-router.ts @@ -19,7 +19,7 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi schema: { body: z .object({ - workspaceId: z.string(), + projectId: z.string(), name: z.string().optional(), environment: z.string().optional(), environments: z.string().array().optional(), @@ -69,7 +69,6 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.body.workspaceId, ...req.body, name: req.body.name ?? `${req.body.environment || req.body.environments?.join(",")}-${nanoid(3)}`, enforcementLevel: req.body.enforcementLevel @@ -174,7 +173,7 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi }, schema: { querystring: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: z.object({ @@ -204,7 +203,7 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.query.workspaceId + projectId: req.query.projectId }); return { approvals }; } @@ -263,7 +262,7 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi }, schema: { querystring: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), environment: z.string().trim(), secretPath: z.string().trim().transform(removeTrailingSlash) }), @@ -284,7 +283,6 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.query.workspaceId, ...req.query }); return { policy }; diff --git a/backend/src/ee/services/access-approval-request/access-approval-request-service.ts b/backend/src/ee/services/access-approval-request/access-approval-request-service.ts index 008b61919..da87978fd 100644 --- a/backend/src/ee/services/access-approval-request/access-approval-request-service.ts +++ b/backend/src/ee/services/access-approval-request/access-approval-request-service.ts @@ -777,6 +777,20 @@ export const accessApprovalRequestServiceFactory = ({ .map((appUser) => appUser.email) .filter((email): email is string => !!email); + const approvalPath = `/projects/secret-management/${project.id}/approval`; + const approvalUrl = `${cfg.SITE_URL}${approvalPath}`; + + await notificationService.createUserNotifications( + approverUsersForEmail.map((approver) => ({ + userId: approver.id, + orgId: actorOrgId, + type: NotificationType.ACCESS_POLICY_BYPASSED, + title: "Secret Access Policy Bypassed", + body: `**${actingUser.firstName} ${actingUser.lastName}** (${actingUser.email}) has accessed a secret in **${policy.secretPath || "/"}** in the **${environment?.name || permissionEnvironment}** environment for project **${project.name}** without obtaining the required approval.`, + link: approvalPath + })) + ); + if (recipientEmails.length > 0) { await smtpService.sendMail({ recipients: recipientEmails, @@ -788,7 +802,7 @@ export const accessApprovalRequestServiceFactory = ({ bypassReason: bypassReason || "No reason provided", secretPath: policy.secretPath || "/", environment: environment?.name || permissionEnvironment, - approvalUrl: `${cfg.SITE_URL}/projects/secret-management/${project.id}/approval`, + approvalUrl, requestType: "access" }, template: SmtpTemplates.AccessSecretRequestBypassed diff --git a/backend/src/ee/services/audit-log-stream/audit-log-stream-enums.ts b/backend/src/ee/services/audit-log-stream/audit-log-stream-enums.ts index 78233f774..ebef18574 100644 --- a/backend/src/ee/services/audit-log-stream/audit-log-stream-enums.ts +++ b/backend/src/ee/services/audit-log-stream/audit-log-stream-enums.ts @@ -1,4 +1,5 @@ export enum LogProvider { + Azure = "azure", Cribl = "cribl", Custom = "custom", Datadog = "datadog", diff --git a/backend/src/ee/services/audit-log-stream/audit-log-stream-factory.ts b/backend/src/ee/services/audit-log-stream/audit-log-stream-factory.ts index 21d629a53..8dde0e079 100644 --- a/backend/src/ee/services/audit-log-stream/audit-log-stream-factory.ts +++ b/backend/src/ee/services/audit-log-stream/audit-log-stream-factory.ts @@ -1,5 +1,6 @@ import { LogProvider } from "./audit-log-stream-enums"; import { TAuditLogStreamCredentials, TLogStreamFactory } from "./audit-log-stream-types"; +import { AzureProviderFactory } from "./azure/azure-provider-factory"; import { CriblProviderFactory } from "./cribl/cribl-provider-factory"; import { CustomProviderFactory } from "./custom/custom-provider-factory"; import { DatadogProviderFactory } from "./datadog/datadog-provider-factory"; @@ -8,6 +9,7 @@ import { SplunkProviderFactory } from "./splunk/splunk-provider-factory"; type TLogStreamFactoryImplementation = TLogStreamFactory; export const LOG_STREAM_FACTORY_MAP: Record = { + [LogProvider.Azure]: AzureProviderFactory as TLogStreamFactoryImplementation, [LogProvider.Datadog]: DatadogProviderFactory as TLogStreamFactoryImplementation, [LogProvider.Splunk]: SplunkProviderFactory as TLogStreamFactoryImplementation, [LogProvider.Custom]: CustomProviderFactory as TLogStreamFactoryImplementation, diff --git a/backend/src/ee/services/audit-log-stream/audit-log-stream-fns.ts b/backend/src/ee/services/audit-log-stream/audit-log-stream-fns.ts index d03a5c8a7..07d833030 100644 --- a/backend/src/ee/services/audit-log-stream/audit-log-stream-fns.ts +++ b/backend/src/ee/services/audit-log-stream/audit-log-stream-fns.ts @@ -3,6 +3,7 @@ import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; import { TAuditLogStream, TAuditLogStreamCredentials } from "./audit-log-stream-types"; +import { getAzureProviderListItem } from "./azure/azure-provider-fns"; import { getCriblProviderListItem } from "./cribl/cribl-provider-fns"; import { getCustomProviderListItem } from "./custom/custom-provider-fns"; import { getDatadogProviderListItem } from "./datadog/datadog-provider-fns"; @@ -13,6 +14,7 @@ export const listProviderOptions = () => { getDatadogProviderListItem(), getSplunkProviderListItem(), getCustomProviderListItem(), + getAzureProviderListItem(), getCriblProviderListItem() ].sort((a, b) => a.name.localeCompare(b.name)); }; diff --git a/backend/src/ee/services/audit-log-stream/audit-log-stream-types.ts b/backend/src/ee/services/audit-log-stream/audit-log-stream-types.ts index 1ef33befe..5983e50bf 100644 --- a/backend/src/ee/services/audit-log-stream/audit-log-stream-types.ts +++ b/backend/src/ee/services/audit-log-stream/audit-log-stream-types.ts @@ -1,17 +1,19 @@ import { TAuditLogs } from "@app/db/schemas"; import { LogProvider } from "./audit-log-stream-enums"; +import { TAzureProvider, TAzureProviderCredentials } from "./azure/azure-provider-types"; import { TCriblProvider, TCriblProviderCredentials } from "./cribl/cribl-provider-types"; import { TCustomProvider, TCustomProviderCredentials } from "./custom/custom-provider-types"; import { TDatadogProvider, TDatadogProviderCredentials } from "./datadog/datadog-provider-types"; import { TSplunkProvider, TSplunkProviderCredentials } from "./splunk/splunk-provider-types"; -export type TAuditLogStream = TDatadogProvider | TSplunkProvider | TCustomProvider | TCriblProvider; +export type TAuditLogStream = TDatadogProvider | TSplunkProvider | TCustomProvider | TAzureProvider | TCriblProvider; export type TAuditLogStreamCredentials = | TDatadogProviderCredentials | TSplunkProviderCredentials | TCustomProviderCredentials + | TAzureProviderCredentials | TCriblProviderCredentials; export type TCreateAuditLogStreamDTO = { diff --git a/backend/src/ee/services/audit-log-stream/azure/azure-provider-factory.ts b/backend/src/ee/services/audit-log-stream/azure/azure-provider-factory.ts new file mode 100644 index 000000000..9a6157666 --- /dev/null +++ b/backend/src/ee/services/audit-log-stream/azure/azure-provider-factory.ts @@ -0,0 +1,98 @@ +import { RawAxiosRequestHeaders } from "axios"; + +import { request } from "@app/lib/config/request"; +import { BadRequestError } from "@app/lib/errors"; +import { blockLocalAndPrivateIpAddresses } from "@app/lib/validator"; + +import { AUDIT_LOG_STREAM_TIMEOUT } from "../../audit-log/audit-log-queue"; +import { TLogStreamFactoryStreamLog, TLogStreamFactoryValidateCredentials } from "../audit-log-stream-types"; +import { TAzureProviderCredentials } from "./azure-provider-types"; + +function createPayload(event: { createdAt?: Date | string } & Record) { + return [ + { + ...event, + TimeGenerated: (event.createdAt ? new Date(event.createdAt) : new Date()).toISOString() + } + ]; +} + +async function getAzureToken(tenantId: string, clientId: string, clientSecret: string) { + const { data } = await request.post<{ access_token: string }>( + `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`, + new URLSearchParams({ + grant_type: "client_credentials", + client_id: clientId, + client_secret: clientSecret, + scope: "https://monitor.azure.com/.default" + }), + { + headers: { + "Content-Type": "application/x-www-form-urlencoded" + } + } + ); + + return data.access_token; +} + +export const AzureProviderFactory = () => { + const validateCredentials: TLogStreamFactoryValidateCredentials = async ({ + credentials + }) => { + const { tenantId, clientId, clientSecret, dceUrl, dcrId, cltName } = credentials; + + await blockLocalAndPrivateIpAddresses(dceUrl); + + const token = await getAzureToken(tenantId, clientId, clientSecret); + + const streamHeaders: RawAxiosRequestHeaders = { + "Content-Type": "application/json", + Authorization: `Bearer ${token}` + }; + + await request + .post( + `${dceUrl}/dataCollectionRules/${dcrId}/streams/Custom-${cltName}_CL?api-version=2023-01-01`, + createPayload({ ping: "ok" }), + { + headers: streamHeaders, + timeout: AUDIT_LOG_STREAM_TIMEOUT, + signal: AbortSignal.timeout(AUDIT_LOG_STREAM_TIMEOUT) + } + ) + .catch((err) => { + throw new BadRequestError({ message: `Failed to connect with Azure: ${(err as Error)?.message}` }); + }); + + return credentials; + }; + + const streamLog: TLogStreamFactoryStreamLog = async ({ credentials, auditLog }) => { + const { tenantId, clientId, clientSecret, dceUrl, dcrId, cltName } = credentials; + + await blockLocalAndPrivateIpAddresses(dceUrl); + + const token = await getAzureToken(tenantId, clientId, clientSecret); + + const streamHeaders: RawAxiosRequestHeaders = { + "Content-Type": "application/json", + Authorization: `Bearer ${token}` + }; + + await request.post( + `${dceUrl}/dataCollectionRules/${dcrId}/streams/Custom-${cltName}_CL?api-version=2023-01-01`, + createPayload(auditLog), + { + headers: streamHeaders, + timeout: AUDIT_LOG_STREAM_TIMEOUT, + signal: AbortSignal.timeout(AUDIT_LOG_STREAM_TIMEOUT) + } + ); + }; + + return { + validateCredentials, + streamLog + }; +}; diff --git a/backend/src/ee/services/audit-log-stream/azure/azure-provider-fns.ts b/backend/src/ee/services/audit-log-stream/azure/azure-provider-fns.ts new file mode 100644 index 000000000..e558b69e2 --- /dev/null +++ b/backend/src/ee/services/audit-log-stream/azure/azure-provider-fns.ts @@ -0,0 +1,8 @@ +import { LogProvider } from "../audit-log-stream-enums"; + +export const getAzureProviderListItem = () => { + return { + name: "Azure" as const, + provider: LogProvider.Azure as const + }; +}; diff --git a/backend/src/ee/services/audit-log-stream/azure/azure-provider-schemas.ts b/backend/src/ee/services/audit-log-stream/azure/azure-provider-schemas.ts new file mode 100644 index 000000000..50def1d79 --- /dev/null +++ b/backend/src/ee/services/audit-log-stream/azure/azure-provider-schemas.ts @@ -0,0 +1,52 @@ +import RE2 from "re2"; +import { z } from "zod"; + +import { LogProvider } from "../audit-log-stream-enums"; +import { BaseProviderSchema } from "../audit-log-stream-schemas"; + +export const AzureProviderCredentialsSchema = z.object({ + tenantId: z.string().trim().uuid(), + clientId: z.string().trim().uuid(), + clientSecret: z.string().trim().length(40), + + // Data Collection Endpoint URL + dceUrl: z.string().trim().url().min(1).max(255), + + // Data Collection Rule Immutable ID + dcrId: z + .string() + .trim() + .refine((val) => new RE2(/^dcr-[0-9a-f]{32}$/).test(val), "DCR ID must be in dcr-*** format"), + + // Custom Log Table Name + cltName: z.string().trim().min(1).max(255) +}); + +const BaseAzureProviderSchema = BaseProviderSchema.extend({ provider: z.literal(LogProvider.Azure) }); + +export const AzureProviderSchema = BaseAzureProviderSchema.extend({ + credentials: AzureProviderCredentialsSchema +}); + +export const SanitizedAzureProviderSchema = BaseAzureProviderSchema.extend({ + credentials: AzureProviderCredentialsSchema.pick({ + tenantId: true, + clientId: true, + dceUrl: true, + dcrId: true, + cltName: true + }) +}); + +export const AzureProviderListItemSchema = z.object({ + name: z.literal("Azure"), + provider: z.literal(LogProvider.Azure) +}); + +export const CreateAzureProviderLogStreamSchema = z.object({ + credentials: AzureProviderCredentialsSchema +}); + +export const UpdateAzureProviderLogStreamSchema = z.object({ + credentials: AzureProviderCredentialsSchema +}); diff --git a/backend/src/ee/services/audit-log-stream/azure/azure-provider-types.ts b/backend/src/ee/services/audit-log-stream/azure/azure-provider-types.ts new file mode 100644 index 000000000..0ba5f120d --- /dev/null +++ b/backend/src/ee/services/audit-log-stream/azure/azure-provider-types.ts @@ -0,0 +1,7 @@ +import { z } from "zod"; + +import { AzureProviderCredentialsSchema, AzureProviderSchema } from "./azure-provider-schemas"; + +export type TAzureProvider = z.infer; + +export type TAzureProviderCredentials = z.infer; diff --git a/backend/src/ee/services/audit-log/audit-log-types.ts b/backend/src/ee/services/audit-log/audit-log-types.ts index 10c84cc4a..e3ba9b72f 100644 --- a/backend/src/ee/services/audit-log/audit-log-types.ts +++ b/backend/src/ee/services/audit-log/audit-log-types.ts @@ -146,7 +146,7 @@ export enum EventType { MOVE_SECRETS = "move-secrets", DELETE_SECRET = "delete-secret", DELETE_SECRETS = "delete-secrets", - GET_WORKSPACE_KEY = "get-workspace-key", + GET_PROJECT_KEY = "get-project-key", AUTHORIZE_INTEGRATION = "authorize-integration", UPDATE_INTEGRATION_AUTH = "update-integration-auth", UNAUTHORIZE_INTEGRATION = "unauthorize-integration", @@ -199,6 +199,7 @@ export enum EventType { CREATE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = "create-identity-universal-auth-client-secret", REVOKE_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET = "revoke-identity-universal-auth-client-secret", CLEAR_IDENTITY_UNIVERSAL_AUTH_LOCKOUTS = "clear-identity-universal-auth-lockouts", + CLEAR_IDENTITY_LDAP_AUTH_LOCKOUTS = "clear-identity-ldap-auth-lockouts", GET_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRETS = "get-identity-universal-auth-client-secret", GET_IDENTITY_UNIVERSAL_AUTH_CLIENT_SECRET_BY_ID = "get-identity-universal-auth-client-secret-by-id", @@ -249,9 +250,9 @@ export enum EventType { UPDATE_ENVIRONMENT = "update-environment", DELETE_ENVIRONMENT = "delete-environment", GET_ENVIRONMENT = "get-environment", - ADD_WORKSPACE_MEMBER = "add-workspace-member", - ADD_BATCH_WORKSPACE_MEMBER = "add-workspace-members", - REMOVE_WORKSPACE_MEMBER = "remove-workspace-member", + ADD_PROJECT_MEMBER = "add-project-member", + ADD_BATCH_PROJECT_MEMBER = "add-project-members", + REMOVE_PROJECT_MEMBER = "remove-project-member", CREATE_FOLDER = "create-folder", UPDATE_FOLDER = "update-folder", DELETE_FOLDER = "delete-folder", @@ -264,8 +265,8 @@ export enum EventType { CREATE_SECRET_IMPORT = "create-secret-import", UPDATE_SECRET_IMPORT = "update-secret-import", DELETE_SECRET_IMPORT = "delete-secret-import", - UPDATE_USER_WORKSPACE_ROLE = "update-user-workspace-role", - UPDATE_USER_WORKSPACE_DENIED_PERMISSIONS = "update-user-workspace-denied-permissions", + UPDATE_USER_PROJECT_ROLE = "update-user-project-role", + UPDATE_USER_PROJECT_DENIED_PERMISSIONS = "update-user-project-denied-permissions", SECRET_APPROVAL_MERGED = "secret-approval-merged", SECRET_APPROVAL_REQUEST = "secret-approval-request", SECRET_APPROVAL_CLOSED = "secret-approval-closed", @@ -392,6 +393,8 @@ export enum EventType { CREATE_APP_CONNECTION = "create-app-connection", UPDATE_APP_CONNECTION = "update-app-connection", DELETE_APP_CONNECTION = "delete-app-connection", + GET_APP_CONNECTION_USAGE = "get-app-connection-usage", + MIGRATE_APP_CONNECTION = "migrate-app-connection", CREATE_SHARED_SECRET = "create-shared-secret", CREATE_SECRET_REQUEST = "create-secret-request", DELETE_SHARED_SECRET = "delete-shared-secret", @@ -475,9 +478,21 @@ export enum EventType { UPDATE_PROJECT = "update-project", DELETE_PROJECT = "delete-project", + CREATE_PROJECT_ROLE = "create-project-role", + UPDATE_PROJECT_ROLE = "update-project-role", + DELETE_PROJECT_ROLE = "delete-project-role", + + CREATE_ORG_ROLE = "create-org-role", + UPDATE_ORG_ROLE = "update-org-role", + DELETE_ORG_ROLE = "delete-org-role", + CREATE_SECRET_REMINDER = "create-secret-reminder", GET_SECRET_REMINDER = "get-secret-reminder", - DELETE_SECRET_REMINDER = "delete-secret-reminder" + DELETE_SECRET_REMINDER = "delete-secret-reminder", + + DASHBOARD_LIST_SECRETS = "dashboard-list-secrets", + DASHBOARD_GET_SECRET_VALUE = "dashboard-get-secret-value", + DASHBOARD_GET_SECRET_VERSION_VALUE = "dashboard-get-secret-version-value" } export const filterableSecretEvents: EventType[] = [ @@ -588,6 +603,7 @@ interface CreateSecretEvent { secretKey: string; secretVersion: number; secretMetadata?: TSecretMetadata; + secretTags?: string[]; }; } @@ -602,6 +618,7 @@ interface CreateSecretBatchEvent { secretPath?: string; secretVersion: number; secretMetadata?: TSecretMetadata; + secretTags?: string[]; }>; }; } @@ -615,6 +632,7 @@ interface UpdateSecretEvent { secretKey: string; secretVersion: number; secretMetadata?: TSecretMetadata; + secretTags?: string[]; }; } @@ -629,6 +647,7 @@ interface UpdateSecretBatchEvent { secretVersion: number; secretMetadata?: TSecretMetadata; secretPath?: string; + secretTags?: string[]; }>; }; } @@ -664,8 +683,8 @@ interface DeleteSecretBatchEvent { }; } -interface GetWorkspaceKeyEvent { - type: EventType.GET_WORKSPACE_KEY; +interface GetProjectKeyEvent { + type: EventType.GET_PROJECT_KEY; metadata: { keyId: string; }; @@ -1370,6 +1389,10 @@ interface AddIdentityLdapAuthEvent { allowedFields?: TAllowedFields[]; url: string; templateId?: string | null; + lockoutEnabled: boolean; + lockoutThreshold: number; + lockoutDurationSeconds: number; + lockoutCounterResetSeconds: number; }; } @@ -1384,6 +1407,10 @@ interface UpdateIdentityLdapAuthEvent { allowedFields?: TAllowedFields[]; url?: string; templateId?: string | null; + lockoutEnabled?: boolean; + lockoutThreshold?: number; + lockoutDurationSeconds?: number; + lockoutCounterResetSeconds?: number; }; } @@ -1401,6 +1428,13 @@ interface RevokeIdentityLdapAuthEvent { }; } +interface ClearIdentityLdapAuthLockoutsEvent { + type: EventType.CLEAR_IDENTITY_LDAP_AUTH_LOCKOUTS; + metadata: { + identityId: string; + }; +} + interface LoginIdentityOidcAuthEvent { type: EventType.LOGIN_IDENTITY_OIDC_AUTH; metadata: { @@ -1557,24 +1591,24 @@ interface DeleteEnvironmentEvent { }; } -interface AddWorkspaceMemberEvent { - type: EventType.ADD_WORKSPACE_MEMBER; +interface AddProjectMemberEvent { + type: EventType.ADD_PROJECT_MEMBER; metadata: { userId: string; email: string; }; } -interface AddBatchWorkspaceMemberEvent { - type: EventType.ADD_BATCH_WORKSPACE_MEMBER; +interface AddBatchProjectMemberEvent { + type: EventType.ADD_BATCH_PROJECT_MEMBER; metadata: Array<{ userId: string; email: string; }>; } -interface RemoveWorkspaceMemberEvent { - type: EventType.REMOVE_WORKSPACE_MEMBER; +interface RemoveProjectMemberEvent { + type: EventType.REMOVE_PROJECT_MEMBER; metadata: { userId: string; email: string; @@ -1713,7 +1747,7 @@ interface DeleteSecretImportEvent { } interface UpdateUserRole { - type: EventType.UPDATE_USER_WORKSPACE_ROLE; + type: EventType.UPDATE_USER_PROJECT_ROLE; metadata: { userId: string; email: string; @@ -1723,7 +1757,7 @@ interface UpdateUserRole { } interface UpdateUserDeniedPermissions { - type: EventType.UPDATE_USER_WORKSPACE_DENIED_PERMISSIONS; + type: EventType.UPDATE_USER_PROJECT_DENIED_PERMISSIONS; metadata: { userId: string; email: string; @@ -2781,14 +2815,31 @@ interface GetAppConnectionEvent { }; } +interface GetAppConnectionUsageEvent { + type: EventType.GET_APP_CONNECTION_USAGE; + metadata: { + connectionId: string; + }; +} + +interface MigrateAppConnectionEvent { + type: EventType.MIGRATE_APP_CONNECTION; + metadata: { + connectionId: string; + }; +} + interface CreateAppConnectionEvent { type: EventType.CREATE_APP_CONNECTION; - metadata: Omit & { connectionId: string }; + metadata: Omit & { connectionId: string }; } interface UpdateAppConnectionEvent { type: EventType.UPDATE_APP_CONNECTION; - metadata: Omit & { connectionId: string; credentialsUpdated: boolean }; + metadata: Omit & { + connectionId: string; + credentialsUpdated: boolean; + }; } interface DeleteAppConnectionEvent { @@ -3467,6 +3518,96 @@ interface ProjectDeleteEvent { }; } +interface DashboardListSecretsEvent { + type: EventType.DASHBOARD_LIST_SECRETS; + metadata: { + environment: string; + secretPath: string; + numberOfSecrets: number; + secretIds: string[]; + }; +} + +interface DashboardGetSecretValueEvent { + type: EventType.DASHBOARD_GET_SECRET_VALUE; + metadata: { + secretId: string; + secretKey: string; + environment: string; + secretPath: string; + }; +} + +interface DashboardGetSecretVersionValueEvent { + type: EventType.DASHBOARD_GET_SECRET_VERSION_VALUE; + metadata: { + secretId: string; + version: string; + }; +} + +interface ProjectRoleCreateEvent { + type: EventType.CREATE_PROJECT_ROLE; + metadata: { + roleId: string; + slug: string; + name: string; + description?: string | null; + permissions: string; + }; +} + +interface ProjectRoleUpdateEvent { + type: EventType.UPDATE_PROJECT_ROLE; + metadata: { + roleId: string; + slug?: string; + name?: string; + description?: string | null; + permissions?: string; + }; +} + +interface ProjectRoleDeleteEvent { + type: EventType.DELETE_PROJECT_ROLE; + metadata: { + roleId: string; + slug: string; + name: string; + }; +} + +interface OrgRoleCreateEvent { + type: EventType.CREATE_ORG_ROLE; + metadata: { + roleId: string; + slug: string; + name: string; + description?: string | null; + permissions: string; + }; +} + +interface OrgRoleUpdateEvent { + type: EventType.UPDATE_ORG_ROLE; + metadata: { + roleId: string; + slug?: string; + name?: string; + description?: string | null; + permissions?: string; + }; +} + +interface OrgRoleDeleteEvent { + type: EventType.DELETE_ORG_ROLE; + metadata: { + roleId: string; + slug: string; + name: string; + }; +} + export type Event = | GetSecretsEvent | GetSecretEvent @@ -3477,7 +3618,7 @@ export type Event = | MoveSecretsEvent | DeleteSecretEvent | DeleteSecretBatchEvent - | GetWorkspaceKeyEvent + | GetProjectKeyEvent | AuthorizeIntegrationEvent | UpdateIntegrationAuthEvent | UnauthorizeIntegrationEvent @@ -3562,13 +3703,14 @@ export type Event = | UpdateIdentityLdapAuthEvent | GetIdentityLdapAuthEvent | RevokeIdentityLdapAuthEvent + | ClearIdentityLdapAuthLockoutsEvent | CreateEnvironmentEvent | GetEnvironmentEvent | UpdateEnvironmentEvent | DeleteEnvironmentEvent - | AddWorkspaceMemberEvent - | AddBatchWorkspaceMemberEvent - | RemoveWorkspaceMemberEvent + | AddProjectMemberEvent + | AddBatchProjectMemberEvent + | RemoveProjectMemberEvent | CreateFolderEvent | UpdateFolderEvent | DeleteFolderEvent @@ -3697,6 +3839,8 @@ export type Event = | CreateAppConnectionEvent | UpdateAppConnectionEvent | DeleteAppConnectionEvent + | GetAppConnectionUsageEvent + | MigrateAppConnectionEvent | GetSshHostGroupEvent | CreateSshHostGroupEvent | UpdateSshHostGroupEvent @@ -3780,4 +3924,13 @@ export type Event = | ProjectDeleteEvent | SecretReminderCreateEvent | SecretReminderGetEvent - | SecretReminderDeleteEvent; + | SecretReminderDeleteEvent + | DashboardListSecretsEvent + | DashboardGetSecretValueEvent + | DashboardGetSecretVersionValueEvent + | ProjectRoleCreateEvent + | ProjectRoleUpdateEvent + | ProjectRoleDeleteEvent + | OrgRoleCreateEvent + | OrgRoleUpdateEvent + | OrgRoleDeleteEvent; diff --git a/backend/src/ee/services/dynamic-secret/providers/aws-iam.ts b/backend/src/ee/services/dynamic-secret/providers/aws-iam.ts index d4fceb674..08686ffc4 100644 --- a/backend/src/ee/services/dynamic-secret/providers/aws-iam.ts +++ b/backend/src/ee/services/dynamic-secret/providers/aws-iam.ts @@ -16,7 +16,7 @@ import { PutUserPolicyCommand, RemoveUserFromGroupCommand } from "@aws-sdk/client-iam"; -import { AssumeRoleCommand, STSClient } from "@aws-sdk/client-sts"; +import { AssumeRoleCommand, GetSessionTokenCommand, STSClient } from "@aws-sdk/client-sts"; import { z } from "zod"; import { CustomAWSHasher } from "@app/lib/aws/hashing"; @@ -26,9 +26,12 @@ import { BadRequestError, UnauthorizedError } from "@app/lib/errors"; import { sanitizeString } from "@app/lib/fn"; import { alphaNumericNanoId } from "@app/lib/nanoid"; -import { AwsIamAuthType, DynamicSecretAwsIamSchema, TDynamicProviderFns } from "./models"; +import { AwsIamAuthType, AwsIamCredentialType, DynamicSecretAwsIamSchema, TDynamicProviderFns } from "./models"; import { compileUsernameTemplate } from "./templateUtils"; +// AWS STS duration constants (in seconds) +const AWS_STS_MIN_DURATION = 900; + const generateUsername = (usernameTemplate?: string | null, identity?: { name: string }) => { const randomUsername = alphaNumericNanoId(32); if (!usernameTemplate) return randomUsername; @@ -120,6 +123,58 @@ export const AwsIamProvider = (): TDynamicProviderFns => { const validateConnection = async (inputs: unknown, { projectId }: { projectId: string }) => { const providerInputs = await validateProviderInputs(inputs); try { + if (providerInputs.credentialType === AwsIamCredentialType.TemporaryCredentials) { + if (providerInputs.method === AwsIamAuthType.AccessKey) { + const stsClient = new STSClient({ + region: providerInputs.region, + useFipsEndpoint: crypto.isFipsModeEnabled(), + sha256: CustomAWSHasher, + credentials: { + accessKeyId: providerInputs.accessKey, + secretAccessKey: providerInputs.secretAccessKey + } + }); + + await stsClient.send(new GetSessionTokenCommand({ DurationSeconds: AWS_STS_MIN_DURATION })); + return true; + } + if (providerInputs.method === AwsIamAuthType.AssumeRole) { + const appCfg = getConfig(); + const stsClient = new STSClient({ + region: providerInputs.region, + useFipsEndpoint: crypto.isFipsModeEnabled(), + sha256: CustomAWSHasher, + credentials: + appCfg.DYNAMIC_SECRET_AWS_ACCESS_KEY_ID && appCfg.DYNAMIC_SECRET_AWS_SECRET_ACCESS_KEY + ? { + accessKeyId: appCfg.DYNAMIC_SECRET_AWS_ACCESS_KEY_ID, + secretAccessKey: appCfg.DYNAMIC_SECRET_AWS_SECRET_ACCESS_KEY + } + : undefined + }); + + await stsClient.send( + new AssumeRoleCommand({ + RoleArn: providerInputs.roleArn, + RoleSessionName: `infisical-validation-${crypto.nativeCrypto.randomUUID()}`, + DurationSeconds: AWS_STS_MIN_DURATION, + ExternalId: projectId + }) + ); + return true; + } + if (providerInputs.method === AwsIamAuthType.IRSA) { + const stsClient = new STSClient({ + region: providerInputs.region, + useFipsEndpoint: crypto.isFipsModeEnabled(), + sha256: CustomAWSHasher + }); + + await stsClient.send(new GetSessionTokenCommand({ DurationSeconds: AWS_STS_MIN_DURATION })); + return true; + } + } + const client = await $getClient(providerInputs, projectId); const isConnected = await client .send(new GetUserCommand({})) @@ -137,7 +192,7 @@ export const AwsIamProvider = (): TDynamicProviderFns => { }); return isConnected; } catch (err) { - const sensitiveTokens = []; + const sensitiveTokens: string[] = []; if (providerInputs.method === AwsIamAuthType.AccessKey) { sensitiveTokens.push(providerInputs.accessKey, providerInputs.secretAccessKey); } @@ -163,102 +218,269 @@ export const AwsIamProvider = (): TDynamicProviderFns => { }; metadata: { projectId: string }; }) => { - const { inputs, usernameTemplate, metadata, identity } = data; + const { inputs, usernameTemplate, metadata, identity, expireAt } = data; const providerInputs = await validateProviderInputs(inputs); - const client = await $getClient(providerInputs, metadata.projectId); - const username = generateUsername(usernameTemplate, identity); - const { policyArns, userGroups, policyDocument, awsPath, permissionBoundaryPolicyArn } = providerInputs; - const awsTags = [{ Key: "createdBy", Value: "infisical-dynamic-secret" }]; + if (providerInputs.credentialType === AwsIamCredentialType.TemporaryCredentials) { + try { + let stsClient: STSClient; + let entityId: string; - if (providerInputs.tags && Array.isArray(providerInputs.tags)) { - const additionalTags = providerInputs.tags.map((tag) => ({ - Key: tag.key, - Value: tag.value - })); - awsTags.push(...additionalTags); + const currentTime = Date.now(); + const requestedDuration = Math.floor((expireAt - currentTime) / 1000); + + if (requestedDuration <= 0) { + throw new BadRequestError({ message: "Expiration time must be in the future" }); + } + + let durationSeconds: number; + + if (providerInputs.method === AwsIamAuthType.AssumeRole) { + durationSeconds = requestedDuration; + const appCfg = getConfig(); + stsClient = new STSClient({ + region: providerInputs.region, + useFipsEndpoint: crypto.isFipsModeEnabled(), + sha256: CustomAWSHasher, + credentials: + appCfg.DYNAMIC_SECRET_AWS_ACCESS_KEY_ID && appCfg.DYNAMIC_SECRET_AWS_SECRET_ACCESS_KEY + ? { + accessKeyId: appCfg.DYNAMIC_SECRET_AWS_ACCESS_KEY_ID, + secretAccessKey: appCfg.DYNAMIC_SECRET_AWS_SECRET_ACCESS_KEY + } + : undefined + }); + + const assumeRoleRes = await stsClient.send( + new AssumeRoleCommand({ + RoleArn: providerInputs.roleArn, + RoleSessionName: `infisical-temp-cred-${crypto.nativeCrypto.randomUUID()}`, + DurationSeconds: durationSeconds, + ExternalId: metadata.projectId + }) + ); + + if ( + !assumeRoleRes.Credentials?.AccessKeyId || + !assumeRoleRes.Credentials?.SecretAccessKey || + !assumeRoleRes.Credentials?.SessionToken + ) { + throw new BadRequestError({ message: "Failed to assume role - verify credentials and role configuration" }); + } + + entityId = `assume-role-${alphaNumericNanoId(8)}`; + return { + entityId, + data: { + ACCESS_KEY: assumeRoleRes.Credentials.AccessKeyId, + SECRET_ACCESS_KEY: assumeRoleRes.Credentials.SecretAccessKey, + SESSION_TOKEN: assumeRoleRes.Credentials.SessionToken + } + }; + } + if (providerInputs.method === AwsIamAuthType.AccessKey) { + durationSeconds = requestedDuration; + stsClient = new STSClient({ + region: providerInputs.region, + useFipsEndpoint: crypto.isFipsModeEnabled(), + sha256: CustomAWSHasher, + credentials: { + accessKeyId: providerInputs.accessKey, + secretAccessKey: providerInputs.secretAccessKey + } + }); + + const sessionTokenRes = await stsClient.send( + new GetSessionTokenCommand({ + DurationSeconds: durationSeconds + }) + ); + + if ( + !sessionTokenRes.Credentials?.AccessKeyId || + !sessionTokenRes.Credentials?.SecretAccessKey || + !sessionTokenRes.Credentials?.SessionToken + ) { + throw new BadRequestError({ message: "Failed to get session token - verify credentials and permissions" }); + } + + entityId = `session-token-${alphaNumericNanoId(8)}`; + return { + entityId, + data: { + ACCESS_KEY: sessionTokenRes.Credentials.AccessKeyId, + SECRET_ACCESS_KEY: sessionTokenRes.Credentials.SecretAccessKey, + SESSION_TOKEN: sessionTokenRes.Credentials.SessionToken + } + }; + } + if (providerInputs.method === AwsIamAuthType.IRSA) { + durationSeconds = requestedDuration; + stsClient = new STSClient({ + region: providerInputs.region, + useFipsEndpoint: crypto.isFipsModeEnabled(), + sha256: CustomAWSHasher + }); + + const sessionTokenRes = await stsClient.send( + new GetSessionTokenCommand({ + DurationSeconds: durationSeconds + }) + ); + + if ( + !sessionTokenRes.Credentials?.AccessKeyId || + !sessionTokenRes.Credentials?.SecretAccessKey || + !sessionTokenRes.Credentials?.SessionToken + ) { + throw new BadRequestError({ + message: "Failed to get session token - verify IRSA credentials and permissions" + }); + } + + entityId = `irsa-session-${alphaNumericNanoId(8)}`; + return { + entityId, + data: { + ACCESS_KEY: sessionTokenRes.Credentials.AccessKeyId, + SECRET_ACCESS_KEY: sessionTokenRes.Credentials.SecretAccessKey, + SESSION_TOKEN: sessionTokenRes.Credentials.SessionToken + } + }; + } + + throw new BadRequestError({ message: "Unsupported authentication method for temporary credentials" }); + } catch (err) { + const sensitiveTokens: string[] = []; + if (providerInputs.method === AwsIamAuthType.AccessKey) { + sensitiveTokens.push(providerInputs.accessKey, providerInputs.secretAccessKey); + } + if (providerInputs.method === AwsIamAuthType.AssumeRole) { + sensitiveTokens.push(providerInputs.roleArn); + } + + let errorMessage = (err as Error)?.message || "Unknown error"; + + if (err && typeof err === "object" && "name" in err && "$metadata" in err) { + const awsError = err as { name?: string; message?: string; $metadata?: object }; + if (awsError.name) { + errorMessage = `${awsError.name}: ${errorMessage}`; + } + } + + const sanitizedErrorMessage = sanitizeString({ + unsanitizedString: errorMessage, + tokens: sensitiveTokens + }); + throw new BadRequestError({ + message: `Failed to create temporary credentials: ${sanitizedErrorMessage}` + }); + } } - try { - const createUserRes = await client.send( - new CreateUserCommand({ - Path: awsPath, - PermissionsBoundary: permissionBoundaryPolicyArn || undefined, - Tags: awsTags, - UserName: username - }) - ); + if (providerInputs.credentialType === AwsIamCredentialType.IamUser) { + const client = await $getClient(providerInputs, metadata.projectId); - if (!createUserRes.User) throw new BadRequestError({ message: "Failed to create AWS IAM User" }); - if (userGroups) { - await Promise.all( - userGroups - .split(",") - .filter(Boolean) - .map((group) => - client.send(new AddUserToGroupCommand({ UserName: createUserRes?.User?.UserName, GroupName: group })) - ) - ); + const username = generateUsername(usernameTemplate, identity); + const { policyArns, userGroups, policyDocument, awsPath, permissionBoundaryPolicyArn } = providerInputs; + const awsTags = [{ Key: "createdBy", Value: "infisical-dynamic-secret" }]; + + if (providerInputs.tags && Array.isArray(providerInputs.tags)) { + const additionalTags = providerInputs.tags.map((tag) => ({ + Key: tag.key, + Value: tag.value + })); + awsTags.push(...additionalTags); } - if (policyArns) { - await Promise.all( - policyArns - .split(",") - .filter(Boolean) - .map((policyArn) => - client.send( - new AttachUserPolicyCommand({ UserName: createUserRes?.User?.UserName, PolicyArn: policyArn }) - ) - ) - ); - } - if (policyDocument) { - await client.send( - new PutUserPolicyCommand({ - UserName: createUserRes.User.UserName, - PolicyName: `infisical-dynamic-policy-${alphaNumericNanoId(4)}`, - PolicyDocument: policyDocument + + try { + const createUserRes = await client.send( + new CreateUserCommand({ + Path: awsPath, + PermissionsBoundary: permissionBoundaryPolicyArn || undefined, + Tags: awsTags, + UserName: username }) ); - } - const createAccessKeyRes = await client.send( - new CreateAccessKeyCommand({ - UserName: createUserRes.User.UserName - }) - ); - if (!createAccessKeyRes.AccessKey) - throw new BadRequestError({ message: "Failed to create AWS IAM User access key" }); - - return { - entityId: username, - data: { - ACCESS_KEY: createAccessKeyRes.AccessKey.AccessKeyId, - SECRET_ACCESS_KEY: createAccessKeyRes.AccessKey.SecretAccessKey, - USERNAME: username + if (!createUserRes.User) throw new BadRequestError({ message: "Failed to create AWS IAM User" }); + if (userGroups) { + await Promise.all( + userGroups + .split(",") + .filter(Boolean) + .map((group) => + client.send(new AddUserToGroupCommand({ UserName: createUserRes?.User?.UserName, GroupName: group })) + ) + ); } - }; - } catch (err) { - const sensitiveTokens = [username]; - if (providerInputs.method === AwsIamAuthType.AccessKey) { - sensitiveTokens.push(providerInputs.accessKey, providerInputs.secretAccessKey); + if (policyArns) { + await Promise.all( + policyArns + .split(",") + .filter(Boolean) + .map((policyArn) => + client.send( + new AttachUserPolicyCommand({ UserName: createUserRes?.User?.UserName, PolicyArn: policyArn }) + ) + ) + ); + } + if (policyDocument) { + await client.send( + new PutUserPolicyCommand({ + UserName: createUserRes.User.UserName, + PolicyName: `infisical-dynamic-policy-${alphaNumericNanoId(4)}`, + PolicyDocument: policyDocument + }) + ); + } + + const createAccessKeyRes = await client.send( + new CreateAccessKeyCommand({ + UserName: createUserRes.User.UserName + }) + ); + if (!createAccessKeyRes.AccessKey) + throw new BadRequestError({ message: "Failed to create AWS IAM User access key" }); + + return { + entityId: username, + data: { + ACCESS_KEY: createAccessKeyRes.AccessKey.AccessKeyId, + SECRET_ACCESS_KEY: createAccessKeyRes.AccessKey.SecretAccessKey, + USERNAME: username + } + }; + } catch (err) { + const sensitiveTokens = [username]; + if (providerInputs.method === AwsIamAuthType.AccessKey) { + sensitiveTokens.push(providerInputs.accessKey, providerInputs.secretAccessKey); + } + if (providerInputs.method === AwsIamAuthType.AssumeRole) { + sensitiveTokens.push(providerInputs.roleArn); + } + const sanitizedErrorMessage = sanitizeString({ + unsanitizedString: (err as Error)?.message, + tokens: sensitiveTokens + }); + throw new BadRequestError({ + message: `Failed to create lease from provider: ${sanitizedErrorMessage}` + }); } - if (providerInputs.method === AwsIamAuthType.AssumeRole) { - sensitiveTokens.push(providerInputs.roleArn); - } - const sanitizedErrorMessage = sanitizeString({ - unsanitizedString: (err as Error)?.message, - tokens: sensitiveTokens - }); - throw new BadRequestError({ - message: `Failed to create lease from provider: ${sanitizedErrorMessage}` - }); } + + throw new BadRequestError({ message: "Invalid credential type specified" }); }; const revoke = async (inputs: unknown, entityId: string, metadata: { projectId: string }) => { const providerInputs = await validateProviderInputs(inputs); + + if (providerInputs.credentialType === AwsIamCredentialType.TemporaryCredentials) { + return { entityId }; + } + const client = await $getClient(providerInputs, metadata.projectId); const username = entityId; diff --git a/backend/src/ee/services/dynamic-secret/providers/models.ts b/backend/src/ee/services/dynamic-secret/providers/models.ts index f076bf883..3586fa0d9 100644 --- a/backend/src/ee/services/dynamic-secret/providers/models.ts +++ b/backend/src/ee/services/dynamic-secret/providers/models.ts @@ -32,6 +32,11 @@ export enum AwsIamAuthType { IRSA = "irsa" } +export enum AwsIamCredentialType { + IamUser = "iam-user", + TemporaryCredentials = "temporary-credentials" +} + export enum ElasticSearchAuthTypes { User = "user", ApiKey = "api-key" @@ -203,6 +208,7 @@ export const DynamicSecretAwsIamSchema = z.preprocess( z.discriminatedUnion("method", [ z.object({ method: z.literal(AwsIamAuthType.AccessKey), + credentialType: z.nativeEnum(AwsIamCredentialType).default(AwsIamCredentialType.IamUser), accessKey: z.string().trim().min(1), secretAccessKey: z.string().trim().min(1), region: z.string().trim().min(1), @@ -215,6 +221,7 @@ export const DynamicSecretAwsIamSchema = z.preprocess( }), z.object({ method: z.literal(AwsIamAuthType.AssumeRole), + credentialType: z.nativeEnum(AwsIamCredentialType).default(AwsIamCredentialType.IamUser), roleArn: z.string().trim().min(1, "Role ARN required"), region: z.string().trim().min(1), awsPath: z.string().trim().optional(), @@ -226,6 +233,7 @@ export const DynamicSecretAwsIamSchema = z.preprocess( }), z.object({ method: z.literal(AwsIamAuthType.IRSA), + credentialType: z.nativeEnum(AwsIamCredentialType).default(AwsIamCredentialType.IamUser), region: z.string().trim().min(1), awsPath: z.string().trim().optional(), permissionBoundaryPolicyArn: z.string().trim().optional(), diff --git a/backend/src/ee/services/gateway-v2/gateway-v2-service.ts b/backend/src/ee/services/gateway-v2/gateway-v2-service.ts index 317e5da6d..e8ccc8a5e 100644 --- a/backend/src/ee/services/gateway-v2/gateway-v2-service.ts +++ b/backend/src/ee/services/gateway-v2/gateway-v2-service.ts @@ -395,7 +395,8 @@ export const gatewayV2ServiceFactory = ({ relayId: gateway.relayId, orgId: gateway.orgId, orgName: gateway.orgName, - gatewayId + gatewayId, + gatewayName: gateway.name }); return { @@ -508,7 +509,8 @@ export const gatewayV2ServiceFactory = ({ const relayCredentials = await relayService.getCredentialsForGateway({ relayName, orgId, - gatewayId: gateway.id + gatewayId: gateway.id, + gatewayName: gateway.name }); return { diff --git a/backend/src/ee/services/license/license-service.ts b/backend/src/ee/services/license/license-service.ts index a5353b7e5..0fdd07396 100644 --- a/backend/src/ee/services/license/license-service.ts +++ b/backend/src/ee/services/license/license-service.ts @@ -160,7 +160,10 @@ export const licenseServiceFactory = ({ } if (isValidOfflineLicense) { - onPremFeatures = contents.license.features; + onPremFeatures = { + ...contents.license.features, + slug: "enterprise" + }; instanceType = InstanceType.EnterpriseOnPremOffline; logger.info(`Instance type: ${InstanceType.EnterpriseOnPremOffline}`); isValidLicense = true; diff --git a/backend/src/ee/services/license/license-types.ts b/backend/src/ee/services/license/license-types.ts index 2ccd3ac8f..cf86d9ac1 100644 --- a/backend/src/ee/services/license/license-types.ts +++ b/backend/src/ee/services/license/license-types.ts @@ -24,7 +24,7 @@ export type TOfflineLicense = { export type TFeatureSet = { _id: null; - slug: null; + slug: string | null; tier: -1; workspaceLimit: null; workspacesUsed: number; diff --git a/backend/src/ee/services/permission/default-roles.ts b/backend/src/ee/services/permission/default-roles.ts index 9329c3c7f..953d0195e 100644 --- a/backend/src/ee/services/permission/default-roles.ts +++ b/backend/src/ee/services/permission/default-roles.ts @@ -2,6 +2,7 @@ import { AbilityBuilder, createMongoAbility, MongoAbility } from "@casl/ability" import { ProjectPermissionActions, + ProjectPermissionAppConnectionActions, ProjectPermissionAuditLogsActions, ProjectPermissionCertificateActions, ProjectPermissionCmekActions, @@ -264,6 +265,17 @@ const buildAdminPermissionRules = () => { ProjectPermissionSub.SecretEvents ); + can( + [ + ProjectPermissionAppConnectionActions.Create, + ProjectPermissionAppConnectionActions.Edit, + ProjectPermissionAppConnectionActions.Delete, + ProjectPermissionAppConnectionActions.Read, + ProjectPermissionAppConnectionActions.Connect + ], + ProjectPermissionSub.AppConnections + ); + return rules; }; @@ -477,6 +489,8 @@ const buildMemberPermissionRules = () => { ProjectPermissionSub.SecretEvents ); + can(ProjectPermissionAppConnectionActions.Connect, ProjectPermissionSub.AppConnections); + return rules; }; diff --git a/backend/src/ee/services/permission/org-permission.ts b/backend/src/ee/services/permission/org-permission.ts index d4155d02c..0548911e8 100644 --- a/backend/src/ee/services/permission/org-permission.ts +++ b/backend/src/ee/services/permission/org-permission.ts @@ -58,6 +58,13 @@ export enum OrgPermissionGatewayActions { AttachGateways = "attach-gateways" } +export enum OrgPermissionRelayActions { + CreateRelays = "create-relays", + ListRelays = "list-relays", + EditRelays = "edit-relays", + DeleteRelays = "delete-relays" +} + export enum OrgPermissionIdentityActions { Read = "read", Create = "create", @@ -87,6 +94,7 @@ export enum OrgPermissionBillingActions { export enum OrgPermissionSubjects { Workspace = "workspace", + Project = "project", Role = "role", Member = "member", Settings = "settings", @@ -108,6 +116,7 @@ export enum OrgPermissionSubjects { AppConnections = "app-connections", Kmip = "kmip", Gateway = "gateway", + Relay = "relay", SecretShare = "secret-share" } @@ -117,6 +126,7 @@ export type AppConnectionSubjectFields = { export type OrgPermissionSet = | [OrgPermissionActions.Create, OrgPermissionSubjects.Workspace] + | [OrgPermissionActions.Create, OrgPermissionSubjects.Project] | [OrgPermissionActions, OrgPermissionSubjects.Role] | [OrgPermissionActions, OrgPermissionSubjects.Member] | [OrgPermissionActions, OrgPermissionSubjects.Settings] @@ -134,6 +144,7 @@ export type OrgPermissionSet = | [OrgPermissionAuditLogsActions, OrgPermissionSubjects.AuditLogs] | [OrgPermissionActions, OrgPermissionSubjects.ProjectTemplates] | [OrgPermissionGatewayActions, OrgPermissionSubjects.Gateway] + | [OrgPermissionRelayActions, OrgPermissionSubjects.Relay] | [ OrgPermissionAppConnectionActions, ( @@ -166,6 +177,10 @@ export const OrgPermissionSchema = z.discriminatedUnion("subject", [ subject: z.literal(OrgPermissionSubjects.Workspace).describe("The entity this permission pertains to."), action: CASL_ACTION_SCHEMA_ENUM([OrgPermissionActions.Create]).describe("Describe what action an entity can take.") }), + z.object({ + subject: z.literal(OrgPermissionSubjects.Project).describe("The entity this permission pertains to."), + action: CASL_ACTION_SCHEMA_ENUM([OrgPermissionActions.Create]).describe("Describe what action an entity can take.") + }), z.object({ subject: z.literal(OrgPermissionSubjects.Role).describe("The entity this permission pertains to."), action: CASL_ACTION_SCHEMA_NATIVE_ENUM(OrgPermissionActions).describe("Describe what action an entity can take.") @@ -273,6 +288,12 @@ export const OrgPermissionSchema = z.discriminatedUnion("subject", [ action: CASL_ACTION_SCHEMA_NATIVE_ENUM(OrgPermissionGatewayActions).describe( "Describe what action an entity can take." ) + }), + z.object({ + subject: z.literal(OrgPermissionSubjects.Relay).describe("The entity this permission pertains to."), + action: CASL_ACTION_SCHEMA_NATIVE_ENUM(OrgPermissionRelayActions).describe( + "Describe what action an entity can take." + ) }) ]); @@ -280,6 +301,7 @@ const buildAdminPermission = () => { const { can, rules } = new AbilityBuilder>(createMongoAbility); // ws permissions can(OrgPermissionActions.Create, OrgPermissionSubjects.Workspace); + can(OrgPermissionActions.Create, OrgPermissionSubjects.Project); // role permission can(OrgPermissionActions.Read, OrgPermissionSubjects.Role); can(OrgPermissionActions.Create, OrgPermissionSubjects.Role); @@ -376,6 +398,11 @@ const buildAdminPermission = () => { can(OrgPermissionGatewayActions.DeleteGateways, OrgPermissionSubjects.Gateway); can(OrgPermissionGatewayActions.AttachGateways, OrgPermissionSubjects.Gateway); + can(OrgPermissionRelayActions.ListRelays, OrgPermissionSubjects.Relay); + can(OrgPermissionRelayActions.CreateRelays, OrgPermissionSubjects.Relay); + can(OrgPermissionRelayActions.EditRelays, OrgPermissionSubjects.Relay); + can(OrgPermissionRelayActions.DeleteRelays, OrgPermissionSubjects.Relay); + can(OrgPermissionAdminConsoleAction.AccessAllProjects, OrgPermissionSubjects.AdminConsole); can(OrgPermissionKmipActions.Setup, OrgPermissionSubjects.Kmip); @@ -413,6 +440,7 @@ const buildMemberPermission = () => { const { can, rules } = new AbilityBuilder>(createMongoAbility); can(OrgPermissionActions.Create, OrgPermissionSubjects.Workspace); + can(OrgPermissionActions.Create, OrgPermissionSubjects.Project); can(OrgPermissionActions.Read, OrgPermissionSubjects.Member); can(OrgPermissionGroupActions.Read, OrgPermissionSubjects.Groups); can(OrgPermissionActions.Read, OrgPermissionSubjects.Role); @@ -437,6 +465,10 @@ const buildMemberPermission = () => { can(OrgPermissionGatewayActions.CreateGateways, OrgPermissionSubjects.Gateway); can(OrgPermissionGatewayActions.AttachGateways, OrgPermissionSubjects.Gateway); + can(OrgPermissionRelayActions.ListRelays, OrgPermissionSubjects.Relay); + can(OrgPermissionRelayActions.CreateRelays, OrgPermissionSubjects.Relay); + can(OrgPermissionRelayActions.EditRelays, OrgPermissionSubjects.Relay); + can(OrgPermissionMachineIdentityAuthTemplateActions.ListTemplates, OrgPermissionSubjects.MachineIdentityAuthTemplate); can( OrgPermissionMachineIdentityAuthTemplateActions.UnlinkTemplates, diff --git a/backend/src/ee/services/permission/project-permission.ts b/backend/src/ee/services/permission/project-permission.ts index 20b4344d3..099461f7f 100644 --- a/backend/src/ee/services/permission/project-permission.ts +++ b/backend/src/ee/services/permission/project-permission.ts @@ -147,6 +147,14 @@ export enum ProjectPermissionSecretScanningDataSourceActions { ReadResources = "read-data-source-resources" } +export enum ProjectPermissionAppConnectionActions { + Read = "read-app-connections", + Create = "create-app-connections", + Edit = "edit-app-connections", + Delete = "delete-app-connections", + Connect = "connect-app-connections" +} + export enum ProjectPermissionSecretScanningFindingActions { Read = "read-findings", Update = "update-findings" @@ -208,7 +216,8 @@ export enum ProjectPermissionSub { SecretScanningDataSources = "secret-scanning-data-sources", SecretScanningFindings = "secret-scanning-findings", SecretScanningConfigs = "secret-scanning-configs", - SecretEvents = "secret-events" + SecretEvents = "secret-events", + AppConnections = "app-connections" } export type SecretSubjectFields = { @@ -272,6 +281,10 @@ export type PkiSubscriberSubjectFields = { // (dangtony98): consider adding [commonName] as a subject field in the future }; +export type AppConnectionSubjectFields = { + connectionId: string; +}; + export type ProjectPermissionSet = | [ ProjectPermissionSecretActions, @@ -365,6 +378,13 @@ export type ProjectPermissionSet = | [ ProjectPermissionSecretEventActions, ProjectPermissionSub.SecretEvents | (ForcedSubject & SecretEventSubjectFields) + ] + | [ + ProjectPermissionAppConnectionActions, + ( + | ProjectPermissionSub.AppConnections + | (ForcedSubject & AppConnectionSubjectFields) + ) ]; const SECRET_PATH_MISSING_SLASH_ERR_MSG = "Invalid Secret Path; it must start with a '/'"; @@ -580,6 +600,21 @@ const PkiTemplateConditionSchema = z }) .partial(); +const AppConnectionConditionSchema = z + .object({ + connectionId: z.union([ + z.string(), + z + .object({ + [PermissionConditionOperators.$EQ]: PermissionConditionSchema[PermissionConditionOperators.$EQ], + [PermissionConditionOperators.$NEQ]: PermissionConditionSchema[PermissionConditionOperators.$NEQ], + [PermissionConditionOperators.$IN]: PermissionConditionSchema[PermissionConditionOperators.$IN] + }) + .partial() + ]) + }) + .partial(); + const GeneralPermissionSchema = [ z.object({ subject: z.literal(ProjectPermissionSub.SecretApproval).describe("The entity this permission pertains to."), @@ -760,6 +795,16 @@ const GeneralPermissionSchema = [ action: CASL_ACTION_SCHEMA_NATIVE_ENUM(ProjectPermissionSecretScanningConfigActions).describe( "Describe what action an entity can take." ) + }), + z.object({ + subject: z.literal(ProjectPermissionSub.AppConnections).describe("The entity this permission pertains to."), + inverted: z.boolean().optional().describe("Whether rule allows or forbids."), + action: CASL_ACTION_SCHEMA_NATIVE_ENUM(ProjectPermissionAppConnectionActions).describe( + "Describe what action an entity can take." + ), + conditions: AppConnectionConditionSchema.describe( + "When specified, only matching conditions will be allowed to access given resource." + ).optional() }) ]; diff --git a/backend/src/ee/services/pit/pit-service.ts b/backend/src/ee/services/pit/pit-service.ts index ef7f9b5a3..d561064a6 100644 --- a/backend/src/ee/services/pit/pit-service.ts +++ b/backend/src/ee/services/pit/pit-service.ts @@ -754,7 +754,8 @@ export const pitServiceFactory = ({ secrets: newSecrets.map((secret) => ({ secretId: secret.id, secretKey: secret.secretKey, - secretVersion: secret.version + secretVersion: secret.version, + secretTags: secret.tags?.map((tag) => tag.name) })) } }); @@ -781,7 +782,8 @@ export const pitServiceFactory = ({ secrets: updatedSecrets.map((secret) => ({ secretId: secret.id, secretKey: secret.secretKey, - secretVersion: secret.version + secretVersion: secret.version, + secretTags: secret.tags?.map((tag) => tag.name) })) } }); diff --git a/backend/src/ee/services/relay/relay-constants.ts b/backend/src/ee/services/relay/relay-constants.ts new file mode 100644 index 000000000..d7f00f036 --- /dev/null +++ b/backend/src/ee/services/relay/relay-constants.ts @@ -0,0 +1 @@ +export const RELAY_CONNECTING_GATEWAY_INFO = "1.3.6.1.4.1.12345.100.3"; diff --git a/backend/src/ee/services/relay/relay-service.ts b/backend/src/ee/services/relay/relay-service.ts index 92401faaf..2fef71259 100644 --- a/backend/src/ee/services/relay/relay-service.ts +++ b/backend/src/ee/services/relay/relay-service.ts @@ -1,9 +1,13 @@ +import { isIP } from "node:net"; + +import { ForbiddenError } from "@casl/ability"; import * as x509 from "@peculiar/x509"; import { TRelays } from "@app/db/schemas"; import { PgSqlLock } from "@app/keystore/keystore"; import { crypto } from "@app/lib/crypto"; import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { ActorAuthMethod, ActorType } from "@app/services/auth/auth-type"; import { constructPemChainFromCerts, prependCertToPemChain } from "@app/services/certificate/certificate-fns"; import { CertExtendedKeyUsage, CertKeyAlgorithm, CertKeyUsage } from "@app/services/certificate/certificate-types"; import { @@ -14,11 +18,15 @@ import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; import { verifyHostInputValidity } from "../dynamic-secret/dynamic-secret-fns"; +import { TLicenseServiceFactory } from "../license/license-service"; +import { OrgPermissionRelayActions, OrgPermissionSubjects } from "../permission/org-permission"; +import { TPermissionServiceFactory } from "../permission/permission-service-types"; import { createSshCert, createSshKeyPair } from "../ssh/ssh-certificate-authority-fns"; import { SshCertType } from "../ssh/ssh-certificate-authority-types"; import { SshCertKeyAlgorithm } from "../ssh-certificate/ssh-certificate-types"; import { TInstanceRelayConfigDALFactory } from "./instance-relay-config-dal"; import { TOrgRelayConfigDALFactory } from "./org-relay-config-dal"; +import { RELAY_CONNECTING_GATEWAY_INFO } from "./relay-constants"; import { TRelayDALFactory } from "./relay-dal"; export type TRelayServiceFactory = ReturnType; @@ -29,12 +37,16 @@ export const relayServiceFactory = ({ instanceRelayConfigDAL, orgRelayConfigDAL, relayDAL, - kmsService + kmsService, + licenseService, + permissionService }: { instanceRelayConfigDAL: TInstanceRelayConfigDALFactory; orgRelayConfigDAL: TOrgRelayConfigDALFactory; relayDAL: TRelayDALFactory; kmsService: TKmsServiceFactory; + licenseService: TLicenseServiceFactory; + permissionService: TPermissionServiceFactory; }) => { const $getInstanceCAs = async () => { const instanceConfig = await instanceRelayConfigDAL.transaction(async (tx) => { @@ -639,8 +651,9 @@ export const relayServiceFactory = ({ true ), new x509.ExtendedKeyUsageExtension([x509.ExtendedKeyUsage[CertExtendedKeyUsage.SERVER_AUTH]], true), + // san - new x509.SubjectAlternativeNameExtension([{ type: "ip", value: host }], false) + new x509.SubjectAlternativeNameExtension([{ type: isIP(host) ? "ip" : "dns", value: host }], false) ]; const relayServerSerialNumber = createSerialNumber(); @@ -689,6 +702,7 @@ export const relayServiceFactory = ({ const $generateRelayClientCredentials = async ({ gatewayId, + gatewayName, orgId, orgName, relayPkiClientCaCertificate, @@ -697,6 +711,7 @@ export const relayServiceFactory = ({ relayPkiServerCaCertificateChain }: { gatewayId: string; + gatewayName: string; orgId: string; orgName: string; relayPkiClientCaCertificate: Buffer; @@ -727,6 +742,16 @@ export const relayServiceFactory = ({ const clientCertPrivateKey = crypto.nativeCrypto.KeyObject.from(clientKeys.privateKey); const clientCertSerialNumber = createSerialNumber(); + const connectingGatewayInfoExtension = new x509.Extension( + RELAY_CONNECTING_GATEWAY_INFO, + false, + Buffer.from( + JSON.stringify({ + name: gatewayName + }) + ) + ); + // Build standard extensions const extensions: x509.Extension[] = [ new x509.BasicConstraintsExtension(false), @@ -740,7 +765,8 @@ export const relayServiceFactory = ({ x509.KeyUsageFlags[CertKeyUsage.KEY_AGREEMENT], true ), - new x509.ExtendedKeyUsageExtension([x509.ExtendedKeyUsage[CertExtendedKeyUsage.CLIENT_AUTH]], true) + new x509.ExtendedKeyUsageExtension([x509.ExtendedKeyUsage[CertExtendedKeyUsage.CLIENT_AUTH]], true), + connectingGatewayInfoExtension ]; const clientCert = await x509.X509CertificateGenerator.create({ @@ -768,11 +794,13 @@ export const relayServiceFactory = ({ const getCredentialsForGateway = async ({ relayName, orgId, - gatewayId + gatewayId, + gatewayName }: { relayName: string; orgId: string; gatewayId: string; + gatewayName: string; }) => { let relay: TRelays | null = await relayDAL.findOne({ orgId, @@ -819,10 +847,10 @@ export const relayServiceFactory = ({ const relayClientSshCert = await createSshCert({ caPrivateKey: orgCAs.relaySshClientCaPrivateKey.toString("utf8"), clientPublicKey: relayClientSshPublicKey, - keyId: `relay-client-${relay.id}`, - principals: [gatewayId], + keyId: `client-${relayName}`, + principals: [gatewayId, gatewayName], certType: SshCertType.USER, - requestedTtl: "30d" + requestedTtl: "1d" }); return { @@ -837,12 +865,14 @@ export const relayServiceFactory = ({ relayId, orgId, orgName, - gatewayId + gatewayId, + gatewayName }: { relayId: string; orgId: string; orgName: string; gatewayId: string; + gatewayName: string; }) => { const relay = await relayDAL.findOne({ id: relayId @@ -860,6 +890,7 @@ export const relayServiceFactory = ({ const instanceCAs = await $getInstanceCAs(); const relayCertificateCredentials = await $generateRelayClientCredentials({ gatewayId, + gatewayName, orgId, orgName, relayPkiClientCaCertificate: instanceCAs.instanceRelayPkiClientCaCertificate, @@ -877,6 +908,7 @@ export const relayServiceFactory = ({ const orgCAs = await $getOrgCAs(orgId); const relayCertificateCredentials = await $generateRelayClientCredentials({ gatewayId, + gatewayName, orgId, orgName, relayPkiClientCaCertificate: orgCAs.relayPkiClientCaCertificate, @@ -895,11 +927,13 @@ export const relayServiceFactory = ({ host, name, identityId, + actorAuthMethod, orgId }: { host: string; name: string; identityId?: string; + actorAuthMethod?: ActorAuthMethod; orgId?: string; }) => { let relay: TRelays; @@ -908,6 +942,27 @@ export const relayServiceFactory = ({ await verifyHostInputValidity(host); if (isOrgRelay) { + const orgLicensePlan = await licenseService.getPlan(orgId); + if (!orgLicensePlan.gateway) { + throw new BadRequestError({ + message: + "Relay registration failed due to organization plan restrictions. Please upgrade your instance to Infisical's Enterprise plan." + }); + } + + const { permission } = await permissionService.getOrgPermission( + ActorType.IDENTITY, + identityId, + orgId, + actorAuthMethod!, + orgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + OrgPermissionRelayActions.CreateRelays, + OrgPermissionSubjects.Relay + ); + relay = await relayDAL.transaction(async (tx) => { const existingRelay = await relayDAL.findOne( { @@ -995,9 +1050,75 @@ export const relayServiceFactory = ({ }); }; + const getRelays = async ({ + actorId, + actor, + actorAuthMethod, + actorOrgId + }: { + actorId: string; + actor: ActorType; + actorAuthMethod: ActorAuthMethod; + actorOrgId: string; + }) => { + const { permission } = await permissionService.getOrgPermission( + actor, + actorId, + actorOrgId, + actorAuthMethod, + actorOrgId + ); + + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionRelayActions.ListRelays, OrgPermissionSubjects.Relay); + + const instanceRelays = await relayDAL.find({ + orgId: null + }); + + const orgRelays = await relayDAL.find({ + orgId: actorOrgId + }); + + return [...instanceRelays, ...orgRelays]; + }; + + const deleteRelay = async ({ + id, + actorId, + actor, + actorAuthMethod, + actorOrgId + }: { + id: string; + actorId: string; + actor: ActorType; + actorAuthMethod: ActorAuthMethod; + actorOrgId: string; + }) => { + const { permission } = await permissionService.getOrgPermission( + actor, + actorId, + actorOrgId, + actorAuthMethod, + actorOrgId + ); + + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionRelayActions.DeleteRelays, OrgPermissionSubjects.Relay); + + const relay = await relayDAL.findById(id); + if (!relay || relay.orgId !== actorOrgId || relay.orgId === null) { + throw new NotFoundError({ message: "Relay not found" }); + } + + const deletedRelay = await relayDAL.deleteById(id); + return deletedRelay; + }; + return { registerRelay, getCredentialsForGateway, - getCredentialsForClient + getCredentialsForClient, + getRelays, + deleteRelay }; }; diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-fns.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-fns.ts index dfe425b8e..d96fb2e53 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-fns.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-fns.ts @@ -1,5 +1,7 @@ import { TSecretApprovalRequests } from "@app/db/schemas"; import { getConfig } from "@app/lib/config/env"; +import { TNotificationServiceFactory } from "@app/services/notification/notification-service"; +import { NotificationType } from "@app/services/notification/notification-types"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; @@ -11,6 +13,7 @@ type TSendApprovalEmails = { smtpService: Pick; projectId: string; secretApprovalRequest: TSecretApprovalRequests; + notificationService: Pick; }; export const sendApprovalEmailsFn = async ({ @@ -18,7 +21,8 @@ export const sendApprovalEmailsFn = async ({ projectDAL, smtpService, projectId, - secretApprovalRequest + secretApprovalRequest, + notificationService }: TSendApprovalEmails) => { const cfg = getConfig(); @@ -26,6 +30,17 @@ export const sendApprovalEmailsFn = async ({ const project = await projectDAL.findProjectWithOrg(projectId); + await notificationService.createUserNotifications( + policy.userApprovers.map((approver) => ({ + userId: approver.userId, + orgId: project.orgId, + type: NotificationType.SECRET_CHANGE_REQUEST, + title: "Secret Change Request", + body: `You have a new secret change request pending your review for the project **${project.name}** in the organization **${project.organization.name}**.`, + link: `/projects/secret-management/${project.id}/approval?requestId=${secretApprovalRequest.id}` + })) + ); + // now we need to go through each of the reviewers and print out all the commits that they need to approve for await (const reviewerUser of policy.userApprovers) { await smtpService.sendMail({ diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts index 17b7d8347..80fbf546f 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts @@ -28,6 +28,8 @@ import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { KmsDataKey } from "@app/services/kms/kms-types"; import { TMicrosoftTeamsServiceFactory } from "@app/services/microsoft-teams/microsoft-teams-service"; import { TProjectMicrosoftTeamsConfigDALFactory } from "@app/services/microsoft-teams/project-microsoft-teams-config-dal"; +import { TNotificationServiceFactory } from "@app/services/notification/notification-service"; +import { NotificationType } from "@app/services/notification/notification-types"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectBotServiceFactory } from "@app/services/project-bot/project-bot-service"; import { TProjectEnvDALFactory } from "@app/services/project-env/project-env-dal"; @@ -140,6 +142,7 @@ type TSecretApprovalRequestServiceFactoryDep = { projectMicrosoftTeamsConfigDAL: Pick; microsoftTeamsService: Pick; folderCommitService: Pick; + notificationService: Pick; }; export type TSecretApprovalRequestServiceFactory = ReturnType; @@ -172,7 +175,8 @@ export const secretApprovalRequestServiceFactory = ({ resourceMetadataDAL, projectMicrosoftTeamsConfigDAL, microsoftTeamsService, - folderCommitService + folderCommitService, + notificationService }: TSecretApprovalRequestServiceFactoryDep) => { const requestCount = async ({ projectId, @@ -1035,6 +1039,17 @@ export const secretApprovalRequestServiceFactory = ({ } }); + await notificationService.createUserNotifications( + approverUsers.map((approver) => ({ + userId: approver.id, + orgId: project.orgId, + type: NotificationType.SECRET_CHANGE_POLICY_BYPASSED, + title: "Secret Change Policy Bypassed", + body: `**${requestedByUser.firstName} ${requestedByUser.lastName}** (${requestedByUser.email}) has merged a secret to **${policy.secretPath}** in the **${env.name}** environment for project **${project.name}** without obtaining the required approval.`, + link: `/projects/secret-management/${project.id}/approval` + })) + ); + await smtpService.sendMail({ recipients: approverUsers.filter((approver) => approver.email).map((approver) => approver.email!), subjectLine: "Infisical Secret Change Policy Bypassed", @@ -1069,7 +1084,9 @@ export const secretApprovalRequestServiceFactory = ({ // @ts-expect-error not present on v1 secrets secretKey: secret.key as string, // @ts-expect-error not present on v1 secrets - secretMetadata: secret.secretMetadata as ResourceMetadataDTO + secretMetadata: secret.secretMetadata as ResourceMetadataDTO, + // @ts-expect-error not present on v1 secrets + secretTags: (secret.tags as { name: string }[])?.map((tag) => tag.name) })) } }); @@ -1085,7 +1102,9 @@ export const secretApprovalRequestServiceFactory = ({ // @ts-expect-error not present on v1 secrets secretKey: secret.key as string, // @ts-expect-error not present on v1 secrets - secretMetadata: secret.secretMetadata as ResourceMetadataDTO + secretMetadata: secret.secretMetadata as ResourceMetadataDTO, + // @ts-expect-error not present on v1 secrets + secretTags: (secret.tags as { name: string }[])?.map((tag) => tag.name) } }); } @@ -1104,7 +1123,9 @@ export const secretApprovalRequestServiceFactory = ({ // @ts-expect-error not present on v1 secrets secretKey: secret.key as string, // @ts-expect-error not present on v1 secrets - secretMetadata: secret.secretMetadata as ResourceMetadataDTO + secretMetadata: secret.secretMetadata as ResourceMetadataDTO, + // @ts-expect-error not present on v1 secrets + secretTags: (secret.tags as { name: string }[])?.map((tag) => tag.name) })) } }); @@ -1120,7 +1141,9 @@ export const secretApprovalRequestServiceFactory = ({ // @ts-expect-error not present on v1 secrets secretKey: secret.key as string, // @ts-expect-error not present on v1 secrets - secretMetadata: secret.secretMetadata as ResourceMetadataDTO + secretMetadata: secret.secretMetadata as ResourceMetadataDTO, + // @ts-expect-error not present on v1 secrets + secretTags: (secret.tags as { name: string }[])?.map((tag) => tag.name) } }); } @@ -1446,7 +1469,8 @@ export const secretApprovalRequestServiceFactory = ({ secretApprovalPolicyDAL, secretApprovalRequest, smtpService, - projectId + projectId, + notificationService }); return secretApprovalRequest; @@ -1813,7 +1837,8 @@ export const secretApprovalRequestServiceFactory = ({ secretApprovalPolicyDAL, secretApprovalRequest, smtpService, - projectId + projectId, + notificationService }); return secretApprovalRequest; }; diff --git a/backend/src/ee/services/secret-rotation-v2/ldap-password/ldap-password-rotation-fns.ts b/backend/src/ee/services/secret-rotation-v2/ldap-password/ldap-password-rotation-fns.ts index 07cf97a7e..9b1fd14a0 100644 --- a/backend/src/ee/services/secret-rotation-v2/ldap-password/ldap-password-rotation-fns.ts +++ b/backend/src/ee/services/secret-rotation-v2/ldap-password/ldap-password-rotation-fns.ts @@ -175,7 +175,8 @@ export const ldapPasswordRotationFactory: TRotationFactory< const encryptedCredentials = await encryptAppConnectionCredentials({ credentials: updatedCredentials, orgId, - kmsService + kmsService, + projectId: connection.projectId }); await appConnectionDAL.updateById(connection.id, { encryptedCredentials }); diff --git a/backend/src/ee/services/secret-rotation-v2/secret-rotation-v2-dal.ts b/backend/src/ee/services/secret-rotation-v2/secret-rotation-v2-dal.ts index 787c07bae..cf236b56f 100644 --- a/backend/src/ee/services/secret-rotation-v2/secret-rotation-v2-dal.ts +++ b/backend/src/ee/services/secret-rotation-v2/secret-rotation-v2-dal.ts @@ -52,6 +52,7 @@ const baseSecretRotationV2Query = ({ db.ref("description").withSchema(TableName.AppConnection).as("connectionDescription"), db.ref("version").withSchema(TableName.AppConnection).as("connectionVersion"), db.ref("gatewayId").withSchema(TableName.AppConnection).as("connectionGatewayId"), + db.ref("projectId").withSchema(TableName.AppConnection).as("connectionProjectId"), db.ref("createdAt").withSchema(TableName.AppConnection).as("connectionCreatedAt"), db.ref("updatedAt").withSchema(TableName.AppConnection).as("connectionUpdatedAt"), db @@ -106,6 +107,7 @@ const expandSecretRotation = ; projectMembershipDAL: Pick; projectDAL: Pick; + notificationService: Pick; }; export const secretRotationV2QueueServiceFactory = async ({ @@ -36,7 +39,8 @@ export const secretRotationV2QueueServiceFactory = async ({ secretRotationV2Service, projectMembershipDAL, projectDAL, - smtpService + smtpService, + notificationService }: TSecretRotationV2QueueServiceFactoryDep) => { const appCfg = getConfig(); @@ -152,6 +156,19 @@ export const secretRotationV2QueueServiceFactory = async ({ const rotationType = SECRET_ROTATION_NAME_MAP[type as SecretRotation]; + const rotationPath = `/projects/secret-management/${projectId}/secrets/${environment.slug}`; + + await notificationService.createUserNotifications( + projectAdmins.map((admin) => ({ + userId: admin.userId, + orgId: project.orgId, + type: NotificationType.SECRET_ROTATION_FAILED, + title: "Secret Rotation Failed", + body: `Your **${rotationType}** rotation **${rotationName}** failed to rotate.`, + link: rotationPath + })) + ); + await smtpService.sendMail({ recipients: projectAdmins.map((member) => member.user.email!).filter(Boolean), template: SmtpTemplates.SecretRotationFailed, @@ -165,9 +182,7 @@ export const secretRotationV2QueueServiceFactory = async ({ secretPath: folder.path, environment: environment.name, projectName: project.name, - rotationUrl: encodeURI( - `${appCfg.SITE_URL}/projects/secret-management/${projectId}/secrets/${environment.slug}` - ) + rotationUrl: encodeURI(`${appCfg.SITE_URL}${rotationPath}`) } }); } catch (error) { diff --git a/backend/src/ee/services/secret-rotation-v2/secret-rotation-v2-service.ts b/backend/src/ee/services/secret-rotation-v2/secret-rotation-v2-service.ts index 97a0f5700..80bb7ebab 100644 --- a/backend/src/ee/services/secret-rotation-v2/secret-rotation-v2-service.ts +++ b/backend/src/ee/services/secret-rotation-v2/secret-rotation-v2-service.ts @@ -89,7 +89,7 @@ import { TSecretRotationV2DALFactory } from "./secret-rotation-v2-dal"; export type TSecretRotationV2ServiceFactoryDep = { secretRotationV2DAL: TSecretRotationV2DALFactory; - appConnectionService: Pick; + appConnectionService: Pick; permissionService: Pick; projectBotService: Pick; kmsService: Pick; @@ -459,7 +459,11 @@ export const secretRotationV2ServiceFactory = ({ const typeApp = SECRET_ROTATION_CONNECTION_MAP[payload.type]; // validates permission to connect and app is valid for rotation type - const connection = await appConnectionService.connectAppConnectionById(typeApp, payload.connectionId, actor); + const connection = await appConnectionService.validateAppConnectionUsageById( + typeApp, + { connectionId: payload.connectionId, projectId }, + actor + ); const rotationFactory = SECRET_ROTATION_FACTORY_MAP[payload.type]( { diff --git a/backend/src/ee/services/secret-rotation/secret-rotation-queue/secret-rotation-queue.ts b/backend/src/ee/services/secret-rotation/secret-rotation-queue/secret-rotation-queue.ts index 557e71e6c..eefe6b63a 100644 --- a/backend/src/ee/services/secret-rotation/secret-rotation-queue/secret-rotation-queue.ts +++ b/backend/src/ee/services/secret-rotation/secret-rotation-queue/secret-rotation-queue.ts @@ -431,7 +431,7 @@ export const secretRotationQueueFactory = ({ numberOfSecrets: numberOfSecretsRotated, environment: secretRotation.environment.slug, secretPath: secretRotation.secretPath, - workspaceId: secretRotation.projectId + projectId: secretRotation.projectId } }); diff --git a/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-dal.ts b/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-dal.ts index c6ca50c5e..405e60159 100644 --- a/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-dal.ts +++ b/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-dal.ts @@ -50,6 +50,7 @@ const baseSecretScanningDataSourceQuery = ({ db.ref("description").withSchema(TableName.AppConnection).as("connectionDescription"), db.ref("version").withSchema(TableName.AppConnection).as("connectionVersion"), db.ref("gatewayId").withSchema(TableName.AppConnection).as("connectionGatewayId"), + db.ref("projectId").withSchema(TableName.AppConnection).as("connectionProjectId"), db.ref("createdAt").withSchema(TableName.AppConnection).as("connectionCreatedAt"), db.ref("updatedAt").withSchema(TableName.AppConnection).as("connectionUpdatedAt"), db @@ -84,6 +85,7 @@ const expandSecretScanningDataSource = < connectionVersion, connectionIsPlatformManagedCredentials, connectionGatewayId, + connectionProjectId, ...el } = dataSource; @@ -103,7 +105,8 @@ const expandSecretScanningDataSource = < updatedAt: connectionUpdatedAt, version: connectionVersion, isPlatformManagedCredentials: connectionIsPlatformManagedCredentials, - gatewayId: connectionGatewayId + gatewayId: connectionGatewayId, + projectId: connectionProjectId } : undefined }; diff --git a/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-queue.ts b/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-queue.ts index 8621b039b..406c25e03 100644 --- a/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-queue.ts +++ b/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-queue.ts @@ -21,6 +21,8 @@ import { decryptAppConnection } from "@app/services/app-connection/app-connectio import { TAppConnection } from "@app/services/app-connection/app-connection-types"; import { ActorType } from "@app/services/auth/auth-type"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; +import { TNotificationServiceFactory } from "@app/services/notification/notification-service"; +import { NotificationType } from "@app/services/notification/notification-types"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { TProjectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; @@ -52,6 +54,7 @@ type TSecretRotationV2QueueServiceFactoryDep = { appConnectionDAL: Pick; auditLogService: Pick; keyStore: Pick; + notificationService: Pick; }; export type TSecretScanningV2QueueServiceFactory = Awaited>; @@ -65,7 +68,8 @@ export const secretScanningV2QueueServiceFactory = async ({ kmsService, auditLogService, keyStore, - appConnectionDAL + appConnectionDAL, + notificationService }: TSecretRotationV2QueueServiceFactoryDep) => { const queueDataSourceFullScan = async ( dataSource: TSecretScanningDataSourceWithConnection, @@ -592,16 +596,38 @@ export const secretScanningV2QueueServiceFactory = async ({ const timestamp = new Date().toISOString(); + const subjectLine = + payload.status === SecretScanningScanStatus.Completed + ? "Incident Alert: Secret(s) Leaked" + : `Secret Scanning Failed`; + + await notificationService.createUserNotifications( + recipients.map((member) => ({ + userId: member.userId, + orgId: project.orgId, + type: + payload.status === SecretScanningScanStatus.Completed + ? NotificationType.SECRET_SCANNING_SECRETS_DETECTED + : NotificationType.SECRET_SCANNING_SCAN_FAILED, + title: subjectLine, + body: + payload.status === SecretScanningScanStatus.Completed + ? `Uncovered **${payload.numberOfSecrets}** secret(s) ${payload.isDiffScan ? " from a recent commit to" : " in"} **${resourceName}**.` + : `Encountered an error while attempting to scan the resource **${resourceName}**: ${payload.errorMessage}`, + link: + payload.status === SecretScanningScanStatus.Completed + ? `/projects/secret-scanning/${projectId}/findings?search=scanId:${payload.scanId}` + : `/projects/secret-scanning/${projectId}/data-sources/${dataSource.type}/${dataSource.id}` + })) + ); + await smtpService.sendMail({ recipients: recipients.map((member) => member.user.email!).filter(Boolean), template: payload.status === SecretScanningScanStatus.Completed ? SmtpTemplates.SecretScanningV2SecretsDetected : SmtpTemplates.SecretScanningV2ScanFailed, - subjectLine: - payload.status === SecretScanningScanStatus.Completed - ? "Incident Alert: Secret(s) Leaked" - : `Secret Scanning Failed`, + subjectLine, substitutions: payload.status === SecretScanningScanStatus.Completed ? { diff --git a/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-service.ts b/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-service.ts index 6bef41e10..c48139e17 100644 --- a/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-service.ts +++ b/backend/src/ee/services/secret-scanning-v2/secret-scanning-v2-service.ts @@ -60,7 +60,7 @@ import { TSecretScanningV2QueueServiceFactory } from "./secret-scanning-v2-queue export type TSecretScanningV2ServiceFactoryDep = { secretScanningV2DAL: TSecretScanningV2DALFactory; - appConnectionService: Pick; + appConnectionService: Pick; appConnectionDAL: Pick; permissionService: Pick; licenseService: Pick; @@ -252,9 +252,9 @@ export const secretScanningV2ServiceFactory = ({ let connection: TAppConnection | null = null; if (payload.connectionId) { // validates permission to connect and app is valid for data source - connection = await appConnectionService.connectAppConnectionById( + connection = await appConnectionService.validateAppConnectionUsageById( SECRET_SCANNING_DATA_SOURCE_CONNECTION_MAP[payload.type], - payload.connectionId, + { connectionId: payload.connectionId, projectId: payload.projectId }, actor ); } @@ -373,9 +373,9 @@ export const secretScanningV2ServiceFactory = ({ let connection: TAppConnection | null = null; if (dataSource.connectionId) { // validates permission to connect and app is valid for data source - connection = await appConnectionService.connectAppConnectionById( + connection = await appConnectionService.validateAppConnectionUsageById( SECRET_SCANNING_DATA_SOURCE_CONNECTION_MAP[dataSource.type], - dataSource.connectionId, + { connectionId: dataSource.connectionId, projectId: dataSource.projectId }, actor ); } diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index d61694d8f..53a2ca993 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -242,7 +242,12 @@ export const LDAP_AUTH = { accessTokenTTL: "The lifetime for an access token in seconds.", accessTokenMaxTTL: "The maximum lifetime for an access token in seconds.", accessTokenNumUsesLimit: "The maximum number of times that an access token can be used.", - accessTokenTrustedIps: "The IPs or CIDR ranges that access tokens can be used from." + accessTokenTrustedIps: "The IPs or CIDR ranges that access tokens can be used from.", + lockoutEnabled: "Whether the lockout feature is enabled.", + lockoutThreshold: "The amount of times login must fail before locking the identity auth method.", + lockoutDurationSeconds: "How long an identity auth method lockout lasts.", + lockoutCounterResetSeconds: + "How long to wait from the most recent failed login until resetting the lockout counter." }, UPDATE: { identityId: "The ID of the identity to update the configuration for.", @@ -257,13 +262,21 @@ export const LDAP_AUTH = { accessTokenMaxTTL: "The new maximum lifetime for an access token in seconds.", accessTokenNumUsesLimit: "The new maximum number of times that an access token can be used.", accessTokenTrustedIps: "The new IPs or CIDR ranges that access tokens can be used from.", - templateId: "The ID of the identity auth template to update the configuration to." + templateId: "The ID of the identity auth template to update the configuration to.", + lockoutEnabled: "Whether the lockout feature is enabled.", + lockoutThreshold: "The amount of times login must fail before locking the identity auth method.", + lockoutDurationSeconds: "How long an identity auth method lockout lasts.", + lockoutCounterResetSeconds: + "How long to wait from the most recent failed login until resetting the lockout counter." }, RETRIEVE: { identityId: "The ID of the identity to retrieve the configuration for." }, REVOKE: { identityId: "The ID of the identity to revoke the configuration for." + }, + CLEAR_CLIENT_LOCKOUTS: { + identityId: "The ID of the identity to clear the client lockouts from." } } as const; @@ -711,13 +724,13 @@ export const PROJECTS = { template: "The name of the project template, if specified, to apply to this project." }, DELETE: { - workspaceId: "The ID of the project to delete." + projectId: "The ID of the project to delete." }, GET: { - workspaceId: "The ID of the project." + projectId: "The ID of the project." }, UPDATE: { - workspaceId: "The ID of the project to update.", + projectId: "The ID of the project to update.", name: "The new name of the project.", projectDescription: "An optional description label for the project.", autoCapitalization: "Disable or enable auto-capitalization for the project.", @@ -729,10 +742,10 @@ export const PROJECTS = { secretDetectionIgnoreValues: "The list of secret values to ignore for secret detection." }, GET_KEY: { - workspaceId: "The ID of the project to get the key from." + projectId: "The ID of the project to get the key from." }, GET_SNAPSHOTS: { - workspaceId: "The ID of the project to get snapshots from.", + projectId: "The ID of the project to get snapshots from.", environment: "The environment to get snapshots from.", path: "The secret path to get snapshots from.", offset: "The offset to start from. If you enter 10, it will start from the 10th snapshot.", @@ -759,10 +772,10 @@ export const PROJECTS = { projectId: "The ID of the project to list groups for." }, LIST_INTEGRATION: { - workspaceId: "The ID of the project to list integrations for." + projectId: "The ID of the project to list integrations for." }, LIST_INTEGRATION_AUTHORIZATION: { - workspaceId: "The ID of the project to list integration auths for." + projectId: "The ID of the project to list integration auths for." }, LIST_SSH_CAS: { projectId: "The ID of the project to list SSH CAs for." @@ -815,15 +828,15 @@ export const PROJECT_USERS = { usernames: "A list of usernames to remove from the project." }, GET_USER_MEMBERSHIPS: { - workspaceId: "The ID of the project to get memberships from." + projectId: "The ID of the project to get memberships from." }, GET_USER_MEMBERSHIP: { - workspaceId: "The ID of the project to get memberships from.", + projectId: "The ID of the project to get memberships from.", membershipId: "The ID of the user's project membership.", username: "The username to get project membership of. Email is the default username." }, UPDATE_USER_MEMBERSHIP: { - workspaceId: "The ID of the project to update the membership for.", + projectId: "The ID of the project to update the membership for.", membershipId: "The ID of the membership to update.", roles: "A list of roles to update the membership to." } @@ -877,31 +890,31 @@ export const PROJECT_IDENTITIES = { export const ENVIRONMENTS = { CREATE: { - workspaceId: "The ID of the project to create the environment in.", + projectId: "The ID of the project to create the environment in.", name: "The name of the environment to create.", slug: "The slug of the environment to create.", position: "The position of the environment. The lowest number will be displayed as the first environment." }, UPDATE: { - workspaceId: "The ID of the project to update the environment in.", + projectId: "The ID of the project to update the environment in.", id: "The ID of the environment to update.", name: "The new name of the environment.", slug: "The new slug of the environment.", position: "The new position of the environment. The lowest number will be displayed as the first environment." }, DELETE: { - workspaceId: "The ID of the project to delete the environment from.", + projectId: "The ID of the project to delete the environment from.", id: "The ID of the environment to delete." }, GET: { - workspaceId: "The ID of the project the environment belongs to.", + projectId: "The ID of the project the environment belongs to.", id: "The ID of the environment to fetch." } } as const; export const FOLDERS = { LIST: { - workspaceId: "The ID of the project to list folders from.", + projectId: "The ID of the project to list folders from.", environment: "The slug of the environment to list folders from.", path: "The path to list folders from.", directory: "The directory to list folders from. (Deprecated in favor of path)", @@ -913,7 +926,7 @@ export const FOLDERS = { folderId: "The ID of the folder to get details." }, CREATE: { - workspaceId: "The ID of the project to create the folder in.", + projectId: "The ID of the project to create the folder in.", environment: "The slug of the environment to create the folder in.", name: "The name of the folder to create.", path: "The path of the folder to create.", @@ -927,12 +940,12 @@ export const FOLDERS = { path: "The path of the folder to update.", directory: "The new directory of the folder to update. (Deprecated in favor of path)", projectSlug: "The slug of the project where the folder is located.", - workspaceId: "The ID of the project where the folder is located.", + projectId: "The ID of the project where the folder is located.", description: "An optional description label for the folder." }, DELETE: { folderIdOrName: "The ID or name of the folder to delete.", - workspaceId: "The ID of the project to delete the folder from.", + projectId: "The ID of the project to delete the folder from.", environment: "The slug of the environment where the folder is located.", directory: "The directory of the folder to delete. (Deprecated in favor of path)", path: "The path of the folder to delete." @@ -964,7 +977,7 @@ export const RAW_SECRETS = { expand: "Whether or not to expand secret references.", recursive: "Whether or not to fetch all secrets from the specified base path, and all of its subdirectories. Note, the max depth is 20 deep.", - workspaceId: "The ID of the project to list secrets from.", + projectId: "The ID of the project to list secrets from.", workspaceSlug: "The slug of the project to list secrets from. This parameter is only applicable by machine identities.", environment: "The slug of the environment to list secrets from.", @@ -984,7 +997,7 @@ export const RAW_SECRETS = { secretValue: "The value of the secret to create.", skipMultilineEncoding: "Skip multiline encoding for the secret value.", type: "The type of the secret to create.", - workspaceId: "The ID of the project to create the secret in.", + projectId: "The ID of the project to create the secret in.", tagIds: "The ID of the tags to be attached to the created secret.", secretReminderRepeatDays: "Interval for secret rotation notifications, measured in days.", secretReminderNote: "Note to be attached in notification email." @@ -992,7 +1005,7 @@ export const RAW_SECRETS = { GET: { expand: "Whether or not to expand secret references.", secretName: "The name of the secret to get.", - workspaceId: "The ID of the project to get the secret from.", + projectId: "The ID of the project to get the secret from.", workspaceSlug: "The slug of the project to get the secret from.", environment: "The slug of the environment to get the secret from.", secretPath: "The path of the secret to get.", @@ -1011,7 +1024,7 @@ export const RAW_SECRETS = { skipMultilineEncoding: "Skip multiline encoding for the secret value.", type: "The type of the secret to update.", projectSlug: "The slug of the project to update the secret in.", - workspaceId: "The ID of the project to update the secret in.", + projectId: "The ID of the project to update the secret in.", tagIds: "The ID of the tags to be attached to the updated secret.", secretReminderRepeatDays: "Interval for secret rotation notifications, measured in days.", secretReminderNote: "Note to be attached in notification email.", @@ -1025,11 +1038,11 @@ export const RAW_SECRETS = { secretPath: "The path of the secret.", type: "The type of the secret to delete.", projectSlug: "The slug of the project to delete the secret in.", - workspaceId: "The ID of the project where the secret is located." + projectId: "The ID of the project where the secret is located." }, GET_REFERENCE_TREE: { secretName: "The name of the secret to get the reference tree for.", - workspaceId: "The ID of the project where the secret is located.", + projectId: "The ID of the project where the secret is located.", environment: "The slug of the environment where the the secret is located.", secretPath: "The folder path where the secret is located." }, @@ -1043,7 +1056,7 @@ export const RAW_SECRETS = { export const SECRET_IMPORTS = { LIST: { - workspaceId: "The ID of the project to list secret imports from.", + projectId: "The ID of the project to list secret imports from.", environment: "The slug of the environment to list secret imports from.", path: "The path to list secret imports from." }, @@ -1053,7 +1066,7 @@ export const SECRET_IMPORTS = { CREATE: { environment: "The slug of the environment to import into.", path: "The path to import into.", - workspaceId: "The ID of the project you are working in.", + projectId: "The ID of the project you are working in.", isReplication: "When true, secrets from the source will be automatically sent to the destination. If approval policies exist at the destination, the secrets will be sent as approval requests instead of being applied immediately.", import: { @@ -1070,10 +1083,10 @@ export const SECRET_IMPORTS = { position: "The new position of the secret import. The lowest number will be displayed as the first import." }, path: "The path of the secret import to update.", - workspaceId: "The ID of the project where the secret import is located." + projectId: "The ID of the project where the secret import is located." }, DELETE: { - workspaceId: "The ID of the project to delete the secret import from.", + projectId: "The ID of the project to delete the secret import from.", secretImportId: "The ID of the secret import to delete.", environment: "The slug of the environment where the secret import is located.", path: "The path of the secret import to delete." @@ -2185,11 +2198,15 @@ export const CertificateAuthorities = { }; export const AppConnections = { + LIST: (app?: AppConnection) => ({ + projectId: `The ID of the project to list ${app ? APP_CONNECTION_NAME_MAP[app] : "App"} Connections from.` + }), GET_BY_ID: (app: AppConnection) => ({ connectionId: `The ID of the ${APP_CONNECTION_NAME_MAP[app]} Connection to retrieve.` }), GET_BY_NAME: (app: AppConnection) => ({ - connectionName: `The name of the ${APP_CONNECTION_NAME_MAP[app]} Connection to retrieve.` + connectionName: `The name of the ${APP_CONNECTION_NAME_MAP[app]} Connection to retrieve.`, + projectId: `The project ID of the ${APP_CONNECTION_NAME_MAP[app]} Connection is associated with. Leave unspecified to get organization-level connections.` }), CREATE: (app: AppConnection) => { const appName = APP_CONNECTION_NAME_MAP[app]; @@ -2198,7 +2215,8 @@ export const AppConnections = { description: `An optional description for the ${appName} Connection.`, credentials: `The credentials used to connect with ${appName}.`, method: `The method used to authenticate with ${appName}.`, - isPlatformManagedCredentials: `Whether or not the ${appName} Connection credentials should be managed by Infisical. Once enabled this cannot be reversed.` + isPlatformManagedCredentials: `Whether or not the ${appName} Connection credentials should be managed by Infisical. Once enabled this cannot be reversed.`, + projectId: `The ID of the project to create the ${appName} Connection in.` }; }, UPDATE: (app: AppConnection) => { diff --git a/backend/src/queue/queue-service.ts b/backend/src/queue/queue-service.ts index 5a7c92f22..f2f63f57a 100644 --- a/backend/src/queue/queue-service.ts +++ b/backend/src/queue/queue-service.ts @@ -231,6 +231,8 @@ export type TQueueJobTypes = { [QueueName.ImportSecretsFromExternalSource]: { name: QueueJobs.ImportSecretsFromExternalSource; payload: { + orgId: string; + actorId: string; actorEmail: string; importType: ExternalPlatforms; data: { diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index eccad2956..8444e8765 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -328,6 +328,7 @@ import { registerV1Routes } from "./v1"; import { initializeOauthConfigSync } from "./v1/sso-router"; import { registerV2Routes } from "./v2"; import { registerV3Routes } from "./v3"; +import { registerV4Routes } from "./v4"; const histogram = monitorEventLoopDelay({ resolution: 20 }); histogram.enable(); @@ -772,7 +773,8 @@ export const registerRoutes = async ( orgDAL, totpService, orgMembershipDAL, - auditLogService + auditLogService, + notificationService }); const passwordService = authPaswordServiceFactory({ tokenService, @@ -886,7 +888,8 @@ export const registerRoutes = async ( projectDAL, permissionService, projectUserMembershipRoleDAL, - projectMembershipDAL + projectMembershipDAL, + notificationService }); const rateLimitService = rateLimitServiceFactory({ @@ -925,7 +928,8 @@ export const registerRoutes = async ( projectRoleDAL, groupProjectDAL, secretReminderRecipientsDAL, - licenseService + licenseService, + notificationService }); const projectUserAdditionalPrivilegeService = projectUserAdditionalPrivilegeServiceFactory({ permissionService, @@ -1106,7 +1110,9 @@ export const registerRoutes = async ( instanceRelayConfigDAL, orgRelayConfigDAL, relayDAL, - kmsService + kmsService, + licenseService, + permissionService }); const gatewayV2Service = gatewayV2ServiceFactory({ @@ -1144,7 +1150,8 @@ export const registerRoutes = async ( appConnectionDAL, licenseService, gatewayService, - gatewayV2Service + gatewayV2Service, + notificationService }); const secretQueueService = secretQueueFactory({ @@ -1228,7 +1235,8 @@ export const registerRoutes = async ( projectTemplateService, groupProjectDAL, smtpService, - reminderService + reminderService, + notificationService }); const projectEnvService = projectEnvServiceFactory({ @@ -1362,7 +1370,8 @@ export const registerRoutes = async ( resourceMetadataDAL, projectMicrosoftTeamsConfigDAL, microsoftTeamsService, - folderCommitService + folderCommitService, + notificationService }); const secretService = secretServiceFactory({ @@ -1680,7 +1689,8 @@ export const registerRoutes = async ( identityOrgMembershipDAL, licenseService, identityDAL, - identityAuthTemplateDAL + identityAuthTemplateDAL, + keyStore }); const dynamicSecretProviders = buildDynamicSecretProviders({ @@ -1812,7 +1822,8 @@ export const registerRoutes = async ( secretV2BridgeService, resourceMetadataDAL, folderCommitService, - folderVersionDAL + folderVersionDAL, + notificationService }); const migrationService = externalMigrationServiceFactory({ @@ -1837,7 +1848,8 @@ export const registerRoutes = async ( gatewayService, gatewayV2Service, gatewayDAL, - gatewayV2DAL + gatewayV2DAL, + projectDAL }); const secretSyncService = secretSyncServiceFactory({ @@ -2014,7 +2026,8 @@ export const registerRoutes = async ( queueService, projectDAL, projectMembershipDAL, - smtpService + smtpService, + notificationService }); const secretScanningV2Queue = await secretScanningV2QueueServiceFactory({ @@ -2026,7 +2039,8 @@ export const registerRoutes = async ( smtpService, kmsService, keyStore, - appConnectionDAL + appConnectionDAL, + notificationService }); const secretScanningV2Service = secretScanningV2ServiceFactory({ @@ -2294,6 +2308,7 @@ export const registerRoutes = async ( { prefix: "/api/v2" } ); await server.register(registerV3Routes, { prefix: "/api/v3" }); + await server.register(registerV4Routes, { prefix: "/api/v4" }); server.addHook("onClose", async () => { cronJobs.forEach((job) => job.stop()); diff --git a/backend/src/server/routes/v1/app-connection-routers/app-connection-endpoints.ts b/backend/src/server/routes/v1/app-connection-routers/app-connection-endpoints.ts index 50111b109..720726c34 100644 --- a/backend/src/server/routes/v1/app-connection-routers/app-connection-endpoints.ts +++ b/backend/src/server/routes/v1/app-connection-routers/app-connection-endpoints.ts @@ -26,6 +26,7 @@ export const registerAppConnectionEndpoints = ; updateSchema: z.ZodType<{ name?: string; @@ -47,18 +48,27 @@ export const registerAppConnectionEndpoints = { - const appConnections = (await server.services.appConnection.listAppConnectionsByOrg(req.permission, app)) as T[]; + const { projectId } = req.query; + const appConnections = (await server.services.appConnection.listAppConnections( + req.permission, + app, + projectId + )) as T[]; await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, + projectId, event: { type: EventType.GET_APP_CONNECTIONS, metadata: { @@ -82,14 +92,19 @@ export const registerAppConnectionEndpoints = { + const { projectId } = req.query; const appConnections = await server.services.appConnection.listAvailableAppConnectionsForUser( app, - req.permission + req.permission, + projectId ); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, + projectId, event: { type: EventType.GET_AVAILABLE_APP_CONNECTIONS_DETAILS, metadata: { @@ -149,6 +167,7 @@ export const registerAppConnectionEndpoints = { const { connectionName } = req.params; + const { projectId } = req.query; const appConnection = (await server.services.appConnection.findAppConnectionByName( app, - connectionName, + { + connectionName, + projectId + }, req.permission )) as T; await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, + projectId: appConnection.projectId ?? undefined, event: { type: EventType.GET_APP_CONNECTION, metadata: { @@ -216,9 +243,7 @@ export const registerAppConnectionEndpoints = { - const { name, method, credentials, description, isPlatformManagedCredentials, gatewayId } = req.body; + const { name, method, credentials, description, isPlatformManagedCredentials, gatewayId, projectId } = req.body; const appConnection = (await server.services.appConnection.createAppConnection( - { name, method, app, credentials, description, isPlatformManagedCredentials, gatewayId }, + { name, method, app, credentials, description, isPlatformManagedCredentials, gatewayId, projectId }, req.permission )) as T; await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, + projectId, event: { type: EventType.CREATE_APP_CONNECTION, metadata: { @@ -283,6 +309,7 @@ export const registerAppConnectionEndpoints = { + // const { connectionId } = req.params; + // + // const projects = await server.services.appConnection.findAppConnectionUsageById( + // app, + // connectionId, + // req.permission + // ); + // + // await server.services.auditLog.createAuditLog({ + // ...req.auditLogInfo, + // orgId: req.permission.orgId, + // event: { + // type: EventType.GET_APP_CONNECTION_USAGE, + // metadata: { + // connectionId + // } + // } + // }); + // + // return { projects }; + // } + // }); }; diff --git a/backend/src/server/routes/v1/app-connection-routers/app-connection-router.ts b/backend/src/server/routes/v1/app-connection-routers/app-connection-router.ts index c2033f4b4..37558b817 100644 --- a/backend/src/server/routes/v1/app-connection-routers/app-connection-router.ts +++ b/backend/src/server/routes/v1/app-connection-routers/app-connection-router.ts @@ -1,12 +1,13 @@ import { z } from "zod"; +import { ProjectType } from "@app/db/schemas"; import { OCIConnectionListItemSchema, SanitizedOCIConnectionSchema } from "@app/ee/services/app-connections/oci"; import { OracleDBConnectionListItemSchema, SanitizedOracleDBConnectionSchema } from "@app/ee/services/app-connections/oracledb"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; -import { ApiDocsTags } from "@app/lib/api-docs"; +import { ApiDocsTags, AppConnections } from "@app/lib/api-docs"; import { readLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { @@ -210,6 +211,9 @@ export const registerAppConnectionRouter = async (server: FastifyZodProvider) => hide: false, tags: [ApiDocsTags.AppConnections], description: "List the available App Connection Options.", + querystring: z.object({ + projectType: z.nativeEnum(ProjectType).optional() + }), response: { 200: z.object({ appConnectionOptions: AppConnectionOptionsSchema.array() @@ -217,8 +221,8 @@ export const registerAppConnectionRouter = async (server: FastifyZodProvider) => } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), - handler: () => { - const appConnectionOptions = server.services.appConnection.listAppConnectionOptions(); + handler: (req) => { + const appConnectionOptions = server.services.appConnection.listAppConnectionOptions(req.query.projectType); return { appConnectionOptions }; } }); @@ -232,18 +236,27 @@ export const registerAppConnectionRouter = async (server: FastifyZodProvider) => schema: { hide: false, tags: [ApiDocsTags.AppConnections], - description: "List all the App Connections for the current organization.", + description: "List all the App Connections for the current organization or project.", + querystring: z.object({ + projectId: z.string().optional().describe(AppConnections.LIST().projectId) + }), response: { 200: z.object({ appConnections: SanitizedAppConnectionSchema.array() }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const appConnections = await server.services.appConnection.listAppConnectionsByOrg(req.permission); + const { projectId } = req.query; + const appConnections = await server.services.appConnection.listAppConnections( + req.permission, + undefined, + projectId + ); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, + projectId, event: { type: EventType.GET_APP_CONNECTIONS, metadata: { diff --git a/backend/src/server/routes/v1/dashboard-router.ts b/backend/src/server/routes/v1/dashboard-router.ts index a54bd5ccf..8cf9604a4 100644 --- a/backend/src/server/routes/v1/dashboard-router.ts +++ b/backend/src/server/routes/v1/dashboard-router.ts @@ -1,16 +1,16 @@ import { ForbiddenError } from "@casl/ability"; import { z } from "zod"; -import { SecretFoldersSchema, SecretImportsSchema, UsersSchema } from "@app/db/schemas"; +import { SecretFoldersSchema, SecretImportsSchema, SecretType, UsersSchema } from "@app/db/schemas"; import { RemindersSchema } from "@app/db/schemas/reminders"; import { EventType, UserAgentType } from "@app/ee/services/audit-log/audit-log-types"; import { ProjectPermissionSecretActions } from "@app/ee/services/permission/project-permission"; import { SecretRotationV2Schema } from "@app/ee/services/secret-rotation-v2/secret-rotation-v2-union-schema"; import { DASHBOARD } from "@app/lib/api-docs"; -import { BadRequestError } from "@app/lib/errors"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; import { removeTrailingSlash } from "@app/lib/fn"; import { OrderByDirection } from "@app/lib/types"; -import { secretsLimit } from "@app/server/config/rateLimiter"; +import { readLimit, secretsLimit } from "@app/server/config/rateLimiter"; import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { getUserAgentType } from "@app/server/plugins/audit-log"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; @@ -111,6 +111,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { SecretRotationV2Schema, z.object({ secrets: secretRawSchema + .omit({ secretValue: true }) .extend({ secretValueHidden: z.boolean(), secretPath: z.string().optional(), @@ -124,7 +125,9 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { .array() .optional(), secrets: secretRawSchema + .omit({ secretValue: true }) .extend({ + isEmpty: z.boolean(), secretValueHidden: z.boolean(), secretPath: z.string().optional(), secretMetadata: ResourceMetadataSchema.optional(), @@ -207,7 +210,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { const environments = req.query.environments.split(","); if (!projectId || environments.length === 0) - throw new BadRequestError({ message: "Missing workspace id or environment(s)" }); + throw new BadRequestError({ message: "Missing project id or environment(s)" }); const { shouldUseSecretV2Bridge } = await server.services.projectBot.getBotKey(projectId); @@ -219,7 +222,9 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { let imports: Awaited> | undefined; let folders: Awaited> | undefined; - let secrets: Awaited> | undefined; + let secrets: + | (Awaited>[number] & { isEmpty: boolean })[] + | undefined; let dynamicSecrets: | Awaited> | undefined; @@ -426,43 +431,51 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { }); if (remainingLimit > 0 && totalSecretCount > adjustedOffset) { - secrets = await server.services.secret.getSecretsRawMultiEnv({ - viewSecretValue: true, - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - environments, - actorAuthMethod: req.permission.authMethod, - projectId, - path: secretPath, - orderBy, - orderDirection, - search, - limit: remainingLimit, - offset: adjustedOffset, - isInternal: true - }); + secrets = ( + await server.services.secret.getSecretsRawMultiEnv({ + viewSecretValue: true, + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + environments, + actorAuthMethod: req.permission.authMethod, + projectId, + path: secretPath, + orderBy, + orderDirection, + search, + limit: remainingLimit, + offset: adjustedOffset, + isInternal: true + }) + ).map((secret) => ({ ...secret, isEmpty: !secret.secretValue })); } } if (secrets?.length || secretRotations?.length) { for await (const environment of environments) { - const secretCountFromEnv = - (secrets?.filter((secret) => secret.environment === environment).length ?? 0) + - (secretRotations - ?.filter((rotation) => rotation.environment.slug === environment) - .flatMap((rotation) => rotation.secrets.filter((secret) => Boolean(secret))).length ?? 0); + const secretIds = [ + ...new Set( + [ + ...(secrets?.filter((secret) => secret.environment === environment) ?? []), + ...(secretRotations + ?.filter((rotation) => rotation.environment.slug === environment) + .flatMap((rotation) => rotation.secrets.filter((secret) => Boolean(secret))) ?? []) + ].map((secret) => secret.id) + ) + ]; - if (secretCountFromEnv) { + if (secretIds) { await server.services.auditLog.createAuditLog({ projectId, ...req.auditLogInfo, event: { - type: EventType.GET_SECRETS, + type: EventType.DASHBOARD_LIST_SECRETS, metadata: { environment, secretPath, - numberOfSecrets: secretCountFromEnv + numberOfSecrets: secretIds.length, + secretIds } } }); @@ -473,8 +486,8 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { distinctId: getTelemetryDistinctId(req), organizationId: req.permission.orgId, properties: { - numberOfSecrets: secretCountFromEnv, - workspaceId: projectId, + numberOfSecrets: secretIds.length, + projectId, environment, secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -584,7 +597,6 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { .optional(), search: z.string().trim().describe(DASHBOARD.SECRET_DETAILS_LIST.search).optional(), tags: z.string().trim().transform(decodeURIComponent).describe(DASHBOARD.SECRET_DETAILS_LIST.tags).optional(), - viewSecretValue: booleanSchema.default(true), includeSecrets: booleanSchema.describe(DASHBOARD.SECRET_DETAILS_LIST.includeSecrets), includeFolders: booleanSchema.describe(DASHBOARD.SECRET_DETAILS_LIST.includeFolders), includeDynamicSecrets: booleanSchema.describe(DASHBOARD.SECRET_DETAILS_LIST.includeDynamicSecrets), @@ -606,7 +618,9 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { SecretRotationV2Schema, z.object({ secrets: secretRawSchema + .omit({ secretValue: true }) .extend({ + isEmpty: z.boolean(), secretValueHidden: z.boolean(), secretPath: z.string().optional(), secretMetadata: ResourceMetadataSchema.optional(), @@ -619,7 +633,9 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { .array() .optional(), secrets: secretRawSchema + .omit({ secretValue: true }) .extend({ + isEmpty: z.boolean(), secretReminderRecipients: z .object({ user: UsersSchema.pick({ id: true, email: true, username: true }), @@ -696,7 +712,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { includeSecretRotations } = req.query; - if (!projectId || !environment) throw new BadRequestError({ message: "Missing workspace id or environment" }); + if (!projectId || !environment) throw new BadRequestError({ message: "Missing project id or environment" }); const { shouldUseSecretV2Bridge } = await server.services.projectBot.getBotKey(projectId); @@ -715,12 +731,21 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { let folders: Awaited> | undefined; let secrets: | (Awaited>["secrets"][number] & { + isEmpty: boolean; reminder: Awaited>[string] | null; })[] | undefined; let dynamicSecrets: Awaited> | undefined; let secretRotations: - | Awaited> + | (Awaited>[number] & { + secrets: (NonNullable< + Awaited< + ReturnType + >[number]["secrets"][number] & { + isEmpty: boolean; + } + > | null)[]; + })[] | undefined; let totalImportCount: number | undefined; @@ -822,19 +847,31 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { ); if (remainingLimit > 0 && totalSecretRotationCount > adjustedOffset) { - secretRotations = await server.services.secretRotationV2.getDashboardSecretRotations( - { - projectId, - search, - orderBy, - orderDirection, - environments: [environment], - secretPath, - limit: remainingLimit, - offset: adjustedOffset - }, - req.permission - ); + secretRotations = ( + await server.services.secretRotationV2.getDashboardSecretRotations( + { + projectId, + search, + orderBy, + orderDirection, + environments: [environment], + secretPath, + limit: remainingLimit, + offset: adjustedOffset + }, + req.permission + ) + ).map((rotation) => ({ + ...rotation, + secrets: rotation.secrets.map((secret) => + secret + ? { + ...secret, + isEmpty: !secret.secretValue + } + : secret + ) + })); await server.services.auditLog.createAuditLog({ projectId, @@ -919,7 +956,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { await server.services.secret.getSecretsRaw({ actorId: req.permission.id, actor: req.permission.type, - viewSecretValue: req.query.viewSecretValue, + viewSecretValue: true, throwOnMissingReadValuePermission: false, actorOrgId: req.permission.orgId, environment, @@ -943,6 +980,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { secrets = rawSecrets.map((secret) => ({ ...secret, + isEmpty: !secret.secretValue, reminder: reminders[secret.id] ?? null })); } @@ -977,19 +1015,25 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { })); if (secrets?.length || secretRotations?.length) { - const secretCount = - (secrets?.length ?? 0) + - (secretRotations?.flatMap((rotation) => rotation.secrets.filter((secret) => Boolean(secret))).length ?? 0); + const secretIds = [ + ...new Set( + [ + ...(secrets ?? []), + ...(secretRotations?.flatMap((rotation) => rotation.secrets.filter((secret) => Boolean(secret))) ?? []) + ].map((secret) => secret.id) + ) + ]; await server.services.auditLog.createAuditLog({ projectId, ...req.auditLogInfo, event: { - type: EventType.GET_SECRETS, + type: EventType.DASHBOARD_LIST_SECRETS, metadata: { environment, secretPath, - numberOfSecrets: secretCount + numberOfSecrets: secretIds.length, + secretIds } } }); @@ -1000,8 +1044,8 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { distinctId: getTelemetryDistinctId(req), organizationId: req.permission.orgId, properties: { - numberOfSecrets: secretCount, - workspaceId: projectId, + numberOfSecrets: secretIds.length, + projectId, environment, secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1060,6 +1104,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { .array() .optional(), secrets: secretRawSchema + .omit({ secretValue: true }) .extend({ secretValueHidden: z.boolean(), secretPath: z.string().optional(), @@ -1145,18 +1190,20 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { ); for await (const environment of environments) { - const secretCountForEnv = secrets.filter((secret) => secret.environment === environment).length; + const envSecrets = secrets.filter((secret) => secret.environment === environment); + const secretCountForEnv = envSecrets.length; if (secretCountForEnv) { await server.services.auditLog.createAuditLog({ projectId, ...req.auditLogInfo, event: { - type: EventType.GET_SECRETS, + type: EventType.DASHBOARD_LIST_SECRETS, metadata: { environment, secretPath, - numberOfSecrets: secretCountForEnv + numberOfSecrets: secretCountForEnv, + secretIds: envSecrets.map((secret) => secret.id) } } }); @@ -1168,7 +1215,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secretCountForEnv, - workspaceId: projectId, + projectId, environment, secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1259,6 +1306,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ + // TODO(scott): omit secretValue here, but requires refactor of uploading env/copy from board secrets: secretRawSchema .extend({ secretPath: z.string().optional(), @@ -1310,6 +1358,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ + // TODO(scott): omit secretValue here, but requires refactor of uploading env/copy from board secrets: secretRawSchema .extend({ secretValueHidden: z.boolean(), @@ -1345,11 +1394,12 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { projectId, ...req.auditLogInfo, event: { - type: EventType.GET_SECRETS, + type: EventType.DASHBOARD_LIST_SECRETS, metadata: { environment, secretPath, - numberOfSecrets: secrets.length + numberOfSecrets: secrets.length, + secretIds: secrets.map((secret) => secret.id) } } }); @@ -1361,7 +1411,7 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId: projectId, + projectId, environment, secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1373,4 +1423,256 @@ export const registerDashboardRouter = async (server: FastifyZodProvider) => { return { secrets }; } }); + + server.route({ + method: "GET", + url: "/secret-value", + config: { + rateLimit: secretsLimit + }, + schema: { + security: [ + { + bearerAuth: [] + } + ], + querystring: z.object({ + projectId: z.string().trim(), + environment: z.string().trim(), + secretPath: z.string().trim().default("/").transform(removeTrailingSlash), + secretKey: z.string().trim(), + isOverride: z + .enum(["true", "false"]) + .transform((value) => value === "true") + .optional() + }), + response: { + 200: z.object({ + valueOverride: z.string().optional(), + value: z.string().optional() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const { secretPath, projectId, environment, secretKey, isOverride } = req.query; + + // TODO (scott): just get the secret instead of searching for it in list + const { secrets } = await server.services.secret.getSecretsRaw({ + actorId: req.permission.id, + actor: req.permission.type, + viewSecretValue: true, + throwOnMissingReadValuePermission: false, + actorOrgId: req.permission.orgId, + environment, + actorAuthMethod: req.permission.authMethod, + projectId, + path: secretPath, + search: secretKey, + includeTagsInSearch: true, + includeMetadataInSearch: true + }); + + if (isOverride) { + const personalSecret = secrets.find( + (secret) => secret.type === SecretType.Personal && secret.secretKey === secretKey + ); + + if (!personalSecret) + throw new BadRequestError({ + message: `Could not find personal secret with key "${secretKey}" at secret path "${secretPath}" in environment "${environment}" for project with ID "${projectId}"` + }); + + if (personalSecret) + return { + valueOverride: personalSecret.secretValue + }; + } + + const sharedSecret = secrets.find( + (secret) => secret.type === SecretType.Shared && secret.secretKey === secretKey + ); + + if (!sharedSecret) + throw new BadRequestError({ + message: `Could not find secret with key "${secretKey}" at secret path "${secretPath}" in environment "${environment}" for project with ID "${projectId}"` + }); + + // only audit if not personal + await server.services.auditLog.createAuditLog({ + projectId, + ...req.auditLogInfo, + event: { + type: EventType.DASHBOARD_GET_SECRET_VALUE, + metadata: { + environment: req.query.environment, + secretPath: req.query.secretPath, + secretKey, + secretId: sharedSecret.id + } + } + }); + + return { value: sharedSecret.secretValue }; + } + }); + + server.route({ + url: "/secret-imports", + method: "GET", + config: { + rateLimit: secretsLimit + }, + schema: { + querystring: z.object({ + projectId: z.string().trim(), + environment: z.string().trim(), + path: z.string().trim().default("/").transform(removeTrailingSlash) + }), + response: { + 200: z.object({ + secrets: z + .object({ + secretPath: z.string(), + environment: z.string(), + environmentInfo: z.object({ + id: z.string(), + name: z.string(), + slug: z.string() + }), + folderId: z.string().optional(), + secrets: secretRawSchema.omit({ secretValue: true }).extend({ isEmpty: z.boolean() }).array() + }) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const importedSecrets = await server.services.secretImport.getRawSecretsFromImports({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.query + }); + + await server.services.auditLog.createAuditLog({ + projectId: req.query.projectId, + ...req.auditLogInfo, + event: { + type: EventType.DASHBOARD_LIST_SECRETS, + metadata: { + environment: req.query.environment, + secretPath: req.query.path, + numberOfSecrets: importedSecrets.length, + secretIds: importedSecrets.map((secret) => secret.id) + } + } + }); + + return { + secrets: importedSecrets.map((importData) => ({ + ...importData, + secrets: importData.secrets.map((secret) => ({ + ...secret, + isEmpty: !secret.secretValue + })) + })) + }; + } + }); + + server.route({ + method: "GET", + url: "/secret-versions/:secretId", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + secretId: z.string() + }), + querystring: z.object({ + offset: z.coerce.number(), + limit: z.coerce.number() + }), + response: { + 200: z.object({ + secretVersions: secretRawSchema + .omit({ secretValue: true }) + .extend({ + secretValueHidden: z.boolean() + }) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const secretVersions = await server.services.secret.getSecretVersions({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + limit: req.query.limit, + offset: req.query.offset, + secretId: req.params.secretId + }); + + return { secretVersions }; + } + }); + + server.route({ + method: "GET", + url: "/secret-versions/:secretId/value/:version", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + secretId: z.string(), + version: z.string() + }), + + response: { + 200: z.object({ + value: z.string() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const { version, secretId } = req.params; + + const [secretVersion] = await server.services.secret.getSecretVersions({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + secretId, + secretVersions: [version] + }); + + if (!secretVersion) + throw new NotFoundError({ + message: `Could not find secret version "${version}" for secret with ID "${secretId}` + }); + + await server.services.auditLog.createAuditLog({ + projectId: secretVersion.workspace, + ...req.auditLogInfo, + event: { + type: EventType.DASHBOARD_GET_SECRET_VERSION_VALUE, + metadata: { + secretId, + version + } + } + }); + + return { value: secretVersion.secretValue }; + } + }); }; diff --git a/backend/src/server/routes/v1/deprecated-project-env-router.ts b/backend/src/server/routes/v1/deprecated-project-env-router.ts new file mode 100644 index 000000000..1a187e2b1 --- /dev/null +++ b/backend/src/server/routes/v1/deprecated-project-env-router.ts @@ -0,0 +1,298 @@ +import { z } from "zod"; + +import { ProjectEnvironmentsSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { ApiDocsTags, ENVIRONMENTS } from "@app/lib/api-docs"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { slugSchema } from "@app/server/lib/schemas"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; + +export const registerDeprecatedProjectEnvRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "GET", + url: "/:workspaceId/environments/:envId", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Environments], + description: "Get Environment", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + // NOTE(daniel): workspaceId isn't used, but we need to keep it for backwards compatibility. The endpoint defined below, uses no project ID, and is takes a pure environment ID. + workspaceId: z.string().trim().describe(ENVIRONMENTS.GET.projectId), + envId: z.string().trim().describe(ENVIRONMENTS.GET.id) + }), + response: { + 200: z.object({ + environment: ProjectEnvironmentsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const environment = await server.services.projectEnv.getEnvironmentById({ + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + id: req.params.envId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: environment.projectId, + event: { + type: EventType.GET_ENVIRONMENT, + metadata: { + id: environment.id + } + } + }); + + return { environment }; + } + }); + + server.route({ + method: "GET", + url: "/environments/:envId", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Environments], + description: "Get Environment by ID", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + envId: z.string().trim().describe(ENVIRONMENTS.GET.id) + }), + response: { + 200: z.object({ + environment: ProjectEnvironmentsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const environment = await server.services.projectEnv.getEnvironmentById({ + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + id: req.params.envId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: environment.projectId, + event: { + type: EventType.GET_ENVIRONMENT, + metadata: { + id: environment.id + } + } + }); + + return { environment }; + } + }); + + server.route({ + method: "POST", + url: "/:workspaceId/environments", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Environments], + description: "Create environment", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(ENVIRONMENTS.CREATE.projectId) + }), + body: z.object({ + name: z.string().trim().describe(ENVIRONMENTS.CREATE.name), + position: z.number().min(1).optional().describe(ENVIRONMENTS.CREATE.position), + slug: slugSchema({ max: 64 }).describe(ENVIRONMENTS.CREATE.slug) + }), + response: { + 200: z.object({ + message: z.string(), + workspace: z.string(), + environment: ProjectEnvironmentsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const environment = await server.services.projectEnv.createEnvironment({ + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + projectId: req.params.workspaceId, + ...req.body + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: environment.projectId, + event: { + type: EventType.CREATE_ENVIRONMENT, + metadata: { + name: environment.name, + slug: environment.slug + } + } + }); + return { + message: "Successfully created new environment", + workspace: req.params.workspaceId, + environment + }; + } + }); + + server.route({ + method: "PATCH", + url: "/:workspaceId/environments/:id", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Environments], + description: "Update environment", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(ENVIRONMENTS.UPDATE.projectId), + id: z.string().trim().describe(ENVIRONMENTS.UPDATE.id) + }), + body: z.object({ + slug: slugSchema({ max: 64 }).optional().describe(ENVIRONMENTS.UPDATE.slug), + name: z.string().trim().optional().describe(ENVIRONMENTS.UPDATE.name), + position: z.number().optional().describe(ENVIRONMENTS.UPDATE.position) + }), + response: { + 200: z.object({ + message: z.string(), + workspace: z.string(), + environment: ProjectEnvironmentsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { environment, old } = await server.services.projectEnv.updateEnvironment({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + id: req.params.id, + ...req.body + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: environment.projectId, + event: { + type: EventType.UPDATE_ENVIRONMENT, + metadata: { + oldName: old.name, + oldSlug: old.slug, + oldPos: old.position, + newName: environment.name, + newSlug: environment.slug, + newPos: environment.position + } + } + }); + + return { + message: "Successfully updated environment", + workspace: req.params.workspaceId, + environment + }; + } + }); + + server.route({ + method: "DELETE", + url: "/:workspaceId/environments/:id", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Environments], + description: "Delete environment", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(ENVIRONMENTS.DELETE.projectId), + id: z.string().trim().describe(ENVIRONMENTS.DELETE.id) + }), + response: { + 200: z.object({ + message: z.string(), + workspace: z.string(), + environment: ProjectEnvironmentsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const environment = await server.services.projectEnv.deleteEnvironment({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + id: req.params.id + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: environment.projectId, + event: { + type: EventType.DELETE_ENVIRONMENT, + metadata: { + slug: environment.slug, + name: environment.name + } + } + }); + + return { + message: "Successfully deleted environment", + workspace: req.params.workspaceId, + environment + }; + } + }); +}; diff --git a/backend/src/server/routes/v1/deprecated-project-membership-router.ts b/backend/src/server/routes/v1/deprecated-project-membership-router.ts new file mode 100644 index 000000000..ab225929f --- /dev/null +++ b/backend/src/server/routes/v1/deprecated-project-membership-router.ts @@ -0,0 +1,378 @@ +import { z } from "zod"; + +import { + OrgMembershipsSchema, + ProjectMembershipsSchema, + ProjectUserMembershipRolesSchema, + UserEncryptionKeysSchema, + UsersSchema +} from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { ApiDocsTags, PROJECT_USERS } from "@app/lib/api-docs"; +import { ms } from "@app/lib/ms"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; +import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; + +export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "GET", + url: "/:workspaceId/memberships", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectUsers], + description: "Return project user memberships", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIPS.projectId) + }), + response: { + 200: z.object({ + memberships: ProjectMembershipsSchema.extend({ + user: UsersSchema.pick({ + email: true, + firstName: true, + lastName: true, + id: true, + username: true + }).merge(UserEncryptionKeysSchema.pick({ publicKey: true })), + roles: z.array( + z.object({ + id: z.string(), + role: z.string(), + customRoleId: z.string().optional().nullable(), + customRoleName: z.string().optional().nullable(), + customRoleSlug: z.string().optional().nullable(), + isTemporary: z.boolean(), + temporaryMode: z.string().optional().nullable(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional() + }) + ) + }) + .omit({ updatedAt: true }) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const memberships = await server.services.projectMembership.getProjectMemberships({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId + }); + return { memberships }; + } + }); + + server.route({ + method: "GET", + url: "/:workspaceId/memberships/:membershipId", + config: { + rateLimit: readLimit + }, + schema: { + description: "Return project user membership", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.projectId), + membershipId: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.membershipId) + }), + response: { + 200: z.object({ + membership: ProjectMembershipsSchema.extend({ + user: UsersSchema.pick({ + email: true, + firstName: true, + lastName: true, + id: true, + username: true + }).merge(UserEncryptionKeysSchema.pick({ publicKey: true })), + roles: z.array( + z.object({ + id: z.string(), + role: z.string(), + customRoleId: z.string().optional().nullable(), + customRoleName: z.string().optional().nullable(), + customRoleSlug: z.string().optional().nullable(), + isTemporary: z.boolean(), + temporaryMode: z.string().optional().nullable(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional() + }) + ) + }).omit({ updatedAt: true }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const membership = await server.services.projectMembership.getProjectMembershipById({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + id: req.params.membershipId + }); + return { membership }; + } + }); + + server.route({ + method: "POST", + url: "/:workspaceId/memberships/details", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectUsers], + description: "Return project user memberships", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.projectId) + }), + body: z.object({ + username: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.username) + }), + response: { + 200: z.object({ + membership: ProjectMembershipsSchema.extend({ + user: UsersSchema.pick({ + email: true, + firstName: true, + lastName: true, + id: true + }).merge(UserEncryptionKeysSchema.pick({ publicKey: true })), + roles: z.array( + z.object({ + id: z.string(), + role: z.string(), + customRoleId: z.string().optional().nullable(), + customRoleName: z.string().optional().nullable(), + customRoleSlug: z.string().optional().nullable(), + isTemporary: z.boolean(), + temporaryMode: z.string().optional().nullable(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional() + }) + ) + }).omit({ createdAt: true, updatedAt: true }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const membership = await server.services.projectMembership.getProjectMembershipByUsername({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + username: req.body.username + }); + return { membership }; + } + }); + + server.route({ + method: "POST", + url: "/:workspaceId/memberships", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({ + workspaceId: z.string().trim() + }), + body: z.object({ + members: z + .object({ + orgMembershipId: z.string().trim(), + workspaceEncryptedKey: z.string().trim(), + workspaceEncryptedNonce: z.string().trim() + }) + .array() + .min(1) + }), + response: { + 200: z.object({ + success: z.boolean(), + data: OrgMembershipsSchema.array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const data = await server.services.projectMembership.addUsersToProject({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + members: req.body.members + }); + + await server.services.auditLog.createAuditLog({ + projectId: req.params.workspaceId, + ...req.auditLogInfo, + event: { + type: EventType.ADD_BATCH_PROJECT_MEMBER, + metadata: data.map(({ userId }) => ({ + userId: userId || "", + email: "" + })) + } + }); + + return { data, success: true }; + } + }); + + server.route({ + method: "PATCH", + url: "/:workspaceId/memberships/:membershipId", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectUsers], + description: "Update project user membership", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.projectId), + membershipId: z.string().trim().describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.membershipId) + }), + body: z.object({ + roles: z + .array( + z.union([ + z.object({ + role: z.string(), + isTemporary: z.literal(false).default(false) + }), + z.object({ + role: z.string(), + isTemporary: z.literal(true), + temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), + temporaryAccessStartTime: z.string().datetime() + }) + ]) + ) + .min(1) + .refine((data) => data.some(({ isTemporary }) => !isTemporary), "At least one long lived role is required") + .describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.roles) + }), + response: { + 200: z.object({ + roles: ProjectUserMembershipRolesSchema.array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const roles = await server.services.projectMembership.updateProjectMembership({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + membershipId: req.params.membershipId, + roles: req.body.roles + }); + + // await server.services.auditLog.createAuditLog({ + // ...req.auditLogInfo, + // projectId: req.params.workspaceId, + // event: { + // type: EventType.UPDATE_USER_WORKSPACE_ROLE, + // metadata: { + // userId: membership.userId, + // newRole: req.body.role, + // oldRole: membership.role, + // email: "" + // } + // } + // }); + return { roles }; + } + }); + + server.route({ + method: "DELETE", + url: "/:workspaceId/memberships/:membershipId", + config: { + rateLimit: writeLimit + }, + schema: { + description: "Delete project user membership", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim(), + membershipId: z.string().trim() + }), + response: { + 200: z.object({ + membership: ProjectMembershipsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const membership = await server.services.projectMembership.deleteProjectMembership({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + membershipId: req.params.membershipId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.params.workspaceId, + event: { + type: EventType.REMOVE_PROJECT_MEMBER, + metadata: { + userId: membership.userId, + email: "" + } + } + }); + return { membership }; + } + }); +}; diff --git a/backend/src/server/routes/v1/deprecated-project-router.ts b/backend/src/server/routes/v1/deprecated-project-router.ts new file mode 100644 index 000000000..687d95b9b --- /dev/null +++ b/backend/src/server/routes/v1/deprecated-project-router.ts @@ -0,0 +1,728 @@ +import { z } from "zod"; + +import { + IntegrationsSchema, + ProjectRolesSchema, + ProjectSlackConfigsSchema, + ProjectSshConfigsSchema, + ProjectType, + SortDirection +} from "@app/db/schemas"; +import { ProjectMicrosoftTeamsConfigsSchema } from "@app/db/schemas/project-microsoft-teams-configs"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { ApiDocsTags, PROJECTS } from "@app/lib/api-docs"; +import { CharacterType, characterValidator } from "@app/lib/validator/validate-string"; +import { re2Validator } from "@app/lib/zod"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; +import { validateMicrosoftTeamsChannelsSchema } from "@app/services/microsoft-teams/microsoft-teams-fns"; +import { ProjectFilterType, SearchProjectSortBy } from "@app/services/project/project-types"; +import { validateSlackChannelsField } from "@app/services/slack/slack-auth-validators"; +import { WorkflowIntegration } from "@app/services/workflow-integration/workflow-integration-types"; + +import { integrationAuthPubSchema, SanitizedProjectSchema } from "../sanitizedSchemas"; + +const projectWithEnv = SanitizedProjectSchema.merge( + z.object({ + _id: z.string(), + environments: z.object({ name: z.string(), slug: z.string(), id: z.string() }).array() + }) +); + +export const registerDeprecatedProjectRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "GET", + url: "/", + config: { + rateLimit: readLimit + }, + schema: { + querystring: z.object({ + includeRoles: z + .enum(["true", "false"]) + .default("false") + .transform((value) => value === "true"), + type: z.nativeEnum(ProjectType).optional() + }), + response: { + 200: z.object({ + workspaces: projectWithEnv + .extend({ + roles: ProjectRolesSchema.array().optional() + }) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspaces = await server.services.project.getProjects({ + includeRoles: req.query.includeRoles, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + type: req.query.type + }); + return { workspaces }; + } + }); + + server.route({ + method: "GET", + url: "/:workspaceId", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Projects], + description: "Get project", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(PROJECTS.GET.projectId) + }), + response: { + 200: z.object({ + workspace: projectWithEnv.optional() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspace = await server.services.project.getAProject({ + filter: { + type: ProjectFilterType.ID, + projectId: req.params.workspaceId + }, + actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId + }); + return { workspace }; + } + }); + + server.route({ + method: "DELETE", + url: "/:workspaceId", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Projects], + description: "Delete project", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(PROJECTS.DELETE.projectId) + }), + response: { + 200: z.object({ + workspace: SanitizedProjectSchema.optional() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspace = await server.services.project.deleteProject({ + filter: { + type: ProjectFilterType.ID, + projectId: req.params.workspaceId + }, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: req.params.workspaceId, + event: { + type: EventType.DELETE_PROJECT, + metadata: workspace + } + }); + + return { workspace }; + } + }); + + server.route({ + method: "PATCH", + url: "/:workspaceId", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Projects], + description: "Update project", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(PROJECTS.UPDATE.projectId) + }), + body: z.object({ + name: z + .string() + .trim() + .max(64, { message: "Name must be 64 or fewer characters" }) + .optional() + .describe(PROJECTS.UPDATE.name), + description: z + .string() + .trim() + .max(256, { message: "Description must be 256 or fewer characters" }) + .optional() + .describe(PROJECTS.UPDATE.projectDescription), + autoCapitalization: z.boolean().optional().describe(PROJECTS.UPDATE.autoCapitalization), + hasDeleteProtection: z.boolean().optional().describe(PROJECTS.UPDATE.hasDeleteProtection), + slug: z + .string() + .trim() + .max(64, { message: "Slug must be 64 characters or fewer" }) + .refine(re2Validator(/^[a-z0-9]+(?:[_-][a-z0-9]+)*$/), { + message: + "Project slug can only contain lowercase letters and numbers, with optional single hyphens (-) or underscores (_) between words. Cannot start or end with a hyphen or underscore." + }) + .optional() + .describe(PROJECTS.UPDATE.slug), + secretSharing: z.boolean().optional().describe(PROJECTS.UPDATE.secretSharing), + showSnapshotsLegacy: z.boolean().optional().describe(PROJECTS.UPDATE.showSnapshotsLegacy), + defaultProduct: z.nativeEnum(ProjectType).optional().describe(PROJECTS.UPDATE.defaultProduct), + secretDetectionIgnoreValues: z + .array(z.string()) + .optional() + .describe(PROJECTS.UPDATE.secretDetectionIgnoreValues) + }), + response: { + 200: z.object({ + workspace: SanitizedProjectSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspace = await server.services.project.updateProject({ + filter: { + type: ProjectFilterType.ID, + projectId: req.params.workspaceId + }, + update: { + name: req.body.name, + description: req.body.description, + autoCapitalization: req.body.autoCapitalization, + defaultProduct: req.body.defaultProduct, + hasDeleteProtection: req.body.hasDeleteProtection, + slug: req.body.slug, + secretSharing: req.body.secretSharing, + showSnapshotsLegacy: req.body.showSnapshotsLegacy, + secretDetectionIgnoreValues: req.body.secretDetectionIgnoreValues + }, + actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: req.params.workspaceId, + event: { + type: EventType.UPDATE_PROJECT, + metadata: req.body + } + }); + + return { + workspace + }; + } + }); + + server.route({ + method: "PUT", + url: "/:workspaceSlug/audit-logs-retention", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({ + workspaceSlug: z.string().trim() + }), + body: z.object({ + auditLogsRetentionDays: z.number().min(0) + }), + response: { + 200: z.object({ + message: z.string(), + workspace: SanitizedProjectSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspace = await server.services.project.updateAuditLogsRetention({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + filter: { + type: ProjectFilterType.SLUG, + slug: req.params.workspaceSlug, + orgId: req.permission.orgId + }, + auditLogsRetentionDays: req.body.auditLogsRetentionDays + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: workspace.id, + event: { + type: EventType.UPDATE_PROJECT, + metadata: req.body + } + }); + + return { + message: "Successfully updated project's audit logs retention period", + workspace + }; + } + }); + + server.route({ + method: "GET", + url: "/:workspaceId/integrations", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Integrations], + description: "List integrations for a project.", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(PROJECTS.LIST_INTEGRATION.projectId) + }), + response: { + 200: z.object({ + integrations: IntegrationsSchema.merge( + z.object({ + environment: z.object({ + id: z.string(), + name: z.string(), + slug: z.string() + }) + }) + ).array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const integrations = await server.services.integration.listIntegrationByProject({ + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId + }); + return { integrations }; + } + }); + + server.route({ + method: "GET", + url: "/:workspaceId/authorizations", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Integrations], + description: "List integration auth objects for a workspace.", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + workspaceId: z.string().trim().describe(PROJECTS.LIST_INTEGRATION_AUTHORIZATION.projectId) + }), + response: { + 200: z.object({ + authorizations: integrationAuthPubSchema.array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const authorizations = await server.services.integrationAuth.listIntegrationAuthByProjectId({ + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId + }); + return { authorizations }; + } + }); + + server.route({ + method: "GET", + url: "/:workspaceId/ssh-config", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + workspaceId: z.string().trim() + }), + response: { + 200: ProjectSshConfigsSchema.pick({ + id: true, + createdAt: true, + updatedAt: true, + projectId: true, + defaultUserSshCaId: true, + defaultHostSshCaId: true + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const sshConfig = await server.services.project.getProjectSshConfig({ + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: sshConfig.projectId, + event: { + type: EventType.GET_PROJECT_SSH_CONFIG, + metadata: { + id: sshConfig.id, + projectId: sshConfig.projectId + } + } + }); + + return sshConfig; + } + }); + + server.route({ + method: "PATCH", + url: "/:workspaceId/ssh-config", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({ + workspaceId: z.string().trim() + }), + body: z.object({ + defaultUserSshCaId: z.string().optional(), + defaultHostSshCaId: z.string().optional() + }), + response: { + 200: ProjectSshConfigsSchema.pick({ + id: true, + createdAt: true, + updatedAt: true, + projectId: true, + defaultUserSshCaId: true, + defaultHostSshCaId: true + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const sshConfig = await server.services.project.updateProjectSshConfig({ + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + ...req.body + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: sshConfig.projectId, + event: { + type: EventType.UPDATE_PROJECT_SSH_CONFIG, + metadata: { + id: sshConfig.id, + projectId: sshConfig.projectId, + defaultUserSshCaId: sshConfig.defaultUserSshCaId, + defaultHostSshCaId: sshConfig.defaultHostSshCaId + } + } + }); + + return sshConfig; + } + }); + + server.route({ + method: "GET", + url: "/:workspaceId/workflow-integration-config/:integration", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + workspaceId: z.string().trim(), + integration: z.nativeEnum(WorkflowIntegration) + }), + response: { + 200: z.discriminatedUnion("integration", [ + ProjectSlackConfigsSchema.pick({ + id: true, + isAccessRequestNotificationEnabled: true, + accessRequestChannels: true, + isSecretRequestNotificationEnabled: true, + secretRequestChannels: true + }).merge( + z.object({ + integration: z.literal(WorkflowIntegration.SLACK), + integrationId: z.string() + }) + ), + ProjectMicrosoftTeamsConfigsSchema.pick({ + id: true, + isAccessRequestNotificationEnabled: true, + accessRequestChannels: true, + isSecretRequestNotificationEnabled: true, + secretRequestChannels: true + }).merge( + z.object({ + integration: z.literal(WorkflowIntegration.MICROSOFT_TEAMS), + integrationId: z.string() + }) + ) + ]) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const config = await server.services.project.getProjectWorkflowIntegrationConfig({ + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + integration: req.params.integration + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.params.workspaceId, + event: { + type: EventType.GET_PROJECT_WORKFLOW_INTEGRATION_CONFIG, + metadata: { + id: config.id, + integration: config.integration + } + } + }); + + return config; + } + }); + + server.route({ + method: "DELETE", + url: "/:projectId/workflow-integration/:integration/:integrationId", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({ + projectId: z.string().trim(), + integration: z.nativeEnum(WorkflowIntegration), + integrationId: z.string() + }), + response: { + 200: z.object({ + integrationConfig: z.object({ + id: z.string() + }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const deletedIntegration = await server.services.project.deleteProjectWorkflowIntegration({ + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId, + integration: req.params.integration, + integrationId: req.params.integrationId + }); + + return { + integrationConfig: deletedIntegration + }; + } + }); + + server.route({ + method: "PUT", + url: "/:workspaceId/workflow-integration", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + workspaceId: z.string().trim() + }), + + body: z.discriminatedUnion("integration", [ + z.object({ + integration: z.literal(WorkflowIntegration.SLACK), + integrationId: z.string(), + accessRequestChannels: validateSlackChannelsField, + secretRequestChannels: validateSlackChannelsField, + isAccessRequestNotificationEnabled: z.boolean(), + isSecretRequestNotificationEnabled: z.boolean() + }), + z.object({ + integration: z.literal(WorkflowIntegration.MICROSOFT_TEAMS), + integrationId: z.string(), + accessRequestChannels: validateMicrosoftTeamsChannelsSchema, + secretRequestChannels: validateMicrosoftTeamsChannelsSchema, + isAccessRequestNotificationEnabled: z.boolean(), + isSecretRequestNotificationEnabled: z.boolean() + }) + ]), + response: { + 200: z.discriminatedUnion("integration", [ + ProjectSlackConfigsSchema.pick({ + id: true, + isAccessRequestNotificationEnabled: true, + accessRequestChannels: true, + isSecretRequestNotificationEnabled: true, + secretRequestChannels: true + }).merge( + z.object({ + integration: z.literal(WorkflowIntegration.SLACK), + integrationId: z.string() + }) + ), + ProjectMicrosoftTeamsConfigsSchema.pick({ + id: true, + isAccessRequestNotificationEnabled: true, + isSecretRequestNotificationEnabled: true + }).merge( + z.object({ + integration: z.literal(WorkflowIntegration.MICROSOFT_TEAMS), + integrationId: z.string(), + accessRequestChannels: validateMicrosoftTeamsChannelsSchema, + secretRequestChannels: validateMicrosoftTeamsChannelsSchema + }) + ) + ]) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workflowIntegrationConfig = await server.services.project.updateProjectWorkflowIntegration({ + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + projectId: req.params.workspaceId, + ...req.body + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.params.workspaceId, + event: { + type: EventType.UPDATE_PROJECT_WORKFLOW_INTEGRATION_CONFIG, + metadata: { + id: workflowIntegrationConfig.id, + integrationId: workflowIntegrationConfig.integrationId, + integration: workflowIntegrationConfig.integration, + isAccessRequestNotificationEnabled: workflowIntegrationConfig.isAccessRequestNotificationEnabled, + accessRequestChannels: workflowIntegrationConfig.accessRequestChannels, + isSecretRequestNotificationEnabled: workflowIntegrationConfig.isSecretRequestNotificationEnabled, + secretRequestChannels: workflowIntegrationConfig.secretRequestChannels + } + } + }); + + return workflowIntegrationConfig; + } + }); + + server.route({ + method: "POST", + url: "/search", + config: { + rateLimit: readLimit + }, + schema: { + body: z.object({ + limit: z.number().default(100), + offset: z.number().default(0), + type: z.nativeEnum(ProjectType).optional(), + orderBy: z.nativeEnum(SearchProjectSortBy).optional().default(SearchProjectSortBy.NAME), + orderDirection: z.nativeEnum(SortDirection).optional().default(SortDirection.ASC), + name: z + .string() + .trim() + .refine((val) => characterValidator([CharacterType.AlphaNumeric, CharacterType.Hyphen])(val), { + message: "Invalid pattern: only alphanumeric characters, - are allowed." + }) + .optional() + }), + response: { + 200: z.object({ + projects: SanitizedProjectSchema.extend({ isMember: z.boolean() }).array(), + totalCount: z.number() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { docs: projects, totalCount } = await server.services.project.searchProjects({ + permission: req.permission, + ...req.body + }); + + return { projects, totalCount }; + } + }); +}; diff --git a/backend/src/server/routes/v1/deprecated-secret-folder-router.ts b/backend/src/server/routes/v1/deprecated-secret-folder-router.ts new file mode 100644 index 000000000..ecb955025 --- /dev/null +++ b/backend/src/server/routes/v1/deprecated-secret-folder-router.ts @@ -0,0 +1,444 @@ +import { z } from "zod"; + +import { SecretFoldersSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { ApiDocsTags, FOLDERS } from "@app/lib/api-docs"; +import { prefixWithSlash, removeTrailingSlash } from "@app/lib/fn"; +import { isValidFolderName } from "@app/lib/validator"; +import { readLimit, secretsLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; + +import { booleanSchema } from "../sanitizedSchemas"; + +export const registerDeprecatedSecretFolderRouter = async (server: FastifyZodProvider) => { + server.route({ + url: "/", + method: "POST", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + description: "Create folders", + security: [ + { + bearerAuth: [] + } + ], + body: z.object({ + workspaceId: z.string().trim().describe(FOLDERS.CREATE.projectId), + environment: z.string().trim().describe(FOLDERS.CREATE.environment), + name: z + .string() + .trim() + .describe(FOLDERS.CREATE.name) + .refine((name) => isValidFolderName(name), { + message: "Invalid folder name. Only alphanumeric characters, dashes, and underscores are allowed." + }), + path: z + .string() + .trim() + .default("/") + .transform(prefixWithSlash) // Transformations get skipped if path is undefined + .transform(removeTrailingSlash) + .describe(FOLDERS.CREATE.path) + .optional(), + // backward compatibility with cli + directory: z + .string() + .trim() + .default("/") + .transform(prefixWithSlash) // Transformations get skipped if directory is undefined + .transform(removeTrailingSlash) + .describe(FOLDERS.CREATE.directory) + .optional(), + description: z.string().optional().nullable().describe(FOLDERS.CREATE.description) + }), + response: { + 200: z.object({ + folder: SecretFoldersSchema.extend({ + path: z.string() + }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const path = req.body.path || req.body.directory || "/"; + const folder = await server.services.folder.createFolder({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body, + projectId: req.body.workspaceId, + path, + description: req.body.description + }); + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.body.workspaceId, + event: { + type: EventType.CREATE_FOLDER, + metadata: { + environment: req.body.environment, + folderId: folder.id, + folderName: folder.name, + folderPath: path, + ...(req.body.description ? { description: req.body.description } : {}) + } + } + }); + return { folder }; + } + }); + + server.route({ + url: "/:folderId", + method: "PATCH", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + description: "Update folder", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + // old way this was name + folderId: z.string().describe(FOLDERS.UPDATE.folderId) + }), + body: z.object({ + workspaceId: z.string().trim().describe(FOLDERS.UPDATE.projectId), + environment: z.string().trim().describe(FOLDERS.UPDATE.environment), + name: z + .string() + .trim() + .describe(FOLDERS.UPDATE.name) + .refine((name) => isValidFolderName(name), { + message: "Invalid folder name. Only alphanumeric characters, dashes, and underscores are allowed." + }), + path: z + .string() + .trim() + .default("/") + .transform(prefixWithSlash) // Transformations get skipped if path is undefined + .transform(removeTrailingSlash) + .describe(FOLDERS.UPDATE.path) + .optional(), + // backward compatibility with cli + directory: z + .string() + .trim() + .default("/") + .transform(prefixWithSlash) // Transformations get skipped if directory is undefined + .transform(removeTrailingSlash) + .describe(FOLDERS.UPDATE.directory) + .optional(), + description: z.string().optional().nullable().describe(FOLDERS.UPDATE.description) + }), + response: { + 200: z.object({ + folder: SecretFoldersSchema.extend({ + path: z.string() + }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const path = req.body.path || req.body.directory || "/"; + const { folder, old } = await server.services.folder.updateFolder({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body, + projectId: req.body.workspaceId, + id: req.params.folderId, + path + }); + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.body.workspaceId, + event: { + type: EventType.UPDATE_FOLDER, + metadata: { + environment: req.body.environment, + folderId: folder.id, + folderPath: path, + newFolderName: folder.name, + oldFolderName: old.name + } + } + }); + return { folder }; + } + }); + + server.route({ + url: "/batch", + method: "PATCH", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + description: "Update folders by batch", + security: [ + { + bearerAuth: [] + } + ], + body: z.object({ + projectSlug: z.string().trim().describe(FOLDERS.UPDATE.projectSlug), + folders: z + .object({ + id: z.string().describe(FOLDERS.UPDATE.folderId), + environment: z.string().trim().describe(FOLDERS.UPDATE.environment), + name: z + .string() + .trim() + .describe(FOLDERS.UPDATE.name) + .refine((name) => isValidFolderName(name), { + message: "Invalid folder name. Only alphanumeric characters, dashes, and underscores are allowed." + }), + path: z + .string() + .trim() + .default("/") + .transform(prefixWithSlash) + .transform(removeTrailingSlash) + .describe(FOLDERS.UPDATE.path), + description: z.string().optional().nullable().describe(FOLDERS.UPDATE.description) + }) + .array() + .min(1) + }), + response: { + 200: z.object({ + folders: SecretFoldersSchema.array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { newFolders, oldFolders, projectId } = await server.services.folder.updateManyFolders({ + ...req.body, + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId + }); + + await Promise.all( + req.body.folders.map(async (folder, index) => { + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId, + event: { + type: EventType.UPDATE_FOLDER, + metadata: { + environment: oldFolders[index].envId, + folderId: oldFolders[index].id, + folderPath: folder.path, + newFolderName: newFolders[index].name, + oldFolderName: oldFolders[index].name + } + } + }); + }) + ); + + return { folders: newFolders }; + } + }); + + // TODO(daniel): Expose this route in api reference and write docs for it. + server.route({ + method: "DELETE", + url: "/:folderIdOrName", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + description: "Delete a folder", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + folderIdOrName: z.string().describe(FOLDERS.DELETE.folderIdOrName) + }), + body: z.object({ + workspaceId: z.string().trim().describe(FOLDERS.DELETE.projectId), + environment: z.string().trim().describe(FOLDERS.DELETE.environment), + path: z + .string() + .trim() + .default("/") + .transform(prefixWithSlash) // Transformations get skipped if path is undefined + .transform(removeTrailingSlash) + .describe(FOLDERS.DELETE.path) + .optional(), + // keep this here as cli need directory + directory: z + .string() + .trim() + .default("/") + .transform(prefixWithSlash) // Transformations get skipped if directory is undefined + .transform(removeTrailingSlash) + .describe(FOLDERS.DELETE.directory) + .optional() + }), + response: { + 200: z.object({ + folder: SecretFoldersSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const path = req.body.path || req.body.directory || "/"; + const folder = await server.services.folder.deleteFolder({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body, + projectId: req.body.workspaceId, + idOrName: req.params.folderIdOrName, + path + }); + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.body.workspaceId, + event: { + type: EventType.DELETE_FOLDER, + metadata: { + environment: req.body.environment, + folderId: folder.id, + folderPath: path, + folderName: folder.name + } + } + }); + return { folder }; + } + }); + + server.route({ + method: "GET", + url: "/", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + description: "Get folders", + security: [ + { + bearerAuth: [] + } + ], + querystring: z.object({ + workspaceId: z.string().trim().describe(FOLDERS.LIST.projectId), + environment: z.string().trim().describe(FOLDERS.LIST.environment), + lastSecretModified: z.string().datetime().trim().optional().describe(FOLDERS.LIST.lastSecretModified), + path: z + .string() + .trim() + .transform(prefixWithSlash) // Transformations get skipped if path is undefined + .transform(removeTrailingSlash) + .describe(FOLDERS.LIST.path) + .optional(), + // backward compatibility with cli + directory: z + .string() + .trim() + .transform(prefixWithSlash) // Transformations get skipped if directory is undefined + .transform(removeTrailingSlash) + .describe(FOLDERS.LIST.directory) + .optional(), + recursive: booleanSchema.default(false).describe(FOLDERS.LIST.recursive) + }), + response: { + 200: z.object({ + folders: SecretFoldersSchema.extend({ + relativePath: z.string().optional() + }).array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const path = req.query.path || req.query.directory || "/"; + const folders = await server.services.folder.getFolders({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.query, + projectId: req.query.workspaceId, + path + }); + return { folders }; + } + }); + + server.route({ + method: "GET", + url: "/:id", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + description: "Get folder by id", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + id: z.string().trim().describe(FOLDERS.GET_BY_ID.folderId) + }), + response: { + 200: z.object({ + folder: SecretFoldersSchema.extend({ + environment: z.object({ + envId: z.string(), + envName: z.string(), + envSlug: z.string() + }), + path: z.string(), + projectId: z.string() + }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const folder = await server.services.folder.getFolderById({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + id: req.params.id + }); + return { folder }; + } + }); +}; diff --git a/backend/src/server/routes/v1/deprecated-secret-import-router.ts b/backend/src/server/routes/v1/deprecated-secret-import-router.ts new file mode 100644 index 000000000..2fdbe4216 --- /dev/null +++ b/backend/src/server/routes/v1/deprecated-secret-import-router.ts @@ -0,0 +1,472 @@ +import { z } from "zod"; + +import { SecretImportsSchema, SecretsSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { ApiDocsTags, SECRET_IMPORTS } from "@app/lib/api-docs"; +import { removeTrailingSlash } from "@app/lib/fn"; +import { readLimit, secretsLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; + +import { secretRawSchema } from "../sanitizedSchemas"; + +export const registerDeprecatedSecretImportRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "POST", + url: "/", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SecretImports], + description: "Create secret imports", + security: [ + { + bearerAuth: [] + } + ], + body: z.object({ + workspaceId: z.string().trim().describe(SECRET_IMPORTS.CREATE.projectId), + environment: z.string().trim().describe(SECRET_IMPORTS.CREATE.environment), + path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.CREATE.path), + import: z.object({ + environment: z.string().trim().describe(SECRET_IMPORTS.CREATE.import.environment), + path: z.string().trim().transform(removeTrailingSlash).describe(SECRET_IMPORTS.CREATE.import.path) + }), + isReplication: z.boolean().default(false).describe(SECRET_IMPORTS.CREATE.isReplication) + }), + response: { + 200: z.object({ + message: z.string(), + secretImport: SecretImportsSchema.omit({ importEnv: true }).merge( + z.object({ + importEnv: z.object({ name: z.string(), slug: z.string(), id: z.string() }) + }) + ) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretImport = await server.services.secretImport.createImport({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body, + projectId: req.body.workspaceId, + data: req.body.import + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.body.workspaceId, + event: { + type: EventType.CREATE_SECRET_IMPORT, + metadata: { + secretImportId: secretImport.id, + folderId: secretImport.folderId, + importFromSecretPath: secretImport.importPath, + importFromEnvironment: secretImport.importEnv.slug, + importToEnvironment: req.body.environment, + importToSecretPath: req.body.path + } + } + }); + return { message: "Successfully created secret import", secretImport }; + } + }); + + server.route({ + method: "PATCH", + url: "/:secretImportId", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SecretImports], + description: "Update secret imports", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretImportId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.secretImportId) + }), + body: z.object({ + workspaceId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.projectId), + environment: z.string().trim().describe(SECRET_IMPORTS.UPDATE.environment), + path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.UPDATE.path), + import: z.object({ + environment: z.string().trim().optional().describe(SECRET_IMPORTS.UPDATE.import.environment), + path: z + .string() + .trim() + .optional() + .transform((val) => (val ? removeTrailingSlash(val) : val)) + .describe(SECRET_IMPORTS.UPDATE.import.path), + position: z.number().optional().describe(SECRET_IMPORTS.UPDATE.import.position) + }) + }), + response: { + 200: z.object({ + message: z.string(), + secretImport: SecretImportsSchema.omit({ importEnv: true }).merge( + z.object({ + importEnv: z.object({ name: z.string(), slug: z.string(), id: z.string() }) + }) + ) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretImport = await server.services.secretImport.updateImport({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + id: req.params.secretImportId, + ...req.body, + projectId: req.body.workspaceId, + data: req.body.import + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.body.workspaceId, + event: { + type: EventType.UPDATE_SECRET_IMPORT, + metadata: { + secretImportId: secretImport.id, + folderId: secretImport.folderId, + position: secretImport.position, + importToEnvironment: req.body.environment, + importToSecretPath: req.body.path + } + } + }); + + return { message: "Successfully updated secret import", secretImport }; + } + }); + + server.route({ + method: "DELETE", + url: "/:secretImportId", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SecretImports], + description: "Delete secret imports", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretImportId: z.string().trim().describe(SECRET_IMPORTS.DELETE.secretImportId) + }), + body: z.object({ + workspaceId: z.string().trim().describe(SECRET_IMPORTS.DELETE.projectId), + environment: z.string().trim().describe(SECRET_IMPORTS.DELETE.environment), + path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.DELETE.path) + }), + response: { + 200: z.object({ + message: z.string(), + secretImport: SecretImportsSchema.omit({ importEnv: true }).merge( + z.object({ + importEnv: z.object({ name: z.string(), slug: z.string(), id: z.string() }) + }) + ) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretImport = await server.services.secretImport.deleteImport({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + id: req.params.secretImportId, + ...req.body, + projectId: req.body.workspaceId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.body.workspaceId, + event: { + type: EventType.DELETE_SECRET_IMPORT, + metadata: { + secretImportId: secretImport.id, + folderId: secretImport.folderId, + importFromEnvironment: secretImport.importEnv.slug, + importFromSecretPath: secretImport.importPath, + importToEnvironment: req.body.environment, + importToSecretPath: req.body.path + } + } + }); + return { message: "Successfully deleted secret import", secretImport }; + } + }); + + server.route({ + method: "POST", + url: "/:secretImportId/replication-resync", + config: { + rateLimit: secretsLimit + }, + schema: { + description: "Resync secret replication of secret imports", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretImportId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.secretImportId) + }), + body: z.object({ + workspaceId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.projectId), + environment: z.string().trim().describe(SECRET_IMPORTS.UPDATE.environment), + path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.UPDATE.path) + }), + response: { + 200: z.object({ + message: z.string() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const { message } = await server.services.secretImport.resyncSecretImportReplication({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + id: req.params.secretImportId, + ...req.body, + projectId: req.body.workspaceId + }); + + return { message }; + } + }); + + server.route({ + method: "GET", + url: "/", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SecretImports], + description: "Get secret imports", + security: [ + { + bearerAuth: [] + } + ], + querystring: z.object({ + workspaceId: z.string().trim().describe(SECRET_IMPORTS.LIST.projectId), + environment: z.string().trim().describe(SECRET_IMPORTS.LIST.environment), + path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.LIST.path) + }), + response: { + 200: z.object({ + message: z.string(), + secretImports: SecretImportsSchema.omit({ importEnv: true }) + .extend({ + importEnv: z.object({ name: z.string(), slug: z.string(), id: z.string() }) + }) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretImports = await server.services.secretImport.getImports({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.query, + projectId: req.query.workspaceId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.query.workspaceId, + event: { + type: EventType.GET_SECRET_IMPORTS, + metadata: { + environment: req.query.environment, + folderId: secretImports?.[0]?.folderId, + numberOfImports: secretImports.length + } + } + }); + return { message: "Successfully fetched secret imports", secretImports }; + } + }); + + server.route({ + url: "/:secretImportId", + method: "GET", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SecretImports], + description: "Get single secret import", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretImportId: z.string().trim().describe(SECRET_IMPORTS.GET.secretImportId) + }), + response: { + 200: z.object({ + secretImport: SecretImportsSchema.omit({ importEnv: true }).extend({ + environment: z.object({ + id: z.string(), + name: z.string(), + slug: z.string() + }), + projectId: z.string(), + importEnv: z.object({ name: z.string(), slug: z.string(), id: z.string() }), + secretPath: z.string() + }) + }) + } + }, + + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretImport = await server.services.secretImport.getImportById({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + id: req.params.secretImportId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: secretImport.projectId, + event: { + type: EventType.GET_SECRET_IMPORT, + metadata: { + secretImportId: secretImport.id, + folderId: secretImport.folderId + } + } + }); + + return { secretImport }; + } + }); + + server.route({ + url: "/secrets", + method: "GET", + config: { + rateLimit: secretsLimit + }, + schema: { + querystring: z.object({ + workspaceId: z.string().trim(), + environment: z.string().trim(), + path: z.string().trim().default("/").transform(removeTrailingSlash) + }), + response: { + 200: z.object({ + secrets: z + .object({ + secretPath: z.string(), + environment: z.string(), + environmentInfo: z.object({ + id: z.string(), + name: z.string(), + slug: z.string() + }), + folderId: z.string().optional(), + secrets: SecretsSchema.omit({ secretBlindIndex: true }).array() + }) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const importedSecrets = await server.services.secretImport.getSecretsFromImports({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.query, + projectId: req.query.workspaceId + }); + return { secrets: importedSecrets }; + } + }); + + server.route({ + url: "/secrets/raw", + method: "GET", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SecretImports], + querystring: z.object({ + workspaceId: z.string().trim(), + environment: z.string().trim(), + path: z.string().trim().default("/").transform(removeTrailingSlash) + }), + response: { + 200: z.object({ + secrets: z + .object({ + secretPath: z.string(), + environment: z.string(), + environmentInfo: z.object({ + id: z.string(), + name: z.string(), + slug: z.string() + }), + folderId: z.string().optional(), + secrets: secretRawSchema.array() + }) + .array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const importedSecrets = await server.services.secretImport.getRawSecretsFromImports({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.query, + projectId: req.query.workspaceId + }); + return { secrets: importedSecrets }; + } + }); +}; diff --git a/backend/src/server/routes/v1/deprecated-secret-tag-router.ts b/backend/src/server/routes/v1/deprecated-secret-tag-router.ts new file mode 100644 index 000000000..d90475408 --- /dev/null +++ b/backend/src/server/routes/v1/deprecated-secret-tag-router.ts @@ -0,0 +1,213 @@ +import { z } from "zod"; + +import { SecretTagsSchema } from "@app/db/schemas"; +import { ApiDocsTags, SECRET_TAGS } from "@app/lib/api-docs"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { slugSchema } from "@app/server/lib/schemas"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; + +export const registerDeprecatedSecretTagRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "GET", + url: "/:projectId/tags", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + params: z.object({ + projectId: z.string().trim().describe(SECRET_TAGS.LIST.projectId) + }), + response: { + 200: z.object({ + workspaceTags: SecretTagsSchema.array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspaceTags = await server.services.secretTag.getProjectTags({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId + }); + return { workspaceTags }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/tags/:tagId", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + params: z.object({ + projectId: z.string().trim().describe(SECRET_TAGS.GET_TAG_BY_ID.projectId), + tagId: z.string().trim().describe(SECRET_TAGS.GET_TAG_BY_ID.tagId) + }), + response: { + 200: z.object({ + // akhilmhdh: for terraform backward compatiability + workspaceTag: SecretTagsSchema.extend({ name: z.string() }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspaceTag = await server.services.secretTag.getTagById({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + id: req.params.tagId + }); + return { workspaceTag }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/tags/slug/:tagSlug", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + params: z.object({ + projectId: z.string().trim().describe(SECRET_TAGS.GET_TAG_BY_SLUG.projectId), + tagSlug: z.string().trim().describe(SECRET_TAGS.GET_TAG_BY_SLUG.tagSlug) + }), + response: { + 200: z.object({ + // akhilmhdh: for terraform backward compatiability + workspaceTag: SecretTagsSchema.extend({ name: z.string() }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspaceTag = await server.services.secretTag.getTagBySlug({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + slug: req.params.tagSlug, + projectId: req.params.projectId + }); + return { workspaceTag }; + } + }); + + server.route({ + method: "POST", + url: "/:projectId/tags", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + params: z.object({ + projectId: z.string().trim().describe(SECRET_TAGS.CREATE.projectId) + }), + body: z.object({ + slug: slugSchema({ max: 64 }).describe(SECRET_TAGS.CREATE.slug), + color: z.string().trim().describe(SECRET_TAGS.CREATE.color) + }), + response: { + 200: z.object({ + workspaceTag: SecretTagsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspaceTag = await server.services.secretTag.createTag({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId, + ...req.body + }); + return { workspaceTag }; + } + }); + + server.route({ + method: "PATCH", + url: "/:projectId/tags/:tagId", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + params: z.object({ + projectId: z.string().trim().describe(SECRET_TAGS.UPDATE.projectId), + tagId: z.string().trim().describe(SECRET_TAGS.UPDATE.tagId) + }), + body: z.object({ + slug: slugSchema({ max: 64 }).describe(SECRET_TAGS.UPDATE.slug), + color: z.string().trim().describe(SECRET_TAGS.UPDATE.color) + }), + response: { + 200: z.object({ + workspaceTag: SecretTagsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspaceTag = await server.services.secretTag.updateTag({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body, + id: req.params.tagId + }); + return { workspaceTag }; + } + }); + + server.route({ + method: "DELETE", + url: "/:projectId/tags/:tagId", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Folders], + params: z.object({ + projectId: z.string().trim().describe(SECRET_TAGS.DELETE.projectId), + tagId: z.string().trim().describe(SECRET_TAGS.DELETE.tagId) + }), + response: { + 200: z.object({ + workspaceTag: SecretTagsSchema + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const workspaceTag = await server.services.secretTag.deleteTag({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + id: req.params.tagId + }); + return { workspaceTag }; + } + }); +}; diff --git a/backend/src/server/routes/v2/group-project-router.ts b/backend/src/server/routes/v1/group-project-router.ts similarity index 100% rename from backend/src/server/routes/v2/group-project-router.ts rename to backend/src/server/routes/v1/group-project-router.ts diff --git a/backend/src/server/routes/v1/identity-ldap-auth-router.ts b/backend/src/server/routes/v1/identity-ldap-auth-router.ts index 5d3612bf5..512f253e0 100644 --- a/backend/src/server/routes/v1/identity-ldap-auth-router.ts +++ b/backend/src/server/routes/v1/identity-ldap-auth-router.ts @@ -8,7 +8,7 @@ import { Authenticator } from "@fastify/passport"; import fastifySession from "@fastify/session"; -import { FastifyRequest } from "fastify"; +import { FastifyReply, FastifyRequest } from "fastify"; import { IncomingMessage } from "http"; import LdapStrategy from "passport-ldapauth"; import { z } from "zod"; @@ -135,19 +135,26 @@ export const registerIdentityLdapAuthRouter = async (server: FastifyZodProvider) }) } }, - preValidation: passport.authenticate("ldapauth", { - failWithError: true, - session: false - }) as any, + preValidation: [ + (req, res) => { + const passportAuth = (request: FastifyRequest, reply: FastifyReply) => + ( + passport.authenticate("ldapauth", { + failWithError: true, + session: false + }) as any + )(request, reply); - errorHandler: (error) => { - if (error.name === "AuthenticationError") { - throw new UnauthorizedError({ message: "Invalid credentials" }); + const { identityId, username } = req.body; + return server.services.identityLdapAuth.withLdapLockout( + { + identityId, + username + }, + () => passportAuth(req, res) + ); } - - throw error; - }, - + ], handler: async (req) => { if (!req.passportMachineIdentity?.identityId) { throw new UnauthorizedError({ message: "Invalid request. Missing identity ID or LDAP entry details." }); @@ -241,7 +248,21 @@ export const registerIdentityLdapAuthRouter = async (server: FastifyZodProvider) .int() .min(0) .default(0) - .describe(LDAP_AUTH.ATTACH.accessTokenNumUsesLimit) + .describe(LDAP_AUTH.ATTACH.accessTokenNumUsesLimit), + lockoutEnabled: z.boolean().default(true).describe(LDAP_AUTH.ATTACH.lockoutEnabled), + lockoutThreshold: z.number().min(1).max(30).default(3).describe(LDAP_AUTH.ATTACH.lockoutThreshold), + lockoutDurationSeconds: z + .number() + .min(30) + .max(86400) + .default(300) + .describe(LDAP_AUTH.ATTACH.lockoutDurationSeconds), + lockoutCounterResetSeconds: z + .number() + .min(5) + .max(3600) + .default(30) + .describe(LDAP_AUTH.ATTACH.lockoutCounterResetSeconds) }) .refine( (val) => val.accessTokenTTL <= val.accessTokenMaxTTL, @@ -291,7 +312,21 @@ export const registerIdentityLdapAuthRouter = async (server: FastifyZodProvider) .int() .min(0) .default(0) - .describe(LDAP_AUTH.ATTACH.accessTokenNumUsesLimit) + .describe(LDAP_AUTH.ATTACH.accessTokenNumUsesLimit), + lockoutEnabled: z.boolean().default(true).describe(LDAP_AUTH.ATTACH.lockoutEnabled), + lockoutThreshold: z.number().min(1).max(30).default(3).describe(LDAP_AUTH.ATTACH.lockoutThreshold), + lockoutDurationSeconds: z + .number() + .min(30) + .max(86400) + .default(300) + .describe(LDAP_AUTH.ATTACH.lockoutDurationSeconds), + lockoutCounterResetSeconds: z + .number() + .min(5) + .max(3600) + .default(30) + .describe(LDAP_AUTH.ATTACH.lockoutCounterResetSeconds) }) .refine( (val) => val.accessTokenTTL <= val.accessTokenMaxTTL, @@ -331,7 +366,11 @@ export const registerIdentityLdapAuthRouter = async (server: FastifyZodProvider) accessTokenTTL: identityLdapAuth.accessTokenTTL, accessTokenNumUsesLimit: identityLdapAuth.accessTokenNumUsesLimit, allowedFields: req.body.allowedFields, - templateId: identityLdapAuth.templateId + templateId: identityLdapAuth.templateId, + lockoutEnabled: identityLdapAuth.lockoutEnabled, + lockoutThreshold: identityLdapAuth.lockoutThreshold, + lockoutDurationSeconds: identityLdapAuth.lockoutDurationSeconds, + lockoutCounterResetSeconds: identityLdapAuth.lockoutCounterResetSeconds } } }); @@ -395,7 +434,21 @@ export const registerIdentityLdapAuthRouter = async (server: FastifyZodProvider) .max(315360000) .min(0) .optional() - .describe(LDAP_AUTH.UPDATE.accessTokenMaxTTL) + .describe(LDAP_AUTH.UPDATE.accessTokenMaxTTL), + lockoutEnabled: z.boolean().optional().describe(LDAP_AUTH.UPDATE.lockoutEnabled), + lockoutThreshold: z.number().min(1).max(30).optional().describe(LDAP_AUTH.UPDATE.lockoutThreshold), + lockoutDurationSeconds: z + .number() + .min(30) + .max(86400) + .optional() + .describe(LDAP_AUTH.UPDATE.lockoutDurationSeconds), + lockoutCounterResetSeconds: z + .number() + .min(5) + .max(3600) + .optional() + .describe(LDAP_AUTH.UPDATE.lockoutCounterResetSeconds) }) .refine( (val) => (val.accessTokenMaxTTL && val.accessTokenTTL ? val.accessTokenTTL <= val.accessTokenMaxTTL : true), @@ -434,7 +487,11 @@ export const registerIdentityLdapAuthRouter = async (server: FastifyZodProvider) accessTokenNumUsesLimit: identityLdapAuth.accessTokenNumUsesLimit, accessTokenTrustedIps: identityLdapAuth.accessTokenTrustedIps as TIdentityTrustedIp[], allowedFields: req.body.allowedFields, - templateId: identityLdapAuth.templateId + templateId: identityLdapAuth.templateId, + lockoutEnabled: identityLdapAuth.lockoutEnabled, + lockoutThreshold: identityLdapAuth.lockoutThreshold, + lockoutDurationSeconds: identityLdapAuth.lockoutDurationSeconds, + lockoutCounterResetSeconds: identityLdapAuth.lockoutCounterResetSeconds } } }); @@ -553,4 +610,53 @@ export const registerIdentityLdapAuthRouter = async (server: FastifyZodProvider) return { identityLdapAuth }; } }); + + server.route({ + method: "POST", + url: "/ldap-auth/identities/:identityId/clear-lockouts", + config: { + rateLimit: writeLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + hide: false, + tags: [ApiDocsTags.LdapAuth], + description: "Clear LDAP Auth Lockouts for identity", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + identityId: z.string().describe(LDAP_AUTH.CLEAR_CLIENT_LOCKOUTS.identityId) + }), + response: { + 200: z.object({ + deleted: z.number() + }) + } + }, + handler: async (req) => { + const clearLockoutsData = await server.services.identityLdapAuth.clearLdapAuthLockouts({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + identityId: req.params.identityId + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: clearLockoutsData.orgId, + event: { + type: EventType.CLEAR_IDENTITY_LDAP_AUTH_LOCKOUTS, + metadata: { + identityId: clearLockoutsData.identityId + } + } + }); + + return clearLockoutsData; + } + }); }; diff --git a/backend/src/server/routes/v2/identity-project-router.ts b/backend/src/server/routes/v1/identity-project-router.ts similarity index 100% rename from backend/src/server/routes/v2/identity-project-router.ts rename to backend/src/server/routes/v1/identity-project-router.ts diff --git a/backend/src/server/routes/v1/index.ts b/backend/src/server/routes/v1/index.ts index 6108be32b..4fb07aeac 100644 --- a/backend/src/server/routes/v1/index.ts +++ b/backend/src/server/routes/v1/index.ts @@ -13,8 +13,15 @@ import { registerCaRouter } from "./certificate-authority-router"; import { CERTIFICATE_AUTHORITY_REGISTER_ROUTER_MAP } from "./certificate-authority-routers"; import { registerCertRouter } from "./certificate-router"; import { registerCertificateTemplateRouter } from "./certificate-template-router"; +import { registerDeprecatedProjectEnvRouter } from "./deprecated-project-env-router"; +import { registerDeprecatedProjectMembershipRouter } from "./deprecated-project-membership-router"; +import { registerDeprecatedProjectRouter } from "./deprecated-project-router"; +import { registerDeprecatedSecretFolderRouter } from "./deprecated-secret-folder-router"; +import { registerDeprecatedSecretImportRouter } from "./deprecated-secret-import-router"; +import { registerDeprecatedSecretTagRouter } from "./deprecated-secret-tag-router"; import { registerEventRouter } from "./event-router"; import { registerExternalGroupOrgRoleMappingRouter } from "./external-group-org-role-mapping-router"; +import { registerGroupProjectRouter } from "./group-project-router"; import { registerIdentityAccessTokenRouter } from "./identity-access-token-router"; import { registerIdentityAliCloudAuthRouter } from "./identity-alicloud-auth-router"; import { registerIdentityAwsAuthRouter } from "./identity-aws-iam-auth-router"; @@ -25,6 +32,7 @@ import { registerIdentityKubernetesRouter } from "./identity-kubernetes-auth-rou import { registerIdentityLdapAuthRouter } from "./identity-ldap-auth-router"; import { registerIdentityOciAuthRouter } from "./identity-oci-auth-router"; import { registerIdentityOidcAuthRouter } from "./identity-oidc-auth-router"; +import { registerIdentityProjectRouter } from "./identity-project-router"; import { registerIdentityRouter } from "./identity-router"; import { registerIdentityTlsCertAuthRouter } from "./identity-tls-cert-auth-router"; import { registerIdentityTokenAuthRouter } from "./identity-token-auth-router"; @@ -45,8 +53,6 @@ import { registerProjectKeyRouter } from "./project-key-router"; import { registerProjectMembershipRouter } from "./project-membership-router"; import { registerProjectRouter } from "./project-router"; import { SECRET_REMINDER_REGISTER_ROUTER_MAP } from "./reminder-routers"; -import { registerSecretFolderRouter } from "./secret-folder-router"; -import { registerSecretImportRouter } from "./secret-import-router"; import { registerSecretRequestsRouter } from "./secret-requests-router"; import { registerSecretSharingRouter } from "./secret-sharing-router"; import { registerSecretTagRouter } from "./secret-tag-router"; @@ -87,8 +93,8 @@ export const registerV1Routes = async (server: FastifyZodProvider) => { await server.register(registerNotificationRouter, { prefix: "/notifications" }); await server.register(registerInviteOrgRouter, { prefix: "/invite-org" }); await server.register(registerUserActionRouter, { prefix: "/user-action" }); - await server.register(registerSecretImportRouter, { prefix: "/secret-imports" }); - await server.register(registerSecretFolderRouter, { prefix: "/folders" }); + await server.register(registerDeprecatedSecretImportRouter, { prefix: "/secret-imports" }); + await server.register(registerDeprecatedSecretFolderRouter, { prefix: "/folders" }); await server.register( async (workflowIntegrationRouter) => { @@ -101,15 +107,28 @@ export const registerV1Routes = async (server: FastifyZodProvider) => { await server.register( async (projectRouter) => { - await projectRouter.register(registerProjectRouter); - await projectRouter.register(registerProjectEnvRouter); + await projectRouter.register(registerDeprecatedProjectRouter); + await projectRouter.register(registerDeprecatedProjectEnvRouter); + // depreciated completed in use await projectRouter.register(registerProjectKeyRouter); - await projectRouter.register(registerProjectMembershipRouter); - await projectRouter.register(registerSecretTagRouter); + await projectRouter.register(registerDeprecatedProjectMembershipRouter); + await projectRouter.register(registerDeprecatedSecretTagRouter); }, { prefix: "/workspace" } ); + await server.register( + async (projectRouter) => { + await projectRouter.register(registerProjectRouter); + await projectRouter.register(registerProjectMembershipRouter); + await projectRouter.register(registerProjectEnvRouter); + await projectRouter.register(registerSecretTagRouter); + await projectRouter.register(registerGroupProjectRouter); + await projectRouter.register(registerIdentityProjectRouter); + }, + { prefix: "/projects" } + ); + await server.register( async (pkiRouter) => { await pkiRouter.register(registerCaRouter, { prefix: "/ca" }); diff --git a/backend/src/server/routes/v1/notification-router.ts b/backend/src/server/routes/v1/notification-router.ts index 5f72b88d6..955a1174e 100644 --- a/backend/src/server/routes/v1/notification-router.ts +++ b/backend/src/server/routes/v1/notification-router.ts @@ -3,8 +3,10 @@ import { z } from "zod"; import { UserNotificationsSchema } from "@app/db/schemas/user-notifications"; import { UnauthorizedError } from "@app/lib/errors"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; +import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types"; export const registerNotificationRouter = async (server: FastifyZodProvider) => { server.route({ @@ -97,6 +99,16 @@ export const registerNotificationRouter = async (server: FastifyZodProvider) => ...req.body }); + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.NotificationUpdated, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + notificationId: req.params.notificationId, + ...req.body + } + }); + return { notification }; } }); diff --git a/backend/src/server/routes/v1/project-env-router.ts b/backend/src/server/routes/v1/project-env-router.ts index 9a136e160..81b828b55 100644 --- a/backend/src/server/routes/v1/project-env-router.ts +++ b/backend/src/server/routes/v1/project-env-router.ts @@ -11,58 +11,7 @@ import { AuthMode } from "@app/services/auth/auth-type"; export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/environments/:envId", - config: { - rateLimit: readLimit - }, - schema: { - hide: false, - tags: [ApiDocsTags.Environments], - description: "Get Environment", - security: [ - { - bearerAuth: [] - } - ], - params: z.object({ - // NOTE(daniel): workspaceId isn't used, but we need to keep it for backwards compatibility. The endpoint defined below, uses no project ID, and is takes a pure environment ID. - workspaceId: z.string().trim().describe(ENVIRONMENTS.GET.workspaceId), - envId: z.string().trim().describe(ENVIRONMENTS.GET.id) - }), - response: { - 200: z.object({ - environment: ProjectEnvironmentsSchema - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), - handler: async (req) => { - const environment = await server.services.projectEnv.getEnvironmentById({ - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId, - actorAuthMethod: req.permission.authMethod, - id: req.params.envId - }); - - await server.services.auditLog.createAuditLog({ - ...req.auditLogInfo, - projectId: environment.projectId, - event: { - type: EventType.GET_ENVIRONMENT, - metadata: { - id: environment.id - } - } - }); - - return { environment }; - } - }); - - server.route({ - method: "GET", - url: "/environments/:envId", + url: "/:projectId/environments/:envId", config: { rateLimit: readLimit }, @@ -76,7 +25,8 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - envId: z.string().trim().describe(ENVIRONMENTS.GET.id) + envId: z.string().trim().describe(ENVIRONMENTS.GET.id), + projectId: z.string().trim().describe(ENVIRONMENTS.GET.projectId) }), response: { 200: z.object({ @@ -111,7 +61,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", - url: "/:workspaceId/environments", + url: "/:projectId/environments", config: { rateLimit: writeLimit }, @@ -125,7 +75,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - workspaceId: z.string().trim().describe(ENVIRONMENTS.CREATE.workspaceId) + projectId: z.string().trim().describe(ENVIRONMENTS.CREATE.projectId) }), body: z.object({ name: z.string().trim().describe(ENVIRONMENTS.CREATE.name), @@ -135,7 +85,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { response: { 200: z.object({ message: z.string(), - workspace: z.string(), + projectId: z.string(), environment: ProjectEnvironmentsSchema }) } @@ -147,7 +97,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { actor: req.permission.type, actorOrgId: req.permission.orgId, actorAuthMethod: req.permission.authMethod, - projectId: req.params.workspaceId, + projectId: req.params.projectId, ...req.body }); @@ -164,7 +114,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { }); return { message: "Successfully created new environment", - workspace: req.params.workspaceId, + projectId: req.params.projectId, environment }; } @@ -172,7 +122,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { server.route({ method: "PATCH", - url: "/:workspaceId/environments/:id", + url: "/:projectId/environments/:id", config: { rateLimit: writeLimit }, @@ -186,7 +136,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - workspaceId: z.string().trim().describe(ENVIRONMENTS.UPDATE.workspaceId), + projectId: z.string().trim().describe(ENVIRONMENTS.UPDATE.projectId), id: z.string().trim().describe(ENVIRONMENTS.UPDATE.id) }), body: z.object({ @@ -197,7 +147,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { response: { 200: z.object({ message: z.string(), - workspace: z.string(), + projectId: z.string(), environment: ProjectEnvironmentsSchema }) } @@ -209,7 +159,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, id: req.params.id, ...req.body }); @@ -232,7 +182,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { return { message: "Successfully updated environment", - workspace: req.params.workspaceId, + projectId: req.params.projectId, environment }; } @@ -240,7 +190,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { server.route({ method: "DELETE", - url: "/:workspaceId/environments/:id", + url: "/:projectId/environments/:id", config: { rateLimit: writeLimit }, @@ -254,13 +204,13 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - workspaceId: z.string().trim().describe(ENVIRONMENTS.DELETE.workspaceId), + projectId: z.string().trim().describe(ENVIRONMENTS.DELETE.projectId), id: z.string().trim().describe(ENVIRONMENTS.DELETE.id) }), response: { 200: z.object({ message: z.string(), - workspace: z.string(), + projectId: z.string(), environment: ProjectEnvironmentsSchema }) } @@ -272,7 +222,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, id: req.params.id }); @@ -290,7 +240,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => { return { message: "Successfully deleted environment", - workspace: req.params.workspaceId, + projectId: req.params.projectId, environment }; } diff --git a/backend/src/server/routes/v1/project-membership-router.ts b/backend/src/server/routes/v1/project-membership-router.ts index cd3734efc..f3cdfe701 100644 --- a/backend/src/server/routes/v1/project-membership-router.ts +++ b/backend/src/server/routes/v1/project-membership-router.ts @@ -1,7 +1,8 @@ import { z } from "zod"; import { - OrgMembershipsSchema, + OrgMembershipRole, + ProjectMembershipRole, ProjectMembershipsSchema, ProjectUserMembershipRolesSchema, UserEncryptionKeysSchema, @@ -18,7 +19,7 @@ import { ProjectUserMembershipTemporaryMode } from "@app/services/project-member export const registerProjectMembershipRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/memberships", + url: "/:projectId/memberships", config: { rateLimit: readLimit }, @@ -32,7 +33,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIPS.workspaceId) + projectId: z.string().trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIPS.projectId) }), response: { 200: z.object({ @@ -71,7 +72,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + projectId: req.params.projectId }); return { memberships }; } @@ -79,7 +80,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider server.route({ method: "GET", - url: "/:workspaceId/memberships/:membershipId", + url: "/:projectId/memberships/:membershipId", config: { rateLimit: readLimit }, @@ -91,7 +92,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - workspaceId: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.workspaceId), + projectId: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.projectId), membershipId: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.membershipId) }), response: { @@ -129,7 +130,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, id: req.params.membershipId }); return { membership }; @@ -138,7 +139,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider server.route({ method: "POST", - url: "/:workspaceId/memberships/details", + url: "/:projectId/memberships/details", config: { rateLimit: readLimit }, @@ -152,7 +153,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - workspaceId: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.workspaceId) + projectId: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.projectId) }), body: z.object({ username: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.username) @@ -191,7 +192,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, username: req.body.username }); return { membership }; @@ -200,61 +201,83 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider server.route({ method: "POST", - url: "/:workspaceId/memberships", + url: "/:projectId/memberships", config: { rateLimit: writeLimit }, schema: { + hide: false, + tags: [ApiDocsTags.ProjectUsers], + description: "Invite members to project", + security: [ + { + bearerAuth: [] + } + ], params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().describe(PROJECT_USERS.INVITE_MEMBER.projectId) }), body: z.object({ - members: z - .object({ - orgMembershipId: z.string().trim(), - workspaceEncryptedKey: z.string().trim(), - workspaceEncryptedNonce: z.string().trim() - }) + emails: z + .string() + .email() .array() - .min(1) + .default([]) + .describe(PROJECT_USERS.INVITE_MEMBER.emails) + .refine((val) => val.every((el) => el === el.toLowerCase()), "Email must be lowercase"), + usernames: z + .string() + .array() + .default([]) + .describe(PROJECT_USERS.INVITE_MEMBER.usernames) + .refine((val) => val.every((el) => el === el.toLowerCase()), "Username must be lowercase"), + roleSlugs: z.string().array().min(1).optional().describe(PROJECT_USERS.INVITE_MEMBER.roleSlugs) }), response: { 200: z.object({ - success: z.boolean(), - data: OrgMembershipsSchema.array() + memberships: ProjectMembershipsSchema.array() }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const data = await server.services.projectMembership.addUsersToProject({ - actorId: req.permission.id, - actor: req.permission.type, + const usernamesAndEmails = [...req.body.emails, ...req.body.usernames]; + const { projectMemberships: memberships } = await server.services.org.inviteUserToOrganization({ actorAuthMethod: req.permission.authMethod, + actorId: req.permission.id, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, - members: req.body.members + actor: req.permission.type, + inviteeEmails: usernamesAndEmails, + orgId: req.permission.orgId, + organizationRoleSlug: OrgMembershipRole.NoAccess, + projects: [ + { + id: req.params.projectId, + projectRoleSlug: req.body.roleSlugs || [ProjectMembershipRole.Member] + } + ] }); await server.services.auditLog.createAuditLog({ - projectId: req.params.workspaceId, + projectId: req.params.projectId, ...req.auditLogInfo, event: { - type: EventType.ADD_BATCH_WORKSPACE_MEMBER, - metadata: data.map(({ userId }) => ({ + type: EventType.ADD_BATCH_PROJECT_MEMBER, + metadata: memberships.map(({ userId, id }) => ({ userId: userId || "", + membershipId: id, email: "" })) } }); - return { data, success: true }; + return { memberships }; } }); server.route({ method: "PATCH", - url: "/:workspaceId/memberships/:membershipId", + url: "/:projectId/memberships/:membershipId", config: { rateLimit: writeLimit }, @@ -268,7 +291,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.workspaceId), + projectId: z.string().trim().describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.projectId), membershipId: z.string().trim().describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.membershipId) }), body: z.object({ @@ -305,31 +328,87 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, membershipId: req.params.membershipId, roles: req.body.roles }); - // await server.services.auditLog.createAuditLog({ - // ...req.auditLogInfo, - // projectId: req.params.workspaceId, - // event: { - // type: EventType.UPDATE_USER_WORKSPACE_ROLE, - // metadata: { - // userId: membership.userId, - // newRole: req.body.role, - // oldRole: membership.role, - // email: "" - // } - // } - // }); return { roles }; } }); server.route({ method: "DELETE", - url: "/:workspaceId/memberships/:membershipId", + url: "/:projectId/memberships", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectUsers], + description: "Remove members from project", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().describe(PROJECT_USERS.REMOVE_MEMBER.projectId) + }), + body: z.object({ + emails: z + .string() + .email() + .array() + .default([]) + .describe(PROJECT_USERS.REMOVE_MEMBER.emails) + .refine((val) => val.every((el) => el === el.toLowerCase()), "Email must be lowercase"), + usernames: z + .string() + .array() + .default([]) + .describe(PROJECT_USERS.REMOVE_MEMBER.usernames) + .refine((val) => val.every((el) => el === el.toLowerCase()), "Username must be lowercase") + }), + response: { + 200: z.object({ + memberships: ProjectMembershipsSchema.array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const memberships = await server.services.projectMembership.deleteProjectMemberships({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId, + emails: req.body.emails, + usernames: req.body.usernames + }); + + for (const membership of memberships) { + // eslint-disable-next-line no-await-in-loop + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: req.params.projectId, + event: { + type: EventType.REMOVE_PROJECT_MEMBER, + metadata: { + userId: membership.userId, + email: "" + } + } + }); + } + return { memberships }; + } + }); + + server.route({ + method: "DELETE", + url: "/:projectId/memberships/:membershipId", config: { rateLimit: writeLimit }, @@ -341,7 +420,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), membershipId: z.string().trim() }), response: { @@ -357,15 +436,15 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, membershipId: req.params.membershipId }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { - type: EventType.REMOVE_WORKSPACE_MEMBER, + type: EventType.REMOVE_PROJECT_MEMBER, metadata: { userId: membership.userId, email: "" @@ -378,13 +457,13 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider server.route({ method: "DELETE", - url: "/:workspaceId/leave", + url: "/:projectId/leave", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: z.object({ @@ -398,7 +477,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider const membership = await server.services.projectMembership.leaveProject({ actorId: req.permission.id, actor: req.permission.type, - projectId: req.params.workspaceId + projectId: req.params.projectId }); return { membership }; } diff --git a/backend/src/server/routes/v1/project-router.ts b/backend/src/server/routes/v1/project-router.ts index 5e7dce76e..be8b46dd5 100644 --- a/backend/src/server/routes/v1/project-router.ts +++ b/backend/src/server/routes/v1/project-router.ts @@ -2,7 +2,10 @@ import slugify from "@sindresorhus/slugify"; import { z } from "zod"; import { + CertificatesSchema, IntegrationsSchema, + PkiAlertsSchema, + PkiCollectionsSchema, ProjectEnvironmentsSchema, ProjectMembershipsSchema, ProjectRolesSchema, @@ -16,18 +19,35 @@ import { } from "@app/db/schemas"; import { ProjectMicrosoftTeamsConfigsSchema } from "@app/db/schemas/project-microsoft-teams-configs"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { InfisicalProjectTemplate } from "@app/ee/services/project-template/project-template-types"; +import { sanitizedSshCa } from "@app/ee/services/ssh/ssh-certificate-authority-schema"; +import { sanitizedSshCertificate } from "@app/ee/services/ssh-certificate/ssh-certificate-schema"; +import { sanitizedSshCertificateTemplate } from "@app/ee/services/ssh-certificate-template/ssh-certificate-template-schema"; +import { loginMappingSchema, sanitizedSshHost } from "@app/ee/services/ssh-host/ssh-host-schema"; +import { LoginMappingSource } from "@app/ee/services/ssh-host/ssh-host-types"; +import { sanitizedSshHostGroup } from "@app/ee/services/ssh-host-group/ssh-host-group-schema"; import { ApiDocsTags, PROJECTS } from "@app/lib/api-docs"; import { CharacterType, characterValidator } from "@app/lib/validator/validate-string"; import { re2Validator } from "@app/lib/zod"; import { readLimit, requestAccessLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { slugSchema } from "@app/server/lib/schemas"; +import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { ActorType, AuthMode } from "@app/services/auth/auth-type"; +import { CaStatus } from "@app/services/certificate-authority/certificate-authority-enums"; +import { sanitizedCertificateTemplate } from "@app/services/certificate-template/certificate-template-schema"; import { validateMicrosoftTeamsChannelsSchema } from "@app/services/microsoft-teams/microsoft-teams-fns"; +import { sanitizedPkiSubscriber } from "@app/services/pki-subscriber/pki-subscriber-schema"; import { ProjectFilterType, SearchProjectSortBy } from "@app/services/project/project-types"; import { validateSlackChannelsField } from "@app/services/slack/slack-auth-validators"; +import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types"; import { WorkflowIntegration } from "@app/services/workflow-integration/workflow-integration-types"; -import { integrationAuthPubSchema, SanitizedProjectSchema } from "../sanitizedSchemas"; +import { + integrationAuthPubSchema, + InternalCertificateAuthorityResponseSchema, + SanitizedProjectSchema +} from "../sanitizedSchemas"; import { sanitizedServiceTokenSchema } from "../v2/service-token-router"; const projectWithEnv = SanitizedProjectSchema.merge( @@ -40,41 +60,7 @@ const projectWithEnv = SanitizedProjectSchema.merge( export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/keys", - config: { - rateLimit: readLimit - }, - schema: { - params: z.object({ - workspaceId: z.string().trim() - }), - response: { - 200: z.object({ - publicKeys: z - .object({ - publicKey: z.string().nullable().optional(), - userId: z.string() - }) - .array() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const publicKeys = await server.services.projectKey.getProjectPublicKeys({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId - }); - return { publicKeys }; - } - }); - - server.route({ - method: "GET", - url: "/:workspaceId/users", + url: "/:projectId/users", config: { rateLimit: readLimit }, @@ -96,7 +82,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { .optional() }), params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: z.object({ @@ -142,7 +128,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actor: req.permission.type, actorAuthMethod: req.permission.authMethod, includeGroupMembers: req.query.includeGroupMembers, - projectId: req.params.workspaceId, + projectId: req.params.projectId, actorOrgId: req.permission.orgId, roles }); @@ -151,6 +137,83 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { } }); + server.route({ + method: "POST", + url: "/", + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Projects], + description: "Create a new project", + security: [ + { + bearerAuth: [] + } + ], + body: z.object({ + projectName: z.string().trim().describe(PROJECTS.CREATE.projectName), + projectDescription: z.string().trim().optional().describe(PROJECTS.CREATE.projectDescription), + slug: slugSchema({ min: 5, max: 36 }).optional().describe(PROJECTS.CREATE.slug), + kmsKeyId: z.string().optional(), + template: slugSchema({ field: "Template Name", max: 64 }) + .optional() + .default(InfisicalProjectTemplate.Default) + .describe(PROJECTS.CREATE.template), + type: z.nativeEnum(ProjectType).default(ProjectType.SecretManager), + shouldCreateDefaultEnvs: z.boolean().optional().default(true) + }), + response: { + 200: z.object({ + project: projectWithEnv + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const project = await server.services.project.createProject({ + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + projectName: req.body.projectName, + projectDescription: req.body.projectDescription, + slug: req.body.slug, + kmsKeyId: req.body.kmsKeyId, + template: req.body.template, + type: req.body.type, + createDefaultEnvs: req.body.shouldCreateDefaultEnvs + }); + + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.ProjectCreated, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + orgId: project.orgId, + name: project.name, + ...req.auditLogInfo + } + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + projectId: project.id, + event: { + type: EventType.CREATE_PROJECT, + metadata: { + ...req.body, + name: req.body.projectName + } + } + }); + + return { project }; + } + }); + server.route({ method: "GET", url: "/", @@ -158,6 +221,14 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { rateLimit: readLimit }, schema: { + hide: false, + tags: [ApiDocsTags.Projects], + description: "List projects", + security: [ + { + bearerAuth: [] + } + ], querystring: z.object({ includeRoles: z .enum(["true", "false"]) @@ -167,7 +238,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaces: projectWithEnv + projects: projectWithEnv .extend({ roles: ProjectRolesSchema.array().optional() }) @@ -177,7 +248,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspaces = await server.services.project.getProjects({ + const projects = await server.services.project.getProjects({ includeRoles: req.query.includeRoles, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, @@ -185,13 +256,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorOrgId: req.permission.orgId, type: req.query.type }); - return { workspaces }; + return { projects }; } }); server.route({ method: "GET", - url: "/:workspaceId", + url: "/:projectId", config: { rateLimit: readLimit }, @@ -205,33 +276,73 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.GET.workspaceId) + projectId: z.string().trim().describe(PROJECTS.GET.projectId) }), response: { 200: z.object({ - workspace: projectWithEnv.optional() + project: projectWithEnv.optional() }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspace = await server.services.project.getAProject({ + const project = await server.services.project.getAProject({ filter: { type: ProjectFilterType.ID, - projectId: req.params.workspaceId + projectId: req.params.projectId }, actorAuthMethod: req.permission.authMethod, actorId: req.permission.id, actor: req.permission.type, actorOrgId: req.permission.orgId }); - return { workspace }; + return { project }; + } + }); + + server.route({ + method: "GET", + url: "/slug/:slug", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Projects], + description: "Get project details by slug", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + slug: slugSchema({ max: 36 }).describe("The slug of the project to get.") + }), + response: { + 200: projectWithEnv + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const project = await server.services.project.getAProject({ + filter: { + slug: req.params.slug, + orgId: req.permission.orgId, + type: ProjectFilterType.SLUG + }, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type + }); + + return project; } }); server.route({ method: "DELETE", - url: "/:workspaceId", + url: "/:projectId", config: { rateLimit: writeLimit }, @@ -245,20 +356,20 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.DELETE.workspaceId) + projectId: z.string().trim().describe(PROJECTS.DELETE.projectId) }), response: { 200: z.object({ - workspace: SanitizedProjectSchema.optional() + project: SanitizedProjectSchema.optional() }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspace = await server.services.project.deleteProject({ + const project = await server.services.project.deleteProject({ filter: { type: ProjectFilterType.ID, - projectId: req.params.workspaceId + projectId: req.params.projectId }, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, @@ -269,68 +380,20 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { type: EventType.DELETE_PROJECT, - metadata: workspace + metadata: project } }); - return { workspace }; - } - }); - - server.route({ - url: "/:workspaceId/name", - method: "POST", - config: { - rateLimit: writeLimit - }, - schema: { - params: z.object({ - workspaceId: z.string().trim() - }), - body: z.object({ - name: z.string().trim() - }), - response: { - 200: z.object({ - message: z.string(), - workspace: SanitizedProjectSchema - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const workspace = await server.services.project.updateName({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, - name: req.body.name - }); - - await server.services.auditLog.createAuditLog({ - ...req.auditLogInfo, - orgId: req.permission.orgId, - projectId: req.params.workspaceId, - event: { - type: EventType.UPDATE_PROJECT, - metadata: req.body - } - }); - - return { - message: "Successfully changed workspace name", - workspace - }; + return { project }; } }); server.route({ method: "PATCH", - url: "/:workspaceId", + url: "/:projectId", config: { rateLimit: writeLimit }, @@ -344,7 +407,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.UPDATE.workspaceId) + projectId: z.string().trim().describe(PROJECTS.UPDATE.projectId) }), body: z.object({ name: z @@ -373,35 +436,35 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { .describe(PROJECTS.UPDATE.slug), secretSharing: z.boolean().optional().describe(PROJECTS.UPDATE.secretSharing), showSnapshotsLegacy: z.boolean().optional().describe(PROJECTS.UPDATE.showSnapshotsLegacy), - defaultProduct: z.nativeEnum(ProjectType).optional().describe(PROJECTS.UPDATE.defaultProduct), secretDetectionIgnoreValues: z .array(z.string()) .optional() - .describe(PROJECTS.UPDATE.secretDetectionIgnoreValues) + .describe(PROJECTS.UPDATE.secretDetectionIgnoreValues), + pitVersionLimit: z.number().min(1).max(100).optional() }), response: { 200: z.object({ - workspace: SanitizedProjectSchema + project: SanitizedProjectSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspace = await server.services.project.updateProject({ + const project = await server.services.project.updateProject({ filter: { type: ProjectFilterType.ID, - projectId: req.params.workspaceId + projectId: req.params.projectId }, update: { name: req.body.name, description: req.body.description, autoCapitalization: req.body.autoCapitalization, - defaultProduct: req.body.defaultProduct, hasDeleteProtection: req.body.hasDeleteProtection, slug: req.body.slug, secretSharing: req.body.secretSharing, showSnapshotsLegacy: req.body.showSnapshotsLegacy, - secretDetectionIgnoreValues: req.body.secretDetectionIgnoreValues + secretDetectionIgnoreValues: req.body.secretDetectionIgnoreValues, + pitVersionLimit: req.body.pitVersionLimit }, actorAuthMethod: req.permission.authMethod, actorId: req.permission.id, @@ -412,7 +475,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { type: EventType.UPDATE_PROJECT, metadata: req.body @@ -420,164 +483,20 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { }); return { - workspace - }; - } - }); - - server.route({ - method: "POST", - url: "/:workspaceId/auto-capitalization", - config: { - rateLimit: writeLimit - }, - schema: { - params: z.object({ - workspaceId: z.string().trim() - }), - body: z.object({ - autoCapitalization: z.boolean() - }), - response: { - 200: z.object({ - message: z.string(), - workspace: SanitizedProjectSchema - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const workspace = await server.services.project.toggleAutoCapitalization({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, - autoCapitalization: req.body.autoCapitalization - }); - - await server.services.auditLog.createAuditLog({ - ...req.auditLogInfo, - orgId: req.permission.orgId, - projectId: req.params.workspaceId, - event: { - type: EventType.UPDATE_PROJECT, - metadata: req.body - } - }); - - return { - message: "Successfully changed workspace settings", - workspace - }; - } - }); - - server.route({ - method: "POST", - url: "/:workspaceId/delete-protection", - config: { - rateLimit: writeLimit - }, - schema: { - params: z.object({ - workspaceId: z.string().trim() - }), - body: z.object({ - hasDeleteProtection: z.boolean() - }), - response: { - 200: z.object({ - message: z.string(), - workspace: SanitizedProjectSchema - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const workspace = await server.services.project.toggleDeleteProtection({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, - hasDeleteProtection: req.body.hasDeleteProtection - }); - - await server.services.auditLog.createAuditLog({ - ...req.auditLogInfo, - orgId: req.permission.orgId, - projectId: req.params.workspaceId, - event: { - type: EventType.UPDATE_PROJECT, - metadata: req.body - } - }); - - return { - message: "Successfully changed workspace settings", - workspace + project }; } }); server.route({ method: "PUT", - url: "/:workspaceSlug/version-limit", + url: "/:projectId/audit-logs-retention", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceSlug: z.string().trim() - }), - body: z.object({ - pitVersionLimit: z.number().min(1).max(100) - }), - response: { - 200: z.object({ - message: z.string(), - workspace: SanitizedProjectSchema - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const workspace = await server.services.project.updateVersionLimit({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - pitVersionLimit: req.body.pitVersionLimit, - workspaceSlug: req.params.workspaceSlug - }); - - await server.services.auditLog.createAuditLog({ - ...req.auditLogInfo, - orgId: req.permission.orgId, - projectId: workspace.id, - event: { - type: EventType.UPDATE_PROJECT, - metadata: req.body - } - }); - - return { - message: "Successfully changed workspace version limit", - workspace - }; - } - }); - - server.route({ - method: "PUT", - url: "/:workspaceSlug/audit-logs-retention", - config: { - rateLimit: writeLimit - }, - schema: { - params: z.object({ - workspaceSlug: z.string().trim() + projectId: z.string().trim() }), body: z.object({ auditLogsRetentionDays: z.number().min(0) @@ -585,25 +504,28 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { response: { 200: z.object({ message: z.string(), - workspace: SanitizedProjectSchema + project: SanitizedProjectSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspace = await server.services.project.updateAuditLogsRetention({ + const project = await server.services.project.updateAuditLogsRetention({ actorId: req.permission.id, actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - workspaceSlug: req.params.workspaceSlug, - auditLogsRetentionDays: req.body.auditLogsRetentionDays + auditLogsRetentionDays: req.body.auditLogsRetentionDays, + filter: { + projectId: req.params.projectId, + type: ProjectFilterType.ID + } }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, orgId: req.permission.orgId, - projectId: workspace.id, + projectId: project.id, event: { type: EventType.UPDATE_PROJECT, metadata: req.body @@ -612,14 +534,14 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { return { message: "Successfully updated project's audit logs retention period", - workspace + project }; } }); server.route({ method: "GET", - url: "/:workspaceId/integrations", + url: "/:projectId/integrations", config: { rateLimit: readLimit }, @@ -633,7 +555,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.LIST_INTEGRATION.workspaceId) + projectId: z.string().trim().describe(PROJECTS.LIST_INTEGRATION.projectId) }), response: { 200: z.object({ @@ -656,7 +578,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + projectId: req.params.projectId }); return { integrations }; } @@ -664,21 +586,21 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/authorizations", + url: "/:projectId/authorizations", config: { rateLimit: readLimit }, schema: { hide: false, tags: [ApiDocsTags.Integrations], - description: "List integration auth objects for a workspace.", + description: "List integration auth objects for a project.", security: [ { bearerAuth: [] } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.LIST_INTEGRATION_AUTHORIZATION.workspaceId) + projectId: z.string().trim().describe(PROJECTS.LIST_INTEGRATION_AUTHORIZATION.projectId) }), response: { 200: z.object({ @@ -693,7 +615,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + projectId: req.params.projectId }); return { authorizations }; } @@ -701,13 +623,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/service-token-data", + url: "/:projectId/service-token-data", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: z.object({ @@ -722,7 +644,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + projectId: req.params.projectId }); return { serviceTokenData }; } @@ -730,13 +652,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/ssh-config", + url: "/:projectId/ssh-config", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: ProjectSshConfigsSchema.pick({ @@ -756,7 +678,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId + projectId: req.params.projectId }); await server.services.auditLog.createAuditLog({ @@ -777,13 +699,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "PATCH", - url: "/:workspaceId/ssh-config", + url: "/:projectId/ssh-config", config: { rateLimit: writeLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), body: z.object({ defaultUserSshCaId: z.string().optional(), @@ -807,7 +729,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, ...req.body }); @@ -831,13 +753,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/workflow-integration-config/:integration", + url: "/:projectId/workflow-integration-config/:integration", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), integration: z.nativeEnum(WorkflowIntegration) }), response: { @@ -876,13 +798,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, integration: req.params.integration }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { type: EventType.GET_PROJECT_WORKFLOW_INTEGRATION_CONFIG, metadata: { @@ -936,15 +858,14 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "PUT", - url: "/:workspaceId/workflow-integration", + url: "/:projectId/workflow-integration", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), - body: z.discriminatedUnion("integration", [ z.object({ integration: z.literal(WorkflowIntegration.SLACK), @@ -999,13 +920,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - projectId: req.params.workspaceId, + projectId: req.params.projectId, ...req.body }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { type: EventType.UPDATE_PROJECT_WORKFLOW_INTEGRATION_CONFIG, metadata: { @@ -1026,13 +947,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/:workspaceId/environment-folder-tree", + url: "/:projectId/environment-folder-tree", config: { rateLimit: readLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), response: { 200: z.record( @@ -1043,7 +964,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { const environmentsFolders = await server.services.folder.getProjectEnvironmentsFolders( - req.params.workspaceId, + req.params.projectId, req.permission ); @@ -1064,6 +985,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { type: z.nativeEnum(ProjectType).optional(), orderBy: z.nativeEnum(SearchProjectSortBy).optional().default(SearchProjectSortBy.NAME), orderDirection: z.nativeEnum(SortDirection).optional().default(SortDirection.ASC), + projectIds: z.string().trim().array().optional(), name: z .string() .trim() @@ -1092,13 +1014,13 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", - url: "/:workspaceId/project-access", + url: "/:projectId/project-access", config: { rateLimit: requestAccessLimit }, schema: { params: z.object({ - workspaceId: z.string().trim() + projectId: z.string().trim() }), body: z.object({ comment: z @@ -1132,17 +1054,17 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { await server.services.project.requestProjectAccess({ permission: req.permission, comment: req.body.comment, - projectId: req.params.workspaceId + projectId: req.params.projectId }); if (req.auth.actor === ActorType.USER) { await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.params.workspaceId, + projectId: req.params.projectId, event: { type: EventType.PROJECT_ACCESS_REQUEST, metadata: { - projectId: req.params.workspaceId, + projectId: req.params.projectId, requesterEmail: req.auth.user.email || req.auth.user.username, requesterId: req.auth.userId } @@ -1153,4 +1075,456 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { return { message: "Project access request has been send to project admins" }; } }); + + /* Start upgrade of a project */ + server.route({ + method: "POST", + url: "/:projectId/upgrade", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({ + projectId: z.string().trim() + }), + body: z.object({ + userPrivateKey: z.string().trim() + }), + response: { + 200: z.void() + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + await server.services.project.upgradeProject({ + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + projectId: req.params.projectId, + userPrivateKey: req.body.userPrivateKey + }); + } + }); + + /* Get upgrade status of project */ + server.route({ + url: "/:projectId/upgrade/status", + method: "GET", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + projectId: z.string().trim() + }), + response: { + 200: z.object({ + status: z.string().nullable() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const status = await server.services.project.getProjectUpgradeStatus({ + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId, + actor: req.permission.type, + actorId: req.permission.id + }); + + return { status }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/cas", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.PkiCertificateAuthorities], + params: z.object({ + projectId: z.string().trim() + }), + querystring: z.object({ + status: z.enum([CaStatus.ACTIVE, CaStatus.PENDING_CERTIFICATE]).optional().describe(PROJECTS.LIST_CAS.status), + friendlyName: z.string().optional().describe(PROJECTS.LIST_CAS.friendlyName), + commonName: z.string().optional().describe(PROJECTS.LIST_CAS.commonName), + offset: z.coerce.number().min(0).max(100).default(0).describe(PROJECTS.LIST_CAS.offset), + limit: z.coerce.number().min(1).max(100).default(25).describe(PROJECTS.LIST_CAS.limit) + }), + response: { + 200: z.object({ + cas: z.array(InternalCertificateAuthorityResponseSchema) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const cas = await server.services.project.listProjectCas({ + filter: { + projectId: req.params.projectId, + type: ProjectFilterType.ID + }, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + ...req.query + }); + return { cas }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/certificates", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.PkiCertificates], + params: z.object({ + projectId: z.string().trim() + }), + querystring: z.object({ + friendlyName: z.string().optional().describe(PROJECTS.LIST_CERTIFICATES.friendlyName), + commonName: z.string().optional().describe(PROJECTS.LIST_CERTIFICATES.commonName), + offset: z.coerce.number().min(0).max(100).default(0).describe(PROJECTS.LIST_CERTIFICATES.offset), + limit: z.coerce.number().min(1).max(100).default(25).describe(PROJECTS.LIST_CERTIFICATES.limit) + }), + response: { + 200: z.object({ + certificates: z.array(CertificatesSchema), + totalCount: z.number() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { certificates, totalCount } = await server.services.project.listProjectCertificates({ + filter: { + projectId: req.params.projectId, + type: ProjectFilterType.ID + }, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + ...req.query + }); + return { certificates, totalCount }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/pki-alerts", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.PkiAlerting], + params: z.object({ + projectId: z.string().trim() + }), + response: { + 200: z.object({ + alerts: z.array(PkiAlertsSchema) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { alerts } = await server.services.project.listProjectAlerts({ + projectId: req.params.projectId, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type + }); + + return { alerts }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/pki-collections", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.PkiCertificateCollections], + params: z.object({ + projectId: z.string().trim() + }), + response: { + 200: z.object({ + collections: z.array(PkiCollectionsSchema) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { pkiCollections } = await server.services.project.listProjectPkiCollections({ + projectId: req.params.projectId, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type + }); + + return { collections: pkiCollections }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/pki-subscribers", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.PkiSubscribers], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.LIST_PKI_SUBSCRIBERS.projectId) + }), + response: { + 200: z.object({ + subscribers: z.array(sanitizedPkiSubscriber) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const subscribers = await server.services.project.listProjectPkiSubscribers({ + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + projectId: req.params.projectId + }); + + return { subscribers }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/certificate-templates", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.PkiCertificateTemplates], + params: z.object({ + projectId: z.string().trim() + }), + response: { + 200: z.object({ + certificateTemplates: sanitizedCertificateTemplate.array() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { certificateTemplates } = await server.services.project.listProjectCertificateTemplates({ + projectId: req.params.projectId, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type + }); + + return { certificateTemplates }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/ssh-certificates", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.LIST_SSH_CAS.projectId) + }), + querystring: z.object({ + offset: z.coerce.number().default(0).describe(PROJECTS.LIST_SSH_CERTIFICATES.offset), + limit: z.coerce.number().default(25).describe(PROJECTS.LIST_SSH_CERTIFICATES.limit) + }), + response: { + 200: z.object({ + certificates: z.array(sanitizedSshCertificate), + totalCount: z.number() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { certificates, totalCount } = await server.services.project.listProjectSshCertificates({ + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + projectId: req.params.projectId, + offset: req.query.offset, + limit: req.query.limit + }); + + return { certificates, totalCount }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/ssh-certificate-templates", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SshCertificateTemplates], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.LIST_SSH_CERTIFICATE_TEMPLATES.projectId) + }), + response: { + 200: z.object({ + certificateTemplates: z.array(sanitizedSshCertificateTemplate) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { certificateTemplates } = await server.services.project.listProjectSshCertificateTemplates({ + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + projectId: req.params.projectId + }); + + return { certificateTemplates }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/ssh-cas", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SshCertificateAuthorities], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.LIST_SSH_CAS.projectId) + }), + response: { + 200: z.object({ + cas: z.array(sanitizedSshCa) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const cas = await server.services.project.listProjectSshCas({ + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + projectId: req.params.projectId + }); + + return { cas }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/ssh-hosts", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SshHosts], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.LIST_SSH_HOSTS.projectId) + }), + response: { + 200: z.object({ + hosts: z.array( + sanitizedSshHost.extend({ + loginMappings: loginMappingSchema + .extend({ + source: z.nativeEnum(LoginMappingSource) + }) + .array() + }) + ) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const hosts = await server.services.project.listProjectSshHosts({ + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + projectId: req.params.projectId + }); + + return { hosts }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/ssh-host-groups", + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.SshHostGroups], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.LIST_SSH_HOST_GROUPS.projectId) + }), + response: { + 200: z.object({ + groups: z.array( + sanitizedSshHostGroup.extend({ + loginMappings: loginMappingSchema.array(), + hostCount: z.number() + }) + ) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const groups = await server.services.project.listProjectSshHostGroups({ + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type, + projectId: req.params.projectId + }); + + return { groups }; + } + }); }; diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index 01ba783fe..3c6c99eaf 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -22,20 +22,20 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaceTags: SecretTagsSchema.array() + tags: SecretTagsSchema.array() }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspaceTags = await server.services.secretTag.getProjectTags({ + const tags = await server.services.secretTag.getProjectTags({ actor: req.permission.type, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, projectId: req.params.projectId }); - return { workspaceTags }; + return { tags }; } }); @@ -55,20 +55,20 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { response: { 200: z.object({ // akhilmhdh: for terraform backward compatiability - workspaceTag: SecretTagsSchema.extend({ name: z.string() }) + tag: SecretTagsSchema.extend({ name: z.string() }) }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspaceTag = await server.services.secretTag.getTagById({ + const tag = await server.services.secretTag.getTagById({ actor: req.permission.type, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, id: req.params.tagId }); - return { workspaceTag }; + return { tag }; } }); @@ -88,13 +88,13 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { response: { 200: z.object({ // akhilmhdh: for terraform backward compatiability - workspaceTag: SecretTagsSchema.extend({ name: z.string() }) + tag: SecretTagsSchema.extend({ name: z.string() }) }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspaceTag = await server.services.secretTag.getTagBySlug({ + const tag = await server.services.secretTag.getTagBySlug({ actor: req.permission.type, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, @@ -102,7 +102,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { slug: req.params.tagSlug, projectId: req.params.projectId }); - return { workspaceTag }; + return { tag }; } }); @@ -124,13 +124,13 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaceTag: SecretTagsSchema + tag: SecretTagsSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspaceTag = await server.services.secretTag.createTag({ + const tag = await server.services.secretTag.createTag({ actor: req.permission.type, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, @@ -138,7 +138,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { projectId: req.params.projectId, ...req.body }); - return { workspaceTag }; + return { tag }; } }); @@ -161,13 +161,13 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaceTag: SecretTagsSchema + tag: SecretTagsSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspaceTag = await server.services.secretTag.updateTag({ + const tag = await server.services.secretTag.updateTag({ actor: req.permission.type, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, @@ -175,7 +175,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { ...req.body, id: req.params.tagId }); - return { workspaceTag }; + return { tag }; } }); @@ -194,20 +194,20 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaceTag: SecretTagsSchema + tag: SecretTagsSchema }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const workspaceTag = await server.services.secretTag.deleteTag({ + const tag = await server.services.secretTag.deleteTag({ actor: req.permission.type, actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, id: req.params.tagId }); - return { workspaceTag }; + return { tag }; } }); }; diff --git a/backend/src/server/routes/v1/webhook-router.ts b/backend/src/server/routes/v1/webhook-router.ts index 377af135c..386628d28 100644 --- a/backend/src/server/routes/v1/webhook-router.ts +++ b/backend/src/server/routes/v1/webhook-router.ts @@ -39,7 +39,7 @@ export const registerWebhookRouter = async (server: FastifyZodProvider) => { body: z .object({ type: z.nativeEnum(WebhookType).default(WebhookType.GENERAL), - workspaceId: z.string().trim(), + projectId: z.string().trim(), environment: z.string().trim(), webhookUrl: z.string().url().trim(), webhookSecretKey: z.string().trim().optional(), @@ -67,13 +67,12 @@ export const registerWebhookRouter = async (server: FastifyZodProvider) => { actorId: req.permission.id, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - projectId: req.body.workspaceId, ...req.body }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.body.workspaceId, + projectId: req.body.projectId, event: { type: EventType.CREATE_WEBHOOK, metadata: { @@ -216,7 +215,7 @@ export const registerWebhookRouter = async (server: FastifyZodProvider) => { onRequest: verifyAuth([AuthMode.JWT]), schema: { querystring: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), environment: z.string().trim().optional(), secretPath: z .string() @@ -238,7 +237,7 @@ export const registerWebhookRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, ...req.query, - projectId: req.query.workspaceId + projectId: req.query.projectId }); return { message: "Successfully fetched webhook", webhooks }; } diff --git a/backend/src/server/routes/v2/deprecated-group-project-router.ts b/backend/src/server/routes/v2/deprecated-group-project-router.ts new file mode 100644 index 000000000..f0e4ee705 --- /dev/null +++ b/backend/src/server/routes/v2/deprecated-group-project-router.ts @@ -0,0 +1,363 @@ +import { z } from "zod"; + +import { + GroupProjectMembershipsSchema, + GroupsSchema, + ProjectMembershipRole, + ProjectUserMembershipRolesSchema, + UsersSchema +} from "@app/db/schemas"; +import { EFilterReturnedUsers } from "@app/ee/services/group/group-types"; +import { ApiDocsTags, GROUPS, PROJECTS } from "@app/lib/api-docs"; +import { ms } from "@app/lib/ms"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; +import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; + +export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "POST", + url: "/:projectId/groups/:groupIdOrName", + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectGroups], + description: "Add group to project", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.ADD_GROUP_TO_PROJECT.projectId), + groupIdOrName: z.string().trim().describe(PROJECTS.ADD_GROUP_TO_PROJECT.groupIdOrName) + }), + body: z + .object({ + role: z + .string() + .trim() + .min(1) + .default(ProjectMembershipRole.NoAccess) + .describe(PROJECTS.ADD_GROUP_TO_PROJECT.role), + roles: z + .array( + z.union([ + z.object({ + role: z.string(), + isTemporary: z.literal(false).default(false) + }), + z.object({ + role: z.string(), + isTemporary: z.literal(true), + temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), + temporaryAccessStartTime: z.string().datetime() + }) + ]) + ) + .optional() + }) + .refine((data) => data.role || data.roles, { + message: "Either role or roles must be present", + path: ["role", "roles"] + }), + response: { + 200: z.object({ + groupMembership: GroupProjectMembershipsSchema + }) + } + }, + handler: async (req) => { + const groupMembership = await server.services.groupProject.addGroupToProject({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + roles: req.body.roles || [{ role: req.body.role }], + projectId: req.params.projectId, + groupIdOrName: req.params.groupIdOrName + }); + + return { groupMembership }; + } + }); + + server.route({ + method: "PATCH", + url: "/:projectId/groups/:groupId", + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + hide: false, + tags: [ApiDocsTags.ProjectGroups], + description: "Update group in project", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.UPDATE_GROUP_IN_PROJECT.projectId), + groupId: z.string().trim().describe(PROJECTS.UPDATE_GROUP_IN_PROJECT.groupId) + }), + body: z.object({ + roles: z + .array( + z.union([ + z.object({ + role: z.string(), + isTemporary: z.literal(false).default(false) + }), + z.object({ + role: z.string(), + isTemporary: z.literal(true), + temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), + temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), + temporaryAccessStartTime: z.string().datetime() + }) + ]) + ) + .min(1) + .describe(PROJECTS.UPDATE_GROUP_IN_PROJECT.roles) + }), + response: { + 200: z.object({ + roles: ProjectUserMembershipRolesSchema.array() + }) + } + }, + handler: async (req) => { + const roles = await server.services.groupProject.updateGroupInProject({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId, + groupId: req.params.groupId, + roles: req.body.roles + }); + + return { roles }; + } + }); + + server.route({ + method: "DELETE", + url: "/:projectId/groups/:groupId", + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: writeLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectGroups], + description: "Remove group from project", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.REMOVE_GROUP_FROM_PROJECT.projectId), + groupId: z.string().trim().describe(PROJECTS.REMOVE_GROUP_FROM_PROJECT.groupId) + }), + response: { + 200: z.object({ + groupMembership: GroupProjectMembershipsSchema + }) + } + }, + handler: async (req) => { + const groupMembership = await server.services.groupProject.removeGroupFromProject({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + groupId: req.params.groupId, + projectId: req.params.projectId + }); + + return { groupMembership }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/groups", + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectGroups], + description: "Return list of groups in project", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim().describe(PROJECTS.LIST_GROUPS_IN_PROJECT.projectId) + }), + response: { + 200: z.object({ + groupMemberships: z + .object({ + id: z.string(), + groupId: z.string(), + createdAt: z.date(), + updatedAt: z.date(), + roles: z.array( + z.object({ + id: z.string(), + role: z.string(), + customRoleId: z.string().optional().nullable(), + customRoleName: z.string().optional().nullable(), + customRoleSlug: z.string().optional().nullable(), + isTemporary: z.boolean(), + temporaryMode: z.string().optional().nullable(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional() + }) + ), + group: GroupsSchema.pick({ name: true, id: true, slug: true }) + }) + .array() + }) + } + }, + handler: async (req) => { + const groupMemberships = await server.services.groupProject.listGroupsInProject({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId + }); + + return { groupMemberships }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/groups/:groupId", + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectGroups], + description: "Return project group", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim(), + groupId: z.string().trim() + }), + response: { + 200: z.object({ + groupMembership: z.object({ + id: z.string(), + groupId: z.string(), + createdAt: z.date(), + updatedAt: z.date(), + roles: z.array( + z.object({ + id: z.string(), + role: z.string(), + customRoleId: z.string().optional().nullable(), + customRoleName: z.string().optional().nullable(), + customRoleSlug: z.string().optional().nullable(), + isTemporary: z.boolean(), + temporaryMode: z.string().optional().nullable(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional() + }) + ), + group: GroupsSchema.pick({ name: true, id: true, slug: true }) + }) + }) + } + }, + handler: async (req) => { + const groupMembership = await server.services.groupProject.getGroupInProject({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.params + }); + + return { groupMembership }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/groups/:groupId/users", + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: readLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.ProjectGroups], + description: "Return project group users", + params: z.object({ + projectId: z.string().trim().describe(GROUPS.LIST_USERS.projectId), + groupId: z.string().trim().describe(GROUPS.LIST_USERS.id) + }), + querystring: z.object({ + offset: z.coerce.number().min(0).max(100).default(0).describe(GROUPS.LIST_USERS.offset), + limit: z.coerce.number().min(1).max(100).default(10).describe(GROUPS.LIST_USERS.limit), + username: z.string().trim().optional().describe(GROUPS.LIST_USERS.username), + search: z.string().trim().optional().describe(GROUPS.LIST_USERS.search), + filter: z.nativeEnum(EFilterReturnedUsers).optional().describe(GROUPS.LIST_USERS.filterUsers) + }), + response: { + 200: z.object({ + users: UsersSchema.pick({ + email: true, + username: true, + firstName: true, + lastName: true, + id: true + }) + .merge( + z.object({ + isPartOfGroup: z.boolean(), + joinedGroupAt: z.date().nullable() + }) + ) + .array(), + totalCount: z.number() + }) + } + }, + handler: async (req) => { + const { users, totalCount } = await server.services.groupProject.listProjectGroupUsers({ + id: req.params.groupId, + projectId: req.params.projectId, + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.query + }); + + return { users, totalCount }; + } + }); +}; diff --git a/backend/src/server/routes/v2/deprecated-identity-project-router.ts b/backend/src/server/routes/v2/deprecated-identity-project-router.ts new file mode 100644 index 000000000..c16c874ae --- /dev/null +++ b/backend/src/server/routes/v2/deprecated-identity-project-router.ts @@ -0,0 +1,418 @@ +import { z } from "zod"; + +import { + IdentitiesSchema, + IdentityProjectMembershipsSchema, + ProjectMembershipRole, + ProjectUserMembershipRolesSchema +} from "@app/db/schemas"; +import { ApiDocsTags, ORGANIZATIONS, PROJECT_IDENTITIES } from "@app/lib/api-docs"; +import { BadRequestError } from "@app/lib/errors"; +import { ms } from "@app/lib/ms"; +import { OrderByDirection } from "@app/lib/types"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; +import { ProjectIdentityOrderBy } from "@app/services/identity-project/identity-project-types"; +import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; + +import { SanitizedProjectSchema } from "../sanitizedSchemas"; + +export const registerDeprecatedIdentityProjectRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "POST", + url: "/:projectId/identity-memberships/:identityId", + config: { + rateLimit: writeLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + hide: false, + tags: [ApiDocsTags.ProjectIdentities], + description: "Create project identity membership", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim(), + identityId: z.string().trim() + }), + body: z.object({ + // @depreciated + role: z.string().trim().optional().default(ProjectMembershipRole.NoAccess), + roles: z + .array( + z.union([ + z.object({ + role: z.string().describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), + isTemporary: z + .literal(false) + .default(false) + .describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role) + }), + z.object({ + role: z.string().describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), + isTemporary: z.literal(true).describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), + temporaryMode: z + .nativeEnum(ProjectUserMembershipTemporaryMode) + .describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), + temporaryRange: z + .string() + .refine((val) => ms(val) > 0, "Temporary range must be a positive number") + .describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role), + temporaryAccessStartTime: z + .string() + .datetime() + .describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.role) + }) + ]) + ) + .describe(PROJECT_IDENTITIES.CREATE_IDENTITY_MEMBERSHIP.roles.description) + .optional() + }), + response: { + 200: z.object({ + identityMembership: IdentityProjectMembershipsSchema + }) + } + }, + handler: async (req) => { + const { role, roles } = req.body; + if (!role && !roles) throw new BadRequestError({ message: "You must provide either role or roles field" }); + + const identityMembership = await server.services.identityProject.createProjectIdentity({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + identityId: req.params.identityId, + projectId: req.params.projectId, + roles: roles || [{ role }] + }); + return { identityMembership }; + } + }); + + server.route({ + method: "PATCH", + url: "/:projectId/identity-memberships/:identityId", + config: { + rateLimit: writeLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + hide: false, + tags: [ApiDocsTags.ProjectIdentities], + description: "Update project identity memberships", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim().describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.projectId), + identityId: z.string().trim().describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.identityId) + }), + body: z.object({ + roles: z + .array( + z.union([ + z.object({ + role: z.string().describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.role), + isTemporary: z + .literal(false) + .default(false) + .describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.isTemporary) + }), + z.object({ + role: z.string().describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.role), + isTemporary: z.literal(true).describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.isTemporary), + temporaryMode: z + .nativeEnum(ProjectUserMembershipTemporaryMode) + .describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.temporaryMode), + temporaryRange: z + .string() + .refine((val) => ms(val) > 0, "Temporary range must be a positive number") + .describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.temporaryRange), + temporaryAccessStartTime: z + .string() + .datetime() + .describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.temporaryAccessStartTime) + }) + ]) + ) + .min(1) + .describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.description) + }), + response: { + 200: z.object({ + roles: ProjectUserMembershipRolesSchema.array() + }) + } + }, + handler: async (req) => { + const roles = await server.services.identityProject.updateProjectIdentity({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + identityId: req.params.identityId, + projectId: req.params.projectId, + roles: req.body.roles + }); + return { roles }; + } + }); + + server.route({ + method: "DELETE", + url: "/:projectId/identity-memberships/:identityId", + config: { + rateLimit: writeLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + hide: false, + tags: [ApiDocsTags.ProjectIdentities], + description: "Delete project identity memberships", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim().describe(PROJECT_IDENTITIES.DELETE_IDENTITY_MEMBERSHIP.projectId), + identityId: z.string().trim().describe(PROJECT_IDENTITIES.DELETE_IDENTITY_MEMBERSHIP.identityId) + }), + response: { + 200: z.object({ + identityMembership: IdentityProjectMembershipsSchema + }) + } + }, + handler: async (req) => { + const identityMembership = await server.services.identityProject.deleteProjectIdentity({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + identityId: req.params.identityId, + projectId: req.params.projectId + }); + return { identityMembership }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/identity-memberships", + config: { + rateLimit: readLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + hide: false, + tags: [ApiDocsTags.ProjectIdentities], + description: "Return project identity memberships", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim().describe(PROJECT_IDENTITIES.LIST_IDENTITY_MEMBERSHIPS.projectId) + }), + querystring: z.object({ + offset: z.coerce + .number() + .min(0) + .default(0) + .describe(PROJECT_IDENTITIES.LIST_IDENTITY_MEMBERSHIPS.offset) + .optional(), + limit: z.coerce + .number() + .min(1) + .max(20000) // TODO: temp limit until combobox added to add identity to project modal, reduce once added + .default(100) + .describe(PROJECT_IDENTITIES.LIST_IDENTITY_MEMBERSHIPS.limit) + .optional(), + orderBy: z + .nativeEnum(ProjectIdentityOrderBy) + .default(ProjectIdentityOrderBy.Name) + .describe(ORGANIZATIONS.LIST_IDENTITY_MEMBERSHIPS.orderBy) + .optional(), + orderDirection: z + .nativeEnum(OrderByDirection) + .default(OrderByDirection.ASC) + .describe(ORGANIZATIONS.LIST_IDENTITY_MEMBERSHIPS.orderDirection) + .optional(), + search: z.string().trim().describe(PROJECT_IDENTITIES.LIST_IDENTITY_MEMBERSHIPS.search).optional() + }), + response: { + 200: z.object({ + identityMemberships: z + .object({ + id: z.string(), + identityId: z.string(), + createdAt: z.date(), + updatedAt: z.date(), + roles: z.array( + z.object({ + id: z.string(), + role: z.string(), + customRoleId: z.string().optional().nullable(), + customRoleName: z.string().optional().nullable(), + customRoleSlug: z.string().optional().nullable(), + isTemporary: z.boolean(), + temporaryMode: z.string().optional().nullable(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional() + }) + ), + identity: IdentitiesSchema.pick({ name: true, id: true }).extend({ + authMethods: z.array(z.string()) + }), + project: SanitizedProjectSchema.pick({ name: true, id: true }) + }) + .array(), + totalCount: z.number() + }) + } + }, + handler: async (req) => { + const { identityMemberships, totalCount } = await server.services.identityProject.listProjectIdentities({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId, + limit: req.query.limit, + offset: req.query.offset, + orderBy: req.query.orderBy, + orderDirection: req.query.orderDirection, + search: req.query.search + }); + + return { identityMemberships, totalCount }; + } + }); + + server.route({ + method: "GET", + url: "/:projectId/identity-memberships/:identityId", + config: { + rateLimit: readLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + hide: false, + tags: [ApiDocsTags.ProjectIdentities], + description: "Return project identity membership", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + projectId: z.string().trim().describe(PROJECT_IDENTITIES.GET_IDENTITY_MEMBERSHIP_BY_ID.projectId), + identityId: z.string().trim().describe(PROJECT_IDENTITIES.GET_IDENTITY_MEMBERSHIP_BY_ID.identityId) + }), + response: { + 200: z.object({ + identityMembership: z.object({ + id: z.string(), + identityId: z.string(), + createdAt: z.date(), + updatedAt: z.date(), + roles: z.array( + z.object({ + id: z.string(), + role: z.string(), + customRoleId: z.string().optional().nullable(), + customRoleName: z.string().optional().nullable(), + customRoleSlug: z.string().optional().nullable(), + isTemporary: z.boolean(), + temporaryMode: z.string().optional().nullable(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional() + }) + ), + identity: IdentitiesSchema.pick({ name: true, id: true }).extend({ + authMethods: z.array(z.string()) + }), + project: SanitizedProjectSchema.pick({ name: true, id: true }) + }) + }) + } + }, + handler: async (req) => { + const identityMembership = await server.services.identityProject.getProjectIdentityByIdentityId({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId: req.params.projectId, + identityId: req.params.identityId + }); + return { identityMembership }; + } + }); + + server.route({ + method: "GET", + url: "/identity-memberships/:identityMembershipId", + config: { + rateLimit: readLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + hide: false, + tags: [ApiDocsTags.ProjectIdentities], + params: z.object({ + identityMembershipId: z.string().trim() + }), + response: { + 200: z.object({ + identityMembership: z.object({ + id: z.string(), + identityId: z.string(), + createdAt: z.date(), + updatedAt: z.date(), + roles: z.array( + z.object({ + id: z.string(), + role: z.string(), + customRoleId: z.string().optional().nullable(), + customRoleName: z.string().optional().nullable(), + customRoleSlug: z.string().optional().nullable(), + isTemporary: z.boolean(), + temporaryMode: z.string().optional().nullable(), + temporaryRange: z.string().nullable().optional(), + temporaryAccessStartTime: z.date().nullable().optional(), + temporaryAccessEndTime: z.date().nullable().optional() + }) + ), + identity: IdentitiesSchema.pick({ name: true, id: true }).extend({ + authMethods: z.array(z.string()) + }), + project: SanitizedProjectSchema.pick({ name: true, id: true }) + }) + }) + } + }, + handler: async (req) => { + const identityMembership = await server.services.identityProject.getProjectIdentityByMembershipId({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + identityMembershipId: req.params.identityMembershipId + }); + return { identityMembership }; + } + }); +}; diff --git a/backend/src/server/routes/v2/project-membership-router.ts b/backend/src/server/routes/v2/deprecated-project-membership-router.ts similarity index 96% rename from backend/src/server/routes/v2/project-membership-router.ts rename to backend/src/server/routes/v2/deprecated-project-membership-router.ts index 76f1e9c5e..d88d2f996 100644 --- a/backend/src/server/routes/v2/project-membership-router.ts +++ b/backend/src/server/routes/v2/deprecated-project-membership-router.ts @@ -7,7 +7,7 @@ import { writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; -export const registerProjectMembershipRouter = async (server: FastifyZodProvider) => { +export const registerDeprecatedProjectMembershipRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", url: "/:projectId/memberships", @@ -71,7 +71,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider projectId: req.params.projectId, ...req.auditLogInfo, event: { - type: EventType.ADD_BATCH_WORKSPACE_MEMBER, + type: EventType.ADD_BATCH_PROJECT_MEMBER, metadata: memberships.map(({ userId, id }) => ({ userId: userId || "", membershipId: id, @@ -141,7 +141,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider ...req.auditLogInfo, projectId: req.params.projectId, event: { - type: EventType.REMOVE_WORKSPACE_MEMBER, + type: EventType.REMOVE_PROJECT_MEMBER, metadata: { userId: membership.userId, email: "" diff --git a/backend/src/server/routes/v2/project-router.ts b/backend/src/server/routes/v2/deprecated-project-router.ts similarity index 92% rename from backend/src/server/routes/v2/project-router.ts rename to backend/src/server/routes/v2/deprecated-project-router.ts index 8b9091364..7c1045855 100644 --- a/backend/src/server/routes/v2/project-router.ts +++ b/backend/src/server/routes/v2/deprecated-project-router.ts @@ -35,7 +35,8 @@ const projectWithEnv = SanitizedProjectSchema.extend({ kmsSecretManagerKeyId: z.string().nullable().optional() }); -export const registerProjectRouter = async (server: FastifyZodProvider) => { +export const registerDeprecatedProjectRouter = async (server: FastifyZodProvider) => { + // depreciated /* Get project key */ server.route({ method: "GET", @@ -46,7 +47,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { schema: { description: "Return encrypted project key", params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.GET_KEY.workspaceId) + workspaceId: z.string().trim().describe(PROJECTS.GET_KEY.projectId) }), response: { 200: ProjectKeysSchema.merge( @@ -72,7 +73,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { ...req.auditLogInfo, projectId: req.params.workspaceId, event: { - type: EventType.GET_WORKSPACE_KEY, + type: EventType.GET_PROJECT_KEY, metadata: { keyId: key?.id as string } @@ -83,68 +84,6 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { } }); - /* Start upgrade of a project */ - server.route({ - method: "POST", - url: "/:projectId/upgrade", - config: { - rateLimit: writeLimit - }, - schema: { - params: z.object({ - projectId: z.string().trim() - }), - body: z.object({ - userPrivateKey: z.string().trim() - }), - response: { - 200: z.void() - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - await server.services.project.upgradeProject({ - actorId: req.permission.id, - actorOrgId: req.permission.orgId, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - projectId: req.params.projectId, - userPrivateKey: req.body.userPrivateKey - }); - } - }); - - /* Get upgrade status of project */ - server.route({ - url: "/:projectId/upgrade/status", - method: "GET", - config: { - rateLimit: readLimit - }, - schema: { - params: z.object({ - projectId: z.string().trim() - }), - response: { - 200: z.object({ - status: z.string().nullable() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const status = await server.services.project.getProjectUpgradeStatus({ - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: req.params.projectId, - actor: req.permission.type, - actorId: req.permission.id - }); - - return { status }; - } - }); - /* Create new project */ server.route({ method: "POST", @@ -186,8 +125,8 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { actor: req.permission.type, actorOrgId: req.permission.orgId, actorAuthMethod: req.permission.authMethod, - workspaceName: req.body.projectName, - workspaceDescription: req.body.projectDescription, + projectName: req.body.projectName, + projectDescription: req.body.projectDescription, slug: req.body.slug, kmsKeyId: req.body.kmsKeyId, template: req.body.template, @@ -224,6 +163,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { }); /* Delete a project by slug */ + // moved to DELETE /v1/projects/slug/:slug server.route({ method: "DELETE", url: "/:slug", @@ -276,6 +216,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { }); /* Get a project by slug */ + // moved to GET /v1/projects/slug/:slug server.route({ method: "GET", url: "/:slug", @@ -337,7 +278,6 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { 200: SanitizedProjectSchema } }, - onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { const project = await server.services.project.updateProject({ diff --git a/backend/src/server/routes/v2/index.ts b/backend/src/server/routes/v2/index.ts index 93c422d15..aade29bb7 100644 --- a/backend/src/server/routes/v2/index.ts +++ b/backend/src/server/routes/v2/index.ts @@ -1,13 +1,15 @@ import { registerCaRouter } from "./certificate-authority-router"; -import { registerGroupProjectRouter } from "./group-project-router"; +import { registerDeprecatedGroupProjectRouter } from "./deprecated-group-project-router"; +import { registerDeprecatedIdentityProjectRouter } from "./deprecated-identity-project-router"; +import { registerDeprecatedProjectMembershipRouter } from "./deprecated-project-membership-router"; +import { registerDeprecatedProjectRouter } from "./deprecated-project-router"; import { registerIdentityOrgRouter } from "./identity-org-router"; -import { registerIdentityProjectRouter } from "./identity-project-router"; import { registerMfaRouter } from "./mfa-router"; import { registerOrgRouter } from "./organization-router"; import { registerPasswordRouter } from "./password-router"; import { registerPkiTemplatesRouter } from "./pki-templates-router"; -import { registerProjectMembershipRouter } from "./project-membership-router"; -import { registerProjectRouter } from "./project-router"; +import { registerSecretFolderRouter } from "./secret-folder-router"; +import { registerSecretImportRouter } from "./secret-import-router"; import { registerServiceTokenRouter } from "./service-token-router"; import { registerUserRouter } from "./user-router"; @@ -32,12 +34,17 @@ export const registerV2Routes = async (server: FastifyZodProvider) => { }, { prefix: "/organizations" } ); + + await server.register(registerSecretFolderRouter, { prefix: "/folders" }); + await server.register(registerSecretImportRouter, { prefix: "/secret-imports" }); + + // moved to v1/projects await server.register( async (projectServer) => { - await projectServer.register(registerProjectRouter); - await projectServer.register(registerIdentityProjectRouter); - await projectServer.register(registerGroupProjectRouter); - await projectServer.register(registerProjectMembershipRouter); + await projectServer.register(registerDeprecatedProjectRouter); + await projectServer.register(registerDeprecatedIdentityProjectRouter); + await projectServer.register(registerDeprecatedGroupProjectRouter); + await projectServer.register(registerDeprecatedProjectMembershipRouter); }, { prefix: "/workspace" } ); diff --git a/backend/src/server/routes/v1/secret-folder-router.ts b/backend/src/server/routes/v2/secret-folder-router.ts similarity index 80% rename from backend/src/server/routes/v1/secret-folder-router.ts rename to backend/src/server/routes/v2/secret-folder-router.ts index 871259147..0bf062452 100644 --- a/backend/src/server/routes/v1/secret-folder-router.ts +++ b/backend/src/server/routes/v2/secret-folder-router.ts @@ -28,7 +28,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => } ], body: z.object({ - workspaceId: z.string().trim().describe(FOLDERS.CREATE.workspaceId), + projectId: z.string().trim().describe(FOLDERS.CREATE.projectId), environment: z.string().trim().describe(FOLDERS.CREATE.environment), name: z .string() @@ -43,17 +43,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => .default("/") .transform(prefixWithSlash) // Transformations get skipped if path is undefined .transform(removeTrailingSlash) - .describe(FOLDERS.CREATE.path) - .optional(), - // backward compatibility with cli - directory: z - .string() - .trim() - .default("/") - .transform(prefixWithSlash) // Transformations get skipped if directory is undefined - .transform(removeTrailingSlash) - .describe(FOLDERS.CREATE.directory) - .optional(), + .describe(FOLDERS.CREATE.path), description: z.string().optional().nullable().describe(FOLDERS.CREATE.description) }), response: { @@ -66,27 +56,24 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const path = req.body.path || req.body.directory || "/"; const folder = await server.services.folder.createFolder({ actorId: req.permission.id, actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, ...req.body, - projectId: req.body.workspaceId, - path, description: req.body.description }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.body.workspaceId, + projectId: req.body.projectId, event: { type: EventType.CREATE_FOLDER, metadata: { environment: req.body.environment, folderId: folder.id, folderName: folder.name, - folderPath: path, + folderPath: req.body.path, ...(req.body.description ? { description: req.body.description } : {}) } } @@ -115,7 +102,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => folderId: z.string().describe(FOLDERS.UPDATE.folderId) }), body: z.object({ - workspaceId: z.string().trim().describe(FOLDERS.UPDATE.workspaceId), + projectId: z.string().trim().describe(FOLDERS.UPDATE.projectId), environment: z.string().trim().describe(FOLDERS.UPDATE.environment), name: z .string() @@ -130,17 +117,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => .default("/") .transform(prefixWithSlash) // Transformations get skipped if path is undefined .transform(removeTrailingSlash) - .describe(FOLDERS.UPDATE.path) - .optional(), - // backward compatibility with cli - directory: z - .string() - .trim() - .default("/") - .transform(prefixWithSlash) // Transformations get skipped if directory is undefined - .transform(removeTrailingSlash) - .describe(FOLDERS.UPDATE.directory) - .optional(), + .describe(FOLDERS.UPDATE.path), description: z.string().optional().nullable().describe(FOLDERS.UPDATE.description) }), response: { @@ -153,26 +130,23 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const path = req.body.path || req.body.directory || "/"; const { folder, old } = await server.services.folder.updateFolder({ actorId: req.permission.id, actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, ...req.body, - projectId: req.body.workspaceId, - id: req.params.folderId, - path + id: req.params.folderId }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.body.workspaceId, + projectId: req.body.projectId, event: { type: EventType.UPDATE_FOLDER, metadata: { environment: req.body.environment, folderId: folder.id, - folderPath: path, + folderPath: req.body.path, newFolderName: folder.name, oldFolderName: old.name } @@ -198,7 +172,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => } ], body: z.object({ - projectSlug: z.string().trim().describe(FOLDERS.UPDATE.projectSlug), + projectId: z.string().trim().describe(FOLDERS.UPDATE.projectId), folders: z .object({ id: z.string().describe(FOLDERS.UPDATE.folderId), @@ -281,7 +255,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => folderIdOrName: z.string().describe(FOLDERS.DELETE.folderIdOrName) }), body: z.object({ - workspaceId: z.string().trim().describe(FOLDERS.DELETE.workspaceId), + projectId: z.string().trim().describe(FOLDERS.DELETE.projectId), environment: z.string().trim().describe(FOLDERS.DELETE.environment), path: z .string() @@ -290,16 +264,6 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => .transform(prefixWithSlash) // Transformations get skipped if path is undefined .transform(removeTrailingSlash) .describe(FOLDERS.DELETE.path) - .optional(), - // keep this here as cli need directory - directory: z - .string() - .trim() - .default("/") - .transform(prefixWithSlash) // Transformations get skipped if directory is undefined - .transform(removeTrailingSlash) - .describe(FOLDERS.DELETE.directory) - .optional() }), response: { 200: z.object({ @@ -309,26 +273,23 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const path = req.body.path || req.body.directory || "/"; const folder = await server.services.folder.deleteFolder({ actorId: req.permission.id, actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, ...req.body, - projectId: req.body.workspaceId, - idOrName: req.params.folderIdOrName, - path + idOrName: req.params.folderIdOrName }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.body.workspaceId, + projectId: req.body.projectId, event: { type: EventType.DELETE_FOLDER, metadata: { environment: req.body.environment, folderId: folder.id, - folderPath: path, + folderPath: req.body.path, folderName: folder.name } } @@ -353,7 +314,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => } ], querystring: z.object({ - workspaceId: z.string().trim().describe(FOLDERS.LIST.workspaceId), + projectId: z.string().trim().describe(FOLDERS.LIST.projectId), environment: z.string().trim().describe(FOLDERS.LIST.environment), lastSecretModified: z.string().datetime().trim().optional().describe(FOLDERS.LIST.lastSecretModified), path: z @@ -361,16 +322,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => .trim() .transform(prefixWithSlash) // Transformations get skipped if path is undefined .transform(removeTrailingSlash) - .describe(FOLDERS.LIST.path) - .optional(), - // backward compatibility with cli - directory: z - .string() - .trim() - .transform(prefixWithSlash) // Transformations get skipped if directory is undefined - .transform(removeTrailingSlash) - .describe(FOLDERS.LIST.directory) - .optional(), + .describe(FOLDERS.LIST.path), recursive: booleanSchema.default(false).describe(FOLDERS.LIST.recursive) }), response: { @@ -383,15 +335,12 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) => }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), handler: async (req) => { - const path = req.query.path || req.query.directory || "/"; const folders = await server.services.folder.getFolders({ actorId: req.permission.id, actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - ...req.query, - projectId: req.query.workspaceId, - path + ...req.query }); return { folders }; } diff --git a/backend/src/server/routes/v1/secret-import-router.ts b/backend/src/server/routes/v2/secret-import-router.ts similarity index 85% rename from backend/src/server/routes/v1/secret-import-router.ts rename to backend/src/server/routes/v2/secret-import-router.ts index fca11f8a0..d9802c4b3 100644 --- a/backend/src/server/routes/v1/secret-import-router.ts +++ b/backend/src/server/routes/v2/secret-import-router.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { SecretImportsSchema, SecretsSchema } from "@app/db/schemas"; +import { SecretImportsSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { ApiDocsTags, SECRET_IMPORTS } from "@app/lib/api-docs"; import { removeTrailingSlash } from "@app/lib/fn"; @@ -27,7 +27,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => } ], body: z.object({ - workspaceId: z.string().trim().describe(SECRET_IMPORTS.CREATE.workspaceId), + projectId: z.string().trim().describe(SECRET_IMPORTS.CREATE.projectId), environment: z.string().trim().describe(SECRET_IMPORTS.CREATE.environment), path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.CREATE.path), import: z.object({ @@ -55,13 +55,13 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, ...req.body, - projectId: req.body.workspaceId, + projectId: req.body.projectId, data: req.body.import }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.body.workspaceId, + projectId: req.body.projectId, event: { type: EventType.CREATE_SECRET_IMPORT, metadata: { @@ -97,7 +97,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => secretImportId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.secretImportId) }), body: z.object({ - workspaceId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.workspaceId), + projectId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.projectId), environment: z.string().trim().describe(SECRET_IMPORTS.UPDATE.environment), path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.UPDATE.path), import: z.object({ @@ -131,13 +131,13 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => actorOrgId: req.permission.orgId, id: req.params.secretImportId, ...req.body, - projectId: req.body.workspaceId, + projectId: req.body.projectId, data: req.body.import }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.body.workspaceId, + projectId: req.body.projectId, event: { type: EventType.UPDATE_SECRET_IMPORT, metadata: { @@ -173,7 +173,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => secretImportId: z.string().trim().describe(SECRET_IMPORTS.DELETE.secretImportId) }), body: z.object({ - workspaceId: z.string().trim().describe(SECRET_IMPORTS.DELETE.workspaceId), + projectId: z.string().trim().describe(SECRET_IMPORTS.DELETE.projectId), environment: z.string().trim().describe(SECRET_IMPORTS.DELETE.environment), path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.DELETE.path) }), @@ -197,12 +197,12 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => actorOrgId: req.permission.orgId, id: req.params.secretImportId, ...req.body, - projectId: req.body.workspaceId + projectId: req.body.projectId }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.body.workspaceId, + projectId: req.body.projectId, event: { type: EventType.DELETE_SECRET_IMPORT, metadata: { @@ -236,7 +236,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => secretImportId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.secretImportId) }), body: z.object({ - workspaceId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.workspaceId), + projectId: z.string().trim().describe(SECRET_IMPORTS.UPDATE.projectId), environment: z.string().trim().describe(SECRET_IMPORTS.UPDATE.environment), path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.UPDATE.path) }), @@ -255,7 +255,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => actorOrgId: req.permission.orgId, id: req.params.secretImportId, ...req.body, - projectId: req.body.workspaceId + projectId: req.body.projectId }); return { message }; @@ -278,7 +278,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => } ], querystring: z.object({ - workspaceId: z.string().trim().describe(SECRET_IMPORTS.LIST.workspaceId), + projectId: z.string().trim().describe(SECRET_IMPORTS.LIST.projectId), environment: z.string().trim().describe(SECRET_IMPORTS.LIST.environment), path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.LIST.path) }), @@ -301,12 +301,12 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, ...req.query, - projectId: req.query.workspaceId + projectId: req.query.projectId }); await server.services.auditLog.createAuditLog({ ...req.auditLogInfo, - projectId: req.query.workspaceId, + projectId: req.query.projectId, event: { type: EventType.GET_SECRET_IMPORTS, metadata: { @@ -386,55 +386,11 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => config: { rateLimit: secretsLimit }, - schema: { - querystring: z.object({ - workspaceId: z.string().trim(), - environment: z.string().trim(), - path: z.string().trim().default("/").transform(removeTrailingSlash) - }), - response: { - 200: z.object({ - secrets: z - .object({ - secretPath: z.string(), - environment: z.string(), - environmentInfo: z.object({ - id: z.string(), - name: z.string(), - slug: z.string() - }), - folderId: z.string().optional(), - secrets: SecretsSchema.omit({ secretBlindIndex: true }).array() - }) - .array() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), - handler: async (req) => { - const importedSecrets = await server.services.secretImport.getSecretsFromImports({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - ...req.query, - projectId: req.query.workspaceId - }); - return { secrets: importedSecrets }; - } - }); - - server.route({ - url: "/secrets/raw", - method: "GET", - config: { - rateLimit: secretsLimit - }, schema: { hide: false, tags: [ApiDocsTags.SecretImports], querystring: z.object({ - workspaceId: z.string().trim(), + projectId: z.string().trim(), environment: z.string().trim(), path: z.string().trim().default("/").transform(removeTrailingSlash) }), @@ -463,8 +419,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) => actor: req.permission.type, actorAuthMethod: req.permission.authMethod, actorOrgId: req.permission.orgId, - ...req.query, - projectId: req.query.workspaceId + ...req.query }); return { secrets: importedSecrets }; } diff --git a/backend/src/server/routes/v3/secret-router.ts b/backend/src/server/routes/v3/deprecated-secret-router.ts similarity index 95% rename from backend/src/server/routes/v3/secret-router.ts rename to backend/src/server/routes/v3/deprecated-secret-router.ts index ce0d4f188..2a0d425d6 100644 --- a/backend/src/server/routes/v3/secret-router.ts +++ b/backend/src/server/routes/v3/deprecated-secret-router.ts @@ -39,7 +39,7 @@ const SecretReferenceNodeTree: z.ZodType = SecretReference children: z.lazy(() => SecretReferenceNodeTree.array()) }); -export const registerSecretRouter = async (server: FastifyZodProvider) => { +export const registerDeprecatedSecretRouter = async (server: FastifyZodProvider) => { server.route({ method: "POST", url: "/tags/:secretName", @@ -230,7 +230,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { } }) .describe(RAW_SECRETS.LIST.metadataFilter), - workspaceId: z.string().trim().optional().describe(RAW_SECRETS.LIST.workspaceId), + workspaceId: z.string().trim().optional().describe(RAW_SECRETS.LIST.projectId), workspaceSlug: z.string().trim().optional().describe(RAW_SECRETS.LIST.workspaceSlug), environment: z.string().trim().optional().describe(RAW_SECRETS.LIST.environment), secretPath: z.string().trim().default("/").transform(removeTrailingSlash).describe(RAW_SECRETS.LIST.secretPath), @@ -298,7 +298,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { workspaceId = projectId; } - if (!workspaceId || !environment) throw new BadRequestError({ message: "Missing workspace id or environment" }); + if (!workspaceId || !environment) throw new BadRequestError({ message: "Missing project id or environment" }); const { secrets, imports } = await server.services.secret.getSecretsRaw({ actorId: req.permission.id, @@ -336,7 +336,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId, + projectId: workspaceId, environment, secretPath: req.query.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -405,7 +405,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretName: z.string().trim().describe(RAW_SECRETS.GET.secretName) }), querystring: z.object({ - workspaceId: z.string().trim().optional().describe(RAW_SECRETS.GET.workspaceId), + workspaceId: z.string().trim().optional().describe(RAW_SECRETS.GET.projectId), workspaceSlug: z.string().trim().optional().describe(RAW_SECRETS.GET.workspaceSlug), environment: z.string().trim().optional().describe(RAW_SECRETS.GET.environment), secretPath: z.string().trim().default("/").transform(removeTrailingSlash).describe(RAW_SECRETS.GET.secretPath), @@ -495,7 +495,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { distinctId: getTelemetryDistinctId(req), properties: { numberOfSecrets: 1, - workspaceId: secret.workspace, + projectId: secret.workspace, environment, secretPath: req.query.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -526,7 +526,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretName: SecretNameSchema.describe(RAW_SECRETS.CREATE.secretName) }), body: z.object({ - workspaceId: z.string().trim().optional().describe(RAW_SECRETS.CREATE.workspaceId), + workspaceId: z.string().trim().optional().describe(RAW_SECRETS.CREATE.projectId), projectSlug: z.string().trim().optional().describe(RAW_SECRETS.CREATE.projectSlug), environment: z.string().trim().describe(RAW_SECRETS.CREATE.environment), secretPath: z @@ -627,7 +627,8 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretId: secret.id, secretKey: req.params.secretName, secretVersion: secret.version, - secretMetadata: req.body.secretMetadata + secretMetadata: req.body.secretMetadata, + secretTags: secret.tags?.map((tag) => tag.name) } } }); @@ -638,7 +639,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: 1, - workspaceId: projectId, + projectId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -669,7 +670,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretName: BaseSecretNameSchema.describe(RAW_SECRETS.UPDATE.secretName) }), body: z.object({ - workspaceId: z.string().trim().optional().describe(RAW_SECRETS.UPDATE.workspaceId), + workspaceId: z.string().trim().optional().describe(RAW_SECRETS.UPDATE.projectId), projectSlug: z.string().trim().optional().describe(RAW_SECRETS.UPDATE.projectSlug), environment: z.string().trim().describe(RAW_SECRETS.UPDATE.environment), secretValue: z @@ -780,7 +781,8 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretId: secret.id, secretKey: req.params.secretName, secretVersion: secret.version, - secretMetadata: req.body.secretMetadata + secretMetadata: req.body.secretMetadata, + secretTags: secret.tags?.map((tag) => tag.name) } } }); @@ -791,7 +793,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: 1, - workspaceId: projectId, + projectId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -821,7 +823,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretName: z.string().min(1).describe(RAW_SECRETS.DELETE.secretName) }), body: z.object({ - workspaceId: z.string().trim().optional().describe(RAW_SECRETS.DELETE.workspaceId), + workspaceId: z.string().trim().optional().describe(RAW_SECRETS.DELETE.projectId), projectSlug: z.string().trim().optional().describe(RAW_SECRETS.DELETE.projectSlug), environment: z.string().trim().describe(RAW_SECRETS.DELETE.environment), secretPath: z @@ -909,7 +911,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: 1, - workspaceId: projectId, + projectId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1017,7 +1019,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId: req.query.workspaceId, + projectId: req.query.workspaceId, environment: req.query.environment, secretPath: req.query.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1097,7 +1099,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: 1, - workspaceId: req.query.workspaceId, + projectId: req.query.workspaceId, environment: req.query.environment, secretPath: req.query.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1272,7 +1274,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: 1, - workspaceId: req.body.workspaceId, + projectId: req.body.workspaceId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1466,7 +1468,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: 1, - workspaceId: req.body.workspaceId, + projectId: req.body.workspaceId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1594,7 +1596,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: 1, - workspaceId: req.body.workspaceId, + projectId: req.body.workspaceId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1781,7 +1783,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId: req.body.workspaceId, + projectId: req.body.workspaceId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -1914,7 +1916,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId: req.body.workspaceId, + projectId: req.body.workspaceId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -2039,7 +2041,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId: req.body.workspaceId, + projectId: req.body.workspaceId, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -2067,7 +2069,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { ], body: z.object({ projectSlug: z.string().trim().optional().describe(RAW_SECRETS.UPDATE.projectSlug), - workspaceId: z.string().trim().optional().describe(RAW_SECRETS.UPDATE.workspaceId), + workspaceId: z.string().trim().optional().describe(RAW_SECRETS.UPDATE.projectId), environment: z.string().trim().describe(RAW_SECRETS.CREATE.environment), secretPath: z .string() @@ -2154,7 +2156,8 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretId: secret.id, secretKey: secret.secretKey, secretVersion: secret.version, - secretMetadata: secretMetadataMap.get(secret.secretKey) + secretMetadata: secretMetadataMap.get(secret.secretKey), + secretTags: secret.tags?.map((tag) => tag.name) })) } } @@ -2166,7 +2169,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId: secrets[0].workspace, + projectId: secrets[0].workspace, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -2194,7 +2197,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { ], body: z.object({ projectSlug: z.string().trim().optional().describe(RAW_SECRETS.DELETE.projectSlug), - workspaceId: z.string().trim().optional().describe(RAW_SECRETS.DELETE.workspaceId), + workspaceId: z.string().trim().optional().describe(RAW_SECRETS.DELETE.projectId), environment: z.string().trim().describe(RAW_SECRETS.UPDATE.environment), secretPath: z .string() @@ -2288,7 +2291,6 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { return { approval: secretOperation.approval }; } const { secrets } = secretOperation; - const secretMetadataMap = new Map( inputSecrets.map(({ secretKey, secretMetadata }) => [secretKey, secretMetadata]) ); @@ -2308,7 +2310,8 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretPath: secret.secretPath, secretKey: secret.secretKey, secretVersion: secret.version, - secretMetadata: secretMetadataMap.get(secret.secretKey) + secretMetadata: secretMetadataMap.get(secret.secretKey), + secretTags: secret.tags?.map((tag) => tag.name) })) } } @@ -2328,7 +2331,8 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretPath: secret.secretPath, secretKey: secret.secretKey, secretVersion: secret.version, - secretMetadata: secretMetadataMap.get(secret.secretKey) + secretMetadata: secretMetadataMap.get(secret.secretKey), + secretTags: secret.tags?.map((tag) => tag.name) })) } } @@ -2341,7 +2345,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId: secrets[0].workspace, + projectId: secrets[0].workspace, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -2369,7 +2373,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { ], body: z.object({ projectSlug: z.string().trim().optional().describe(RAW_SECRETS.DELETE.projectSlug), - workspaceId: z.string().trim().optional().describe(RAW_SECRETS.DELETE.workspaceId), + workspaceId: z.string().trim().optional().describe(RAW_SECRETS.DELETE.projectId), environment: z.string().trim().describe(RAW_SECRETS.DELETE.environment), secretPath: z .string() @@ -2459,7 +2463,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { organizationId: req.permission.orgId, properties: { numberOfSecrets: secrets.length, - workspaceId: secrets[0].workspace, + projectId: secrets[0].workspace, environment: req.body.environment, secretPath: req.body.secretPath, channel: getUserAgentType(req.headers["user-agent"]), @@ -2469,95 +2473,4 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { return { secrets }; } }); - - server.route({ - method: "GET", - url: "/raw/:secretName/secret-reference-tree", - config: { - rateLimit: secretsLimit - }, - schema: { - hide: false, - tags: [ApiDocsTags.Secrets], - description: "Get secret reference tree", - security: [ - { - bearerAuth: [] - } - ], - params: z.object({ - secretName: z.string().trim().describe(RAW_SECRETS.GET_REFERENCE_TREE.secretName) - }), - querystring: z.object({ - workspaceId: z.string().trim().describe(RAW_SECRETS.GET_REFERENCE_TREE.workspaceId), - environment: z.string().trim().describe(RAW_SECRETS.GET_REFERENCE_TREE.environment), - secretPath: z - .string() - .trim() - .default("/") - .transform(removeTrailingSlash) - .describe(RAW_SECRETS.GET_REFERENCE_TREE.secretPath) - }), - response: { - 200: z.object({ - tree: SecretReferenceNodeTree, - value: z.string().optional() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const { secretName } = req.params; - const { secretPath, environment, workspaceId } = req.query; - const { tree, value } = await server.services.secret.getSecretReferenceTree({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId: workspaceId, - secretName, - secretPath, - environment - }); - - return { tree, value }; - } - }); - - server.route({ - method: "POST", - url: "/backfill-secret-references", - config: { - rateLimit: secretsLimit - }, - schema: { - description: "Backfill secret references", - security: [ - { - bearerAuth: [] - } - ], - body: z.object({ - projectId: z.string().trim().min(1) - }), - response: { - 200: z.object({ - message: z.string() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const { projectId } = req.body; - const message = await server.services.secret.backfillSecretReferences({ - actorId: req.permission.id, - actor: req.permission.type, - actorAuthMethod: req.permission.authMethod, - actorOrgId: req.permission.orgId, - projectId - }); - - return message; - } - }); }; diff --git a/backend/src/server/routes/v3/index.ts b/backend/src/server/routes/v3/index.ts index 1c31741a1..d7fa94d6b 100644 --- a/backend/src/server/routes/v3/index.ts +++ b/backend/src/server/routes/v3/index.ts @@ -1,7 +1,6 @@ +import { registerDeprecatedSecretRouter } from "./deprecated-secret-router"; import { registerExternalMigrationRouter } from "./external-migration-router"; import { registerLoginRouter } from "./login-router"; -import { registerSecretBlindIndexRouter } from "./secret-blind-index-router"; -import { registerSecretRouter } from "./secret-router"; import { registerSignupRouter } from "./signup-router"; import { registerUserRouter } from "./user-router"; @@ -9,7 +8,6 @@ export const registerV3Routes = async (server: FastifyZodProvider) => { await server.register(registerSignupRouter, { prefix: "/signup" }); await server.register(registerLoginRouter, { prefix: "/auth" }); await server.register(registerUserRouter, { prefix: "/users" }); - await server.register(registerSecretRouter, { prefix: "/secrets" }); - await server.register(registerSecretBlindIndexRouter, { prefix: "/workspaces" }); + await server.register(registerDeprecatedSecretRouter, { prefix: "/secrets" }); await server.register(registerExternalMigrationRouter, { prefix: "/external-migration" }); }; diff --git a/backend/src/server/routes/v3/secret-blind-index-router.ts b/backend/src/server/routes/v3/secret-blind-index-router.ts deleted file mode 100644 index cfb27a58e..000000000 --- a/backend/src/server/routes/v3/secret-blind-index-router.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { z } from "zod"; - -import { SecretsSchema } from "@app/db/schemas"; -import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; -import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; -import { AuthMode } from "@app/services/auth/auth-type"; - -export const registerSecretBlindIndexRouter = async (server: FastifyZodProvider) => { - server.route({ - method: "GET", - url: "/:projectId/secrets/blind-index-status", - config: { - rateLimit: readLimit - }, - schema: { - params: z.object({ - projectId: z.string().trim() - }), - response: { - 200: z.boolean() - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const count = await server.services.secretBlindIndex.getSecretBlindIndexStatus({ - projectId: req.params.projectId, - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId - }); - return count === 0; - } - }); - - server.route({ - method: "GET", - url: "/:projectId/secrets", - config: { - rateLimit: readLimit - }, - schema: { - params: z.object({ - projectId: z.string().trim() - }), - response: { - 200: z.object({ - secrets: SecretsSchema.omit({ secretBlindIndex: true }) - .merge( - z.object({ - environment: z.string(), - workspace: z.string() - }) - ) - .array() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - const secrets = await server.services.secretBlindIndex.getProjectSecrets({ - projectId: req.params.projectId, - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId - }); - return { secrets }; - } - }); - - server.route({ - method: "POST", - url: "/:projectId/secrets/names", - config: { - rateLimit: writeLimit - }, - schema: { - params: z.object({ - projectId: z.string().trim() - }), - body: z.object({ - secretsToUpdate: z - .object({ - secretName: z.string().trim(), - secretId: z.string().trim() - }) - .array() - }), - response: { - 200: z.object({ - message: z.string() - }) - } - }, - onRequest: verifyAuth([AuthMode.JWT]), - handler: async (req) => { - await server.services.secretBlindIndex.updateProjectSecretName({ - projectId: req.params.projectId, - secretsToUpdate: req.body.secretsToUpdate, - actorAuthMethod: req.permission.authMethod, - actorId: req.permission.id, - actor: req.permission.type, - actorOrgId: req.permission.orgId - }); - return { message: "Successfully named workspace secrets" }; - } - }); -}; diff --git a/backend/src/server/routes/v4/index.ts b/backend/src/server/routes/v4/index.ts new file mode 100644 index 000000000..db2e69222 --- /dev/null +++ b/backend/src/server/routes/v4/index.ts @@ -0,0 +1,5 @@ +import { registerSecretRouter } from "./secret-router"; + +export const registerV4Routes = async (server: FastifyZodProvider) => { + await server.register(registerSecretRouter, { prefix: "/secrets" }); +}; diff --git a/backend/src/server/routes/v4/secret-router.ts b/backend/src/server/routes/v4/secret-router.ts new file mode 100644 index 000000000..e68bb87a4 --- /dev/null +++ b/backend/src/server/routes/v4/secret-router.ts @@ -0,0 +1,1335 @@ +import picomatch from "picomatch"; +import { z } from "zod"; + +import { SecretApprovalRequestsSchema, SecretType, ServiceTokenScopes } from "@app/db/schemas"; +import { EventType, SecretApprovalEvent, UserAgentType } from "@app/ee/services/audit-log/audit-log-types"; +import { ApiDocsTags, RAW_SECRETS } from "@app/lib/api-docs"; +import { BadRequestError } from "@app/lib/errors"; +import { removeTrailingSlash } from "@app/lib/fn"; +import { secretsLimit } from "@app/server/config/rateLimiter"; +import { BaseSecretNameSchema, SecretNameSchema } from "@app/server/lib/schemas"; +import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; +import { getUserAgentType } from "@app/server/plugins/audit-log"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { ActorType, AuthMode } from "@app/services/auth/auth-type"; +import { ResourceMetadataSchema } from "@app/services/resource-metadata/resource-metadata-schema"; +import { SecretProtectionType } from "@app/services/secret/secret-types"; +import { SecretUpdateMode } from "@app/services/secret-v2-bridge/secret-v2-bridge-types"; +import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types"; + +import { SanitizedTagSchema, secretRawSchema } from "../sanitizedSchemas"; + +const SecretReferenceNode = z.object({ + key: z.string(), + value: z.string().optional(), + environment: z.string(), + secretPath: z.string() +}); + +const convertStringBoolean = (defaultValue: boolean = false) => { + return z + .enum(["true", "false"]) + .default(defaultValue ? "true" : "false") + .transform((value) => value === "true"); +}; + +type TSecretReferenceNode = z.infer & { children: TSecretReferenceNode[] }; + +const SecretReferenceNodeTree: z.ZodType = SecretReferenceNode.extend({ + children: z.lazy(() => SecretReferenceNodeTree.array()) +}); + +export const registerSecretRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "GET", + url: "/", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "List secrets", + security: [ + { + bearerAuth: [] + } + ], + querystring: z.object({ + metadataFilter: z + .string() + .optional() + .transform((val) => { + if (!val) return undefined; + + const result: { key?: string; value?: string }[] = []; + const pairs = val.split("|"); + + for (const pair of pairs) { + const keyValuePair: { key?: string; value?: string } = {}; + const parts = pair.split(/[,=]/); + + for (let i = 0; i < parts.length; i += 2) { + const identifier = parts[i].trim().toLowerCase(); + const value = parts[i + 1]?.trim(); + + if (identifier === "key" && value) { + keyValuePair.key = value; + } else if (identifier === "value" && value) { + keyValuePair.value = value; + } + } + + if (keyValuePair.key && keyValuePair.value) { + result.push(keyValuePair); + } + } + + return result.length ? result : undefined; + }) + .superRefine((metadata, ctx) => { + if (metadata && !Array.isArray(metadata)) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: + "Invalid secretMetadata format. Correct format is key=value1,value=value2|key=value3,value=value4." + }); + } + + if (metadata) { + if (metadata.length > 10) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "You can only filter by up to 10 metadata fields" + }); + } + + for (const item of metadata) { + if (!item.key && !item.value) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: + "Invalid secretMetadata format, key or value must be provided. Correct format is key=value1,value=value2|key=value3,value=value4." + }); + } + } + } + }) + .describe(RAW_SECRETS.LIST.metadataFilter), + projectId: z.string().trim().optional().describe(RAW_SECRETS.LIST.projectId), + environment: z.string().trim().optional().describe(RAW_SECRETS.LIST.environment), + secretPath: z.string().trim().default("/").transform(removeTrailingSlash).describe(RAW_SECRETS.LIST.secretPath), + viewSecretValue: convertStringBoolean(true).describe(RAW_SECRETS.LIST.viewSecretValue), + expandSecretReferences: convertStringBoolean().describe(RAW_SECRETS.LIST.expand), + recursive: convertStringBoolean().describe(RAW_SECRETS.LIST.recursive), + include_imports: convertStringBoolean().describe(RAW_SECRETS.LIST.includeImports), + tagSlugs: z + .string() + .describe(RAW_SECRETS.LIST.tagSlugs) + .optional() + // split by comma and trim the strings + .transform((el) => (el ? el.split(",").map((i) => i.trim()) : [])) + }), + response: { + 200: z.object({ + secrets: secretRawSchema + .extend({ + secretPath: z.string().optional(), + secretValueHidden: z.boolean(), + secretMetadata: ResourceMetadataSchema.optional(), + tags: SanitizedTagSchema.array().optional() + }) + .array(), + imports: z + .object({ + secretPath: z.string(), + environment: z.string(), + folderId: z.string().optional(), + secrets: secretRawSchema + .omit({ createdAt: true, updatedAt: true }) + .extend({ + secretValueHidden: z.boolean(), + secretMetadata: ResourceMetadataSchema.optional() + }) + .array() + }) + .array() + .optional() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + // just for delivery hero usecase + let { secretPath, environment, projectId } = req.query; + if (req.auth.actor === ActorType.SERVICE) { + const scope = ServiceTokenScopes.parse(req.auth.serviceToken.scopes); + const isSingleScope = scope.length === 1; + if (isSingleScope && !picomatch.scan(scope[0].secretPath).isGlob) { + secretPath = scope[0].secretPath; + environment = scope[0].environment; + projectId = req.auth.serviceToken.projectId; + } + } + + if (!projectId || !environment) throw new BadRequestError({ message: "Missing project id or environment" }); + + const { secrets, imports } = await server.services.secret.getSecretsRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + environment, + expandSecretReferences: req.query.expandSecretReferences, + actorAuthMethod: req.permission.authMethod, + projectId, + viewSecretValue: req.query.viewSecretValue, + path: secretPath, + metadataFilter: req.query.metadataFilter, + includeImports: req.query.include_imports, + recursive: req.query.recursive, + tagSlugs: req.query.tagSlugs + }); + + await server.services.auditLog.createAuditLog({ + projectId, + ...req.auditLogInfo, + event: { + type: EventType.GET_SECRETS, + metadata: { + environment, + secretPath: req.query.secretPath, + numberOfSecrets: secrets.length + } + } + }); + + if (getUserAgentType(req.headers["user-agent"]) !== UserAgentType.K8_OPERATOR) { + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.SecretPulled, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + numberOfSecrets: secrets.length, + projectId, + environment, + secretPath: req.query.secretPath, + channel: getUserAgentType(req.headers["user-agent"]), + ...req.auditLogInfo + } + }); + } + + return { secrets, imports }; + } + }); + + server.route({ + method: "GET", + url: "/id/:secretId", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + params: z.object({ + secretId: z.string() + }), + response: { + 200: z.object({ + secret: secretRawSchema.extend({ + secretPath: z.string(), + tags: SanitizedTagSchema.array().optional(), + secretMetadata: ResourceMetadataSchema.optional() + }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { secretId } = req.params; + const secret = await server.services.secret.getSecretByIdRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + secretId + }); + + return { secret }; + } + }); + + server.route({ + method: "GET", + url: "/:secretName", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "Get a secret by name", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretName: z.string().trim().describe(RAW_SECRETS.GET.secretName) + }), + querystring: z.object({ + projectId: z.string().trim().describe(RAW_SECRETS.GET.projectId), + environment: z.string().trim().optional().describe(RAW_SECRETS.GET.environment), + secretPath: z.string().trim().default("/").transform(removeTrailingSlash).describe(RAW_SECRETS.GET.secretPath), + version: z.coerce.number().optional().describe(RAW_SECRETS.GET.version), + type: z.nativeEnum(SecretType).default(SecretType.Shared).describe(RAW_SECRETS.GET.type), + viewSecretValue: convertStringBoolean(true).describe(RAW_SECRETS.GET.viewSecretValue), + expandSecretReferences: convertStringBoolean().describe(RAW_SECRETS.GET.expand), + include_imports: convertStringBoolean().describe(RAW_SECRETS.GET.includeImports) + }), + response: { + 200: z.object({ + secret: secretRawSchema.extend({ + secretValueHidden: z.boolean(), + secretPath: z.string(), + tags: SanitizedTagSchema.array().optional(), + secretMetadata: ResourceMetadataSchema.optional() + }) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + let { secretPath, environment, projectId } = req.query; + if (req.auth.actor === ActorType.SERVICE) { + const scope = ServiceTokenScopes.parse(req.auth.serviceToken.scopes); + const isSingleScope = scope.length === 1; + if (isSingleScope && !picomatch.scan(scope[0].secretPath).isGlob) { + secretPath = scope[0].secretPath; + environment = scope[0].environment; + projectId = req.auth.serviceToken.projectId; + } + } + + if (!environment) throw new BadRequestError({ message: "Missing environment" }); + if (!projectId) { + throw new BadRequestError({ message: "You must provide workspaceId" }); + } + + const secret = await server.services.secret.getSecretByNameRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + expandSecretReferences: req.query.expandSecretReferences, + environment, + projectId, + viewSecretValue: req.query.viewSecretValue, + path: secretPath, + secretName: req.params.secretName, + type: req.query.type, + includeImports: req.query.include_imports, + version: req.query.version + }); + + await server.services.auditLog.createAuditLog({ + projectId, + ...req.auditLogInfo, + event: { + type: EventType.GET_SECRET, + metadata: { + environment, + secretPath: req.query.secretPath, + secretId: secret.id, + secretKey: req.params.secretName, + secretVersion: secret.version, + secretMetadata: secret.secretMetadata + } + } + }); + + if (getUserAgentType(req.headers["user-agent"]) !== UserAgentType.K8_OPERATOR) { + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.SecretPulled, + organizationId: req.permission.orgId, + distinctId: getTelemetryDistinctId(req), + properties: { + numberOfSecrets: 1, + projectId, + environment, + secretPath: req.query.secretPath, + channel: getUserAgentType(req.headers["user-agent"]), + ...req.auditLogInfo + } + }); + } + return { secret }; + } + }); + + server.route({ + method: "POST", + url: "/:secretName", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "Create secret", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretName: SecretNameSchema.describe(RAW_SECRETS.CREATE.secretName) + }), + body: z.object({ + projectId: z.string().trim().describe(RAW_SECRETS.CREATE.projectId), + environment: z.string().trim().describe(RAW_SECRETS.CREATE.environment), + secretPath: z + .string() + .trim() + .default("/") + .transform(removeTrailingSlash) + .describe(RAW_SECRETS.CREATE.secretPath), + secretValue: z + .string() + .transform((val) => (val.at(-1) === "\n" ? `${val.trim()}\n` : val.trim())) + .describe(RAW_SECRETS.CREATE.secretValue), + secretComment: z.string().trim().optional().default("").describe(RAW_SECRETS.CREATE.secretComment), + secretMetadata: ResourceMetadataSchema.optional(), + tagIds: z.string().array().optional().describe(RAW_SECRETS.CREATE.tagIds), + skipMultilineEncoding: z.boolean().optional().describe(RAW_SECRETS.CREATE.skipMultilineEncoding), + type: z.nativeEnum(SecretType).default(SecretType.Shared).describe(RAW_SECRETS.CREATE.type), + secretReminderRepeatDays: z + .number() + .optional() + .nullable() + .describe(RAW_SECRETS.CREATE.secretReminderRepeatDays), + secretReminderNote: z + .string() + .max(1024, "Secret reminder note cannot exceed 1024 characters") + .optional() + .nullable() + .describe(RAW_SECRETS.CREATE.secretReminderNote) + }), + response: { + 200: z.union([ + z.object({ + secret: secretRawSchema + }), + z.object({ approval: SecretApprovalRequestsSchema }).describe("When secret protection policy is enabled") + ]) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretOperation = await server.services.secret.createSecretRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + environment: req.body.environment, + actorAuthMethod: req.permission.authMethod, + projectId: req.body.projectId, + secretPath: req.body.secretPath, + secretName: req.params.secretName, + type: req.body.type, + secretValue: req.body.secretValue, + skipMultilineEncoding: req.body.skipMultilineEncoding, + secretComment: req.body.secretComment, + secretMetadata: req.body.secretMetadata, + tagIds: req.body.tagIds, + secretReminderNote: req.body.secretReminderNote, + secretReminderRepeatDays: req.body.secretReminderRepeatDays + }); + if (secretOperation.type === SecretProtectionType.Approval) { + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.SECRET_APPROVAL_REQUEST, + metadata: { + committedBy: secretOperation.approval.committerUserId, + secretApprovalRequestId: secretOperation.approval.id, + secretApprovalRequestSlug: secretOperation.approval.slug, + secretPath: req.body.secretPath, + environment: req.body.environment, + secretKey: req.params.secretName, + eventType: SecretApprovalEvent.Create + } + } + }); + + return { approval: secretOperation.approval }; + } + + const { secret } = secretOperation; + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.CREATE_SECRET, + metadata: { + environment: req.body.environment, + secretPath: req.body.secretPath, + secretId: secret.id, + secretKey: req.params.secretName, + secretVersion: secret.version, + secretMetadata: req.body.secretMetadata, + secretTags: secret.tags?.map((tag) => tag.name) + } + } + }); + + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.SecretCreated, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + numberOfSecrets: 1, + projectId: req.body.projectId, + environment: req.body.environment, + secretPath: req.body.secretPath, + channel: getUserAgentType(req.headers["user-agent"]), + ...req.auditLogInfo + } + }); + + return { secret }; + } + }); + + server.route({ + method: "PATCH", + url: "/:secretName", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "Update secret", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretName: BaseSecretNameSchema.describe(RAW_SECRETS.UPDATE.secretName) + }), + body: z.object({ + projectId: z.string().trim().describe(RAW_SECRETS.UPDATE.projectId), + environment: z.string().trim().describe(RAW_SECRETS.UPDATE.environment), + secretValue: z + .string() + .transform((val) => (val.at(-1) === "\n" ? `${val.trim()}\n` : val.trim())) + .optional() + .describe(RAW_SECRETS.UPDATE.secretValue), + secretPath: z + .string() + .trim() + .default("/") + .transform(removeTrailingSlash) + .describe(RAW_SECRETS.UPDATE.secretPath), + skipMultilineEncoding: z.boolean().optional().describe(RAW_SECRETS.UPDATE.skipMultilineEncoding), + type: z.nativeEnum(SecretType).default(SecretType.Shared).describe(RAW_SECRETS.UPDATE.type), + tagIds: z.string().array().optional().describe(RAW_SECRETS.UPDATE.tagIds), + metadata: z.record(z.string()).optional(), + secretMetadata: ResourceMetadataSchema.optional(), + secretReminderNote: z + .string() + .max(1024, "Secret reminder note cannot exceed 1024 characters") + .optional() + .nullable() + .describe(RAW_SECRETS.UPDATE.secretReminderNote), + secretReminderRepeatDays: z + .number() + .optional() + .nullable() + .describe(RAW_SECRETS.UPDATE.secretReminderRepeatDays), + secretReminderRecipients: z.string().array().optional().describe(RAW_SECRETS.UPDATE.secretReminderRecipients), + newSecretName: SecretNameSchema.optional().describe(RAW_SECRETS.UPDATE.newSecretName), + secretComment: z.string().optional().describe(RAW_SECRETS.UPDATE.secretComment) + }), + response: { + 200: z.union([ + z.object({ + secret: secretRawSchema.extend({ + secretValueHidden: z.boolean() + }) + }), + z.object({ approval: SecretApprovalRequestsSchema }).describe("When secret protection policy is enabled") + ]) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretOperation = await server.services.secret.updateSecretRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + environment: req.body.environment, + projectId: req.body.projectId, + secretPath: req.body.secretPath, + secretName: req.params.secretName, + type: req.body.type, + secretValue: req.body.secretValue, + skipMultilineEncoding: req.body.skipMultilineEncoding, + tagIds: req.body.tagIds, + secretReminderRepeatDays: req.body.secretReminderRepeatDays, + secretReminderRecipients: req.body.secretReminderRecipients, + secretReminderNote: req.body.secretReminderNote, + metadata: req.body.metadata, + newSecretName: req.body.newSecretName, + secretComment: req.body.secretComment, + secretMetadata: req.body.secretMetadata + }); + + if (secretOperation.type === SecretProtectionType.Approval) { + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.SECRET_APPROVAL_REQUEST, + metadata: { + committedBy: secretOperation.approval.committerUserId, + secretApprovalRequestId: secretOperation.approval.id, + secretApprovalRequestSlug: secretOperation.approval.slug, + secretPath: req.body.secretPath, + environment: req.body.environment, + secretKey: req.params.secretName, + eventType: SecretApprovalEvent.Update + } + } + }); + + return { approval: secretOperation.approval }; + } + const { secret } = secretOperation; + + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.UPDATE_SECRET, + metadata: { + environment: req.body.environment, + secretPath: req.body.secretPath, + secretId: secret.id, + secretKey: req.params.secretName, + secretVersion: secret.version, + secretMetadata: req.body.secretMetadata, + secretTags: secret.tags?.map((tag) => tag.name) + } + } + }); + + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.SecretUpdated, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + numberOfSecrets: 1, + projectId: req.body.projectId, + environment: req.body.environment, + secretPath: req.body.secretPath, + channel: getUserAgentType(req.headers["user-agent"]), + ...req.auditLogInfo + } + }); + return { secret }; + } + }); + + server.route({ + method: "DELETE", + url: "/:secretName", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "Delete secret", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretName: z.string().min(1).describe(RAW_SECRETS.DELETE.secretName) + }), + body: z.object({ + projectId: z.string().trim().describe(RAW_SECRETS.DELETE.projectId), + environment: z.string().trim().describe(RAW_SECRETS.DELETE.environment), + secretPath: z + .string() + .trim() + .default("/") + .transform(removeTrailingSlash) + .describe(RAW_SECRETS.DELETE.secretPath), + type: z.nativeEnum(SecretType).default(SecretType.Shared).describe(RAW_SECRETS.DELETE.type) + }), + response: { + 200: z.union([ + z.object({ + secret: secretRawSchema.extend({ + secretValueHidden: z.boolean() + }) + }), + z.object({ approval: SecretApprovalRequestsSchema }).describe("When secret protection policy is enabled") + ]) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const secretOperation = await server.services.secret.deleteSecretRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + environment: req.body.environment, + projectId: req.body.projectId, + secretPath: req.body.secretPath, + secretName: req.params.secretName, + type: req.body.type + }); + if (secretOperation.type === SecretProtectionType.Approval) { + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.SECRET_APPROVAL_REQUEST, + metadata: { + committedBy: secretOperation.approval.committerUserId, + secretApprovalRequestId: secretOperation.approval.id, + secretApprovalRequestSlug: secretOperation.approval.slug, + secretPath: req.body.secretPath, + environment: req.body.environment, + secretKey: req.params.secretName, + eventType: SecretApprovalEvent.Delete + } + } + }); + + return { approval: secretOperation.approval }; + } + + const { secret } = secretOperation; + + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.DELETE_SECRET, + metadata: { + environment: req.body.environment, + secretPath: req.body.secretPath, + secretId: secret.id, + secretKey: req.params.secretName, + secretVersion: secret.version + } + } + }); + + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.SecretDeleted, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + numberOfSecrets: 1, + projectId: req.body.projectId, + environment: req.body.environment, + secretPath: req.body.secretPath, + channel: getUserAgentType(req.headers["user-agent"]), + ...req.auditLogInfo + } + }); + + return { secret }; + } + }); + + server.route({ + method: "POST", + url: "/move", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + body: z.object({ + projectId: z.string().trim(), + sourceEnvironment: z.string().trim(), + sourceSecretPath: z.string().trim().default("/").transform(removeTrailingSlash), + destinationEnvironment: z.string().trim(), + destinationSecretPath: z.string().trim().default("/").transform(removeTrailingSlash), + secretIds: z.string().array(), + shouldOverwrite: z.boolean().default(false) + }), + response: { + 200: z.object({ + isSourceUpdated: z.boolean(), + isDestinationUpdated: z.boolean() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { projectId, isSourceUpdated, isDestinationUpdated } = await server.services.secret.moveSecrets({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body + }); + + await server.services.auditLog.createAuditLog({ + projectId, + ...req.auditLogInfo, + event: { + type: EventType.MOVE_SECRETS, + metadata: { + sourceEnvironment: req.body.sourceEnvironment, + sourceSecretPath: req.body.sourceSecretPath, + destinationEnvironment: req.body.destinationEnvironment, + destinationSecretPath: req.body.destinationSecretPath, + secretIds: req.body.secretIds + } + } + }); + + return { + isSourceUpdated, + isDestinationUpdated + }; + } + }); + + server.route({ + method: "POST", + url: "/batch", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "Create many secrets", + security: [ + { + bearerAuth: [] + } + ], + body: z.object({ + projectId: z.string().trim().describe(RAW_SECRETS.UPDATE.projectId), + environment: z.string().trim().describe(RAW_SECRETS.CREATE.environment), + secretPath: z + .string() + .trim() + .default("/") + .transform(removeTrailingSlash) + .describe(RAW_SECRETS.CREATE.secretPath), + secrets: z + .object({ + secretKey: SecretNameSchema.describe(RAW_SECRETS.CREATE.secretName), + secretValue: z + .string() + .transform((val) => (val.at(-1) === "\n" ? `${val.trim()}\n` : val.trim())) + .describe(RAW_SECRETS.CREATE.secretValue), + secretComment: z.string().trim().optional().default("").describe(RAW_SECRETS.CREATE.secretComment), + skipMultilineEncoding: z.boolean().optional().describe(RAW_SECRETS.CREATE.skipMultilineEncoding), + metadata: z.record(z.string()).optional(), + secretMetadata: ResourceMetadataSchema.optional(), + tagIds: z.string().array().optional().describe(RAW_SECRETS.CREATE.tagIds) + }) + .array() + .min(1) + }), + response: { + 200: z.union([ + z.object({ + secrets: secretRawSchema.array() + }), + z.object({ approval: SecretApprovalRequestsSchema }).describe("When secret protection policy is enabled") + ]) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { environment, secretPath, secrets: inputSecrets } = req.body; + + const secretOperation = await server.services.secret.createManySecretsRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + secretPath, + environment, + projectId: req.body.projectId, + secrets: inputSecrets + }); + if (secretOperation.type === SecretProtectionType.Approval) { + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.SECRET_APPROVAL_REQUEST, + metadata: { + committedBy: secretOperation.approval.committerUserId, + secretApprovalRequestId: secretOperation.approval.id, + secretApprovalRequestSlug: secretOperation.approval.slug, + secretPath, + environment, + secrets: inputSecrets.map((secret) => ({ + secretKey: secret.secretKey + })), + eventType: SecretApprovalEvent.CreateMany + } + } + }); + return { approval: secretOperation.approval }; + } + const { secrets } = secretOperation; + + const secretMetadataMap = new Map( + inputSecrets.map(({ secretKey, secretMetadata }) => [secretKey, secretMetadata]) + ); + + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.CREATE_SECRETS, + metadata: { + environment: req.body.environment, + secretPath: req.body.secretPath, + secrets: secrets.map((secret) => ({ + secretId: secret.id, + secretKey: secret.secretKey, + secretVersion: secret.version, + secretMetadata: secretMetadataMap.get(secret.secretKey), + secretTags: secret.tags?.map((tag) => tag.name) + })) + } + } + }); + + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.SecretCreated, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + numberOfSecrets: secrets.length, + projectId: req.body.projectId, + environment: req.body.environment, + secretPath: req.body.secretPath, + channel: getUserAgentType(req.headers["user-agent"]), + ...req.auditLogInfo + } + }); + return { secrets }; + } + }); + + server.route({ + method: "PATCH", + url: "/batch", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "Update many secrets", + security: [ + { + bearerAuth: [] + } + ], + body: z.object({ + projectId: z.string().trim().describe(RAW_SECRETS.DELETE.projectId), + environment: z.string().trim().describe(RAW_SECRETS.UPDATE.environment), + secretPath: z + .string() + .trim() + .default("/") + .transform(removeTrailingSlash) + .describe(RAW_SECRETS.UPDATE.secretPath), + mode: z + .nativeEnum(SecretUpdateMode) + .optional() + .default(SecretUpdateMode.FailOnNotFound) + .describe(RAW_SECRETS.UPDATE.mode), + secrets: z + .object({ + secretKey: SecretNameSchema.describe(RAW_SECRETS.UPDATE.secretName), + secretValue: z + .string() + .transform((val) => (val.at(-1) === "\n" ? `${val.trim()}\n` : val.trim())) + .optional() + .describe(RAW_SECRETS.UPDATE.secretValue), + secretPath: z + .string() + .trim() + .transform(removeTrailingSlash) + .optional() + .describe(RAW_SECRETS.UPDATE.secretPath), + secretComment: z.string().trim().optional().describe(RAW_SECRETS.UPDATE.secretComment), + skipMultilineEncoding: z.boolean().optional().describe(RAW_SECRETS.UPDATE.skipMultilineEncoding), + newSecretName: SecretNameSchema.optional().describe(RAW_SECRETS.UPDATE.newSecretName), + tagIds: z.string().array().optional().describe(RAW_SECRETS.UPDATE.tagIds), + secretReminderNote: z + .string() + .max(1024, "Secret reminder note cannot exceed 1024 characters") + .optional() + .nullable() + .describe(RAW_SECRETS.UPDATE.secretReminderNote), + secretMetadata: ResourceMetadataSchema.optional(), + secretReminderRepeatDays: z + .number() + .optional() + .nullable() + .describe(RAW_SECRETS.UPDATE.secretReminderRepeatDays) + }) + .array() + .min(1) + }), + response: { + 200: z.union([ + z.object({ + secrets: secretRawSchema.extend({ secretValueHidden: z.boolean() }).array() + }), + z.object({ approval: SecretApprovalRequestsSchema }).describe("When secret protection policy is enabled") + ]) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { environment, secretPath, secrets: inputSecrets } = req.body; + const secretOperation = await server.services.secret.updateManySecretsRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + secretPath, + environment, + projectId: req.body.projectId, + secrets: inputSecrets, + mode: req.body.mode + }); + if (secretOperation.type === SecretProtectionType.Approval) { + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.SECRET_APPROVAL_REQUEST, + metadata: { + committedBy: secretOperation.approval.committerUserId, + secretApprovalRequestId: secretOperation.approval.id, + secretApprovalRequestSlug: secretOperation.approval.slug, + secretPath, + environment, + secrets: inputSecrets.map((secret) => ({ + secretKey: secret.secretKey, + secretPath: secret.secretPath + })), + eventType: SecretApprovalEvent.UpdateMany + } + } + }); + return { approval: secretOperation.approval }; + } + const { secrets } = secretOperation; + + const secretMetadataMap = new Map( + inputSecrets.map(({ secretKey, secretMetadata }) => [secretKey, secretMetadata]) + ); + + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.UPDATE_SECRETS, + metadata: { + environment: req.body.environment, + secretPath: req.body.secretPath, + secrets: secrets + .filter((el) => el.version > 1) + .map((secret) => ({ + secretId: secret.id, + secretPath: secret.secretPath, + secretKey: secret.secretKey, + secretVersion: secret.version, + secretMetadata: secretMetadataMap.get(secret.secretKey), + secretTags: secret.tags?.map((tag) => tag.name) + })) + } + } + }); + const createdSecrets = secrets.filter((el) => el.version === 1); + if (createdSecrets.length) { + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.CREATE_SECRETS, + metadata: { + environment: req.body.environment, + secretPath: req.body.secretPath, + secrets: createdSecrets.map((secret) => ({ + secretId: secret.id, + secretPath: secret.secretPath, + secretKey: secret.secretKey, + secretVersion: secret.version, + secretMetadata: secretMetadataMap.get(secret.secretKey) + })) + } + } + }); + } + + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.SecretUpdated, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + numberOfSecrets: secrets.length, + projectId: req.body.projectId, + environment: req.body.environment, + secretPath: req.body.secretPath, + channel: getUserAgentType(req.headers["user-agent"]), + ...req.auditLogInfo + } + }); + return { secrets }; + } + }); + + server.route({ + method: "DELETE", + url: "/batch", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "Delete many secrets", + security: [ + { + bearerAuth: [] + } + ], + body: z.object({ + projectId: z.string().trim().describe(RAW_SECRETS.DELETE.projectId), + environment: z.string().trim().describe(RAW_SECRETS.DELETE.environment), + secretPath: z + .string() + .trim() + .default("/") + .transform(removeTrailingSlash) + .describe(RAW_SECRETS.DELETE.secretPath), + secrets: z + .object({ + secretKey: z.string().describe(RAW_SECRETS.DELETE.secretName), + type: z.nativeEnum(SecretType).default(SecretType.Shared) + }) + .array() + .min(1) + }), + response: { + 200: z.union([ + z.object({ + secrets: secretRawSchema + .extend({ + secretValueHidden: z.boolean() + }) + .array() + }), + z.object({ approval: SecretApprovalRequestsSchema }).describe("When secret protection policy is enabled") + ]) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { environment, secretPath, secrets: inputSecrets } = req.body; + const secretOperation = await server.services.secret.deleteManySecretsRaw({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + environment, + secretPath, + projectId: req.body.projectId, + secrets: inputSecrets + }); + if (secretOperation.type === SecretProtectionType.Approval) { + await server.services.auditLog.createAuditLog({ + projectId: req.body.projectId, + ...req.auditLogInfo, + event: { + type: EventType.SECRET_APPROVAL_REQUEST, + metadata: { + committedBy: secretOperation.approval.committerUserId, + secretApprovalRequestId: secretOperation.approval.id, + secretApprovalRequestSlug: secretOperation.approval.slug, + secretPath, + environment, + secrets: inputSecrets.map((secret) => ({ + secretKey: secret.secretKey + })), + eventType: SecretApprovalEvent.DeleteMany + } + } + }); + + return { approval: secretOperation.approval }; + } + const { secrets } = secretOperation; + + await server.services.auditLog.createAuditLog({ + projectId: secrets[0].workspace, + ...req.auditLogInfo, + event: { + type: EventType.DELETE_SECRETS, + metadata: { + environment: req.body.environment, + secretPath: req.body.secretPath, + secrets: secrets.map((secret) => ({ + secretId: secret.id, + secretKey: secret.secretKey, + secretVersion: secret.version + })) + } + } + }); + + await server.services.telemetry.sendPostHogEvents({ + event: PostHogEventTypes.SecretDeleted, + distinctId: getTelemetryDistinctId(req), + organizationId: req.permission.orgId, + properties: { + numberOfSecrets: secrets.length, + projectId: secrets[0].workspace, + environment: req.body.environment, + secretPath: req.body.secretPath, + channel: getUserAgentType(req.headers["user-agent"]), + ...req.auditLogInfo + } + }); + return { secrets }; + } + }); + + server.route({ + method: "GET", + url: "/:secretName/secret-reference-tree", + config: { + rateLimit: secretsLimit + }, + schema: { + hide: false, + tags: [ApiDocsTags.Secrets], + description: "Get secret reference tree", + security: [ + { + bearerAuth: [] + } + ], + params: z.object({ + secretName: z.string().trim().describe(RAW_SECRETS.GET_REFERENCE_TREE.secretName) + }), + querystring: z.object({ + projectId: z.string().trim().describe(RAW_SECRETS.GET_REFERENCE_TREE.projectId), + environment: z.string().trim().describe(RAW_SECRETS.GET_REFERENCE_TREE.environment), + secretPath: z + .string() + .trim() + .default("/") + .transform(removeTrailingSlash) + .describe(RAW_SECRETS.GET_REFERENCE_TREE.secretPath) + }), + response: { + 200: z.object({ + tree: SecretReferenceNodeTree, + value: z.string().optional() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const { secretName } = req.params; + const { secretPath, environment, projectId } = req.query; + const { tree, value, secret } = await server.services.secret.getSecretReferenceTree({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId, + secretName, + secretPath, + environment + }); + + await server.services.auditLog.createAuditLog({ + projectId, + ...req.auditLogInfo, + event: { + type: EventType.GET_SECRET, + metadata: { + environment, + secretPath, + secretId: secret.id, + secretKey: secretName, + secretVersion: secret.version + } + } + }); + + return { tree, value }; + } + }); + + server.route({ + method: "POST", + url: "/backfill-secret-references", + config: { + rateLimit: secretsLimit + }, + schema: { + description: "Backfill secret references", + security: [ + { + bearerAuth: [] + } + ], + body: z.object({ + projectId: z.string().trim().min(1) + }), + response: { + 200: z.object({ + message: z.string() + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT]), + handler: async (req) => { + const { projectId } = req.body; + const message = await server.services.secret.backfillSecretReferences({ + actorId: req.permission.id, + actor: req.permission.type, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + projectId + }); + + return message; + } + }); +}; diff --git a/backend/src/services/app-connection/app-connection-dal.ts b/backend/src/services/app-connection/app-connection-dal.ts index f74f7cf06..10b6a6274 100644 --- a/backend/src/services/app-connection/app-connection-dal.ts +++ b/backend/src/services/app-connection/app-connection-dal.ts @@ -1,11 +1,115 @@ +import { Knex } from "knex"; + import { TDbClient } from "@app/db"; -import { TableName } from "@app/db/schemas"; -import { ormify } from "@app/lib/knex"; +import { TableName, TAppConnections } from "@app/db/schemas"; +import { buildFindFilter, ormify, prependTableNameToFindFilter, selectAllTableCols } from "@app/lib/knex"; +import { transformUsageToProjects } from "@app/services/app-connection/app-connection-fns"; export type TAppConnectionDALFactory = ReturnType; +type AppConnectionFindFilter = Parameters>[0]; + export const appConnectionDALFactory = (db: TDbClient) => { const appConnectionOrm = ormify(db, TableName.AppConnection); - return { ...appConnectionOrm }; + const findWithProjectDetails = async (filter: AppConnectionFindFilter, tx?: Knex) => { + const query = (tx || db.replicaNode())(TableName.AppConnection) + .leftJoin(TableName.Project, `${TableName.AppConnection}.projectId`, `${TableName.Project}.id`) + .select(selectAllTableCols(TableName.AppConnection)) + .select( + // project + db.ref("name").withSchema(TableName.Project).as("projectName"), + db.ref("type").withSchema(TableName.Project).as("projectType"), + db.ref("slug").withSchema(TableName.Project).as("projectSlug") + ); + + if (filter) { + /* eslint-disable @typescript-eslint/no-misused-promises */ + void query.where(buildFindFilter(prependTableNameToFindFilter(TableName.AppConnection, filter))); + } + + const connections = await query; + + return connections.map(({ projectName, projectSlug, projectType, projectId, ...connection }) => ({ + ...connection, + projectId, + project: projectId + ? { + name: projectName, + type: projectType, + slug: projectSlug, + id: projectId + } + : null + })); + }; + + const findAppConnectionUsageById = async (connectionId: string, tx?: Knex) => { + const secretSyncs = await (tx || db.replicaNode())(TableName.SecretSync) + .where(`${TableName.SecretSync}.connectionId`, connectionId) + .join(TableName.Project, `${TableName.SecretSync}.projectId`, `${TableName.Project}.id`) + .select( + db.ref("name").withSchema(TableName.SecretSync), + db.ref("id").withSchema(TableName.SecretSync), + db.ref("projectId").withSchema(TableName.SecretSync), + db.ref("name").as("projectName").withSchema(TableName.Project), + db.ref("slug").as("projectSlug").withSchema(TableName.Project), + db.ref("type").as("projectType").withSchema(TableName.Project) + ); + + const secretRotations = await (tx || db.replicaNode())(TableName.SecretRotationV2) + .where(`${TableName.SecretRotationV2}.connectionId`, connectionId) + .join(TableName.SecretFolder, `${TableName.SecretRotationV2}.folderId`, `${TableName.SecretFolder}.id`) + .join(TableName.Environment, `${TableName.SecretFolder}.envId`, `${TableName.Environment}.id`) + .join(TableName.Project, `${TableName.Environment}.projectId`, `${TableName.Project}.id`) + .select( + db.ref("name").withSchema(TableName.SecretRotationV2), + db.ref("id").withSchema(TableName.SecretRotationV2), + db.ref("id").as("projectId").withSchema(TableName.Project), + db.ref("name").as("projectName").withSchema(TableName.Project), + db.ref("slug").as("projectSlug").withSchema(TableName.Project), + db.ref("type").as("projectType").withSchema(TableName.Project) + ); + + const externalCas = await (tx || db.replicaNode())(TableName.ExternalCertificateAuthority) + .where(`${TableName.ExternalCertificateAuthority}.appConnectionId`, connectionId) + .orWhere(`${TableName.ExternalCertificateAuthority}.dnsAppConnectionId`, connectionId) + .join( + TableName.CertificateAuthority, + `${TableName.ExternalCertificateAuthority}.caId`, + `${TableName.CertificateAuthority}.id` + ) + .join(TableName.Project, `${TableName.CertificateAuthority}.projectId`, `${TableName.Project}.id`) + .select( + db.ref("name").withSchema(TableName.CertificateAuthority), + db.ref("id").withSchema(TableName.ExternalCertificateAuthority), + db.ref("appConnectionId").withSchema(TableName.ExternalCertificateAuthority), + db.ref("dnsAppConnectionId").withSchema(TableName.ExternalCertificateAuthority), + db.ref("id").as("projectId").withSchema(TableName.Project), + db.ref("name").as("projectName").withSchema(TableName.Project), + db.ref("slug").as("projectSlug").withSchema(TableName.Project), + db.ref("type").as("projectType").withSchema(TableName.Project) + ); + + const dataSources = await (tx || db.replicaNode())(TableName.SecretScanningDataSource) + .where(`${TableName.SecretScanningDataSource}.connectionId`, connectionId) + .join(TableName.Project, `${TableName.SecretScanningDataSource}.projectId`, `${TableName.Project}.id`) + .select( + db.ref("name").withSchema(TableName.SecretScanningDataSource), + db.ref("id").withSchema(TableName.SecretScanningDataSource), + db.ref("id").as("projectId").withSchema(TableName.Project), + db.ref("name").as("projectName").withSchema(TableName.Project), + db.ref("slug").as("projectSlug").withSchema(TableName.Project), + db.ref("type").as("projectType").withSchema(TableName.Project) + ); + + return transformUsageToProjects({ + secretSyncs, + secretRotations, + dataSources, + externalCas + }); + }; + + return { ...appConnectionOrm, findAppConnectionUsageById, findWithProjectDetails }; }; diff --git a/backend/src/services/app-connection/app-connection-fns.ts b/backend/src/services/app-connection/app-connection-fns.ts index 5aacab1b1..f88b5a357 100644 --- a/backend/src/services/app-connection/app-connection-fns.ts +++ b/backend/src/services/app-connection/app-connection-fns.ts @@ -1,3 +1,4 @@ +import { ProjectType } from "@app/db/schemas"; import { TAppConnections } from "@app/db/schemas/app-connections"; import { getOCIConnectionListItem, @@ -8,6 +9,8 @@ import { getOracleDBConnectionListItem, OracleDBConnectionMethod } from "@app/ee import { TGatewayServiceFactory } from "@app/ee/services/gateway/gateway-service"; import { TGatewayV2ServiceFactory } from "@app/ee/services/gateway-v2/gateway-v2-service"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; +import { SECRET_ROTATION_CONNECTION_MAP } from "@app/ee/services/secret-rotation-v2/secret-rotation-v2-maps"; +import { SECRET_SCANNING_DATA_SOURCE_CONNECTION_MAP } from "@app/ee/services/secret-scanning-v2/secret-scanning-v2-maps"; import { crypto } from "@app/lib/crypto/cryptography"; import { BadRequestError } from "@app/lib/errors"; import { APP_CONNECTION_NAME_MAP, APP_CONNECTION_PLAN_MAP } from "@app/services/app-connection/app-connection-maps"; @@ -16,6 +19,7 @@ import { validateSqlConnectionCredentials } from "@app/services/app-connection/shared/sql"; import { KmsDataKey } from "@app/services/kms/kms-types"; +import { SECRET_SYNC_CONNECTION_MAP } from "@app/services/secret-sync/secret-sync-maps"; import { getOnePassConnectionListItem, @@ -133,7 +137,22 @@ import { } from "./windmill"; import { getZabbixConnectionListItem, validateZabbixConnectionCredentials, ZabbixConnectionMethod } from "./zabbix"; -export const listAppConnectionOptions = () => { +const SECRET_SYNC_APP_CONNECTION_MAP = Object.fromEntries( + Object.entries(SECRET_SYNC_CONNECTION_MAP).map(([key, value]) => [value, key]) +); + +const SECRET_ROTATION_APP_CONNECTION_MAP = Object.fromEntries( + Object.entries(SECRET_ROTATION_CONNECTION_MAP).map(([key, value]) => [value, key]) +); + +const SECRET_SCANNING_APP_CONNECTION_MAP = Object.fromEntries( + Object.entries(SECRET_SCANNING_DATA_SOURCE_CONNECTION_MAP).map(([key, value]) => [value, key]) +); + +// scott: ideally this would be derived from a utilized map like the above +const PKI_APP_CONNECTIONS = [AppConnection.AWS, AppConnection.Cloudflare, AppConnection.AzureADCS]; + +export const listAppConnectionOptions = (projectType?: ProjectType) => { return [ getAwsConnectionListItem(), getGitHubConnectionListItem(), @@ -173,22 +192,51 @@ export const listAppConnectionOptions = () => { getDigitalOceanConnectionListItem(), getNetlifyConnectionListItem(), getOktaConnectionListItem() - ].sort((a, b) => a.name.localeCompare(b.name)); + ] + .filter((option) => { + switch (projectType) { + case ProjectType.SecretManager: + return ( + Boolean(SECRET_SYNC_APP_CONNECTION_MAP[option.app]) || + Boolean(SECRET_ROTATION_APP_CONNECTION_MAP[option.app]) + ); + case ProjectType.SecretScanning: + return Boolean(SECRET_SCANNING_APP_CONNECTION_MAP[option.app]); + case ProjectType.CertificateManager: + return PKI_APP_CONNECTIONS.includes(option.app); + case ProjectType.KMS: + return false; + case ProjectType.SSH: + return false; + default: + return true; + } + }) + .sort((a, b) => a.name.localeCompare(b.name)); }; export const encryptAppConnectionCredentials = async ({ orgId, credentials, - kmsService + kmsService, + projectId }: { orgId: string; credentials: TAppConnection["credentials"]; kmsService: TAppConnectionServiceFactoryDep["kmsService"]; + projectId: string | null | undefined; }) => { - const { encryptor } = await kmsService.createCipherPairWithDataKey({ - type: KmsDataKey.Organization, - orgId - }); + const { encryptor } = await kmsService.createCipherPairWithDataKey( + projectId + ? { + type: KmsDataKey.SecretManager, + projectId + } + : { + type: KmsDataKey.Organization, + orgId + } + ); const { cipherTextBlob: encryptedCredentialsBlob } = encryptor({ plainText: Buffer.from(JSON.stringify(credentials)) @@ -200,16 +248,22 @@ export const encryptAppConnectionCredentials = async ({ export const decryptAppConnectionCredentials = async ({ orgId, encryptedCredentials, - kmsService + kmsService, + projectId }: { orgId: string; encryptedCredentials: Buffer; kmsService: TAppConnectionServiceFactoryDep["kmsService"]; + projectId: string | null | undefined; }) => { - const { decryptor } = await kmsService.createCipherPairWithDataKey({ - type: KmsDataKey.Organization, - orgId - }); + const { decryptor } = await kmsService.createCipherPairWithDataKey( + projectId + ? { type: KmsDataKey.SecretManager, projectId } + : { + type: KmsDataKey.Organization, + orgId + } + ); const decryptedPlainTextBlob = decryptor({ cipherTextBlob: encryptedCredentials @@ -343,6 +397,7 @@ export const decryptAppConnection = async ( credentials: await decryptAppConnectionCredentials({ encryptedCredentials: appConnection.encryptedCredentials, orgId: appConnection.orgId, + projectId: appConnection.projectId, kmsService }), credentialsHash: crypto.nativeCrypto.createHash("sha256").update(appConnection.encryptedCredentials).digest("hex") @@ -413,3 +468,73 @@ export const enterpriseAppCheck = async ( }); } }; + +type Resource = { + name: string; + id: string; + projectId: string; + projectName: string; + projectSlug: string; + projectType: string; +}; + +type UsageData = { + secretSyncs: Resource[]; + secretRotations: Resource[]; + dataSources: Resource[]; + externalCas: Resource[]; +}; + +type ResourceSummary = { + name: string; + id: string; +}; + +type ProjectWithResources = { + id: string; + name: string; + slug: string; + type: ProjectType; + resources: { + secretSyncs: ResourceSummary[]; + secretRotations: ResourceSummary[]; + dataSources: ResourceSummary[]; + externalCas: (ResourceSummary & { appConnectionId?: string; dnsAppConnectionId?: string })[]; + }; +}; + +export const transformUsageToProjects = (data: UsageData): ProjectWithResources[] => { + const projectMap = new Map(); + + Object.entries(data).forEach(([resourceType, resources]) => { + resources.forEach((resource) => { + const { projectId, projectName, projectSlug, projectType, name, id, ...rest } = resource; + + const projectKey = projectId; + + if (!projectMap.has(projectKey)) { + projectMap.set(projectKey, { + id: projectId, + name: projectName, + slug: projectSlug, + type: projectType as ProjectType, + resources: { + secretSyncs: [], + secretRotations: [], + dataSources: [], + externalCas: [] + } + }); + } + + const project = projectMap.get(projectKey)!; + project.resources[resourceType as keyof ProjectWithResources["resources"]].push({ + name, + id, + ...rest + }); + }); + }); + + return Array.from(projectMap.values()); +}; diff --git a/backend/src/services/app-connection/app-connection-schemas.ts b/backend/src/services/app-connection/app-connection-schemas.ts index d0dcb1a54..3f6e3914a 100644 --- a/backend/src/services/app-connection/app-connection-schemas.ts +++ b/backend/src/services/app-connection/app-connection-schemas.ts @@ -13,7 +13,15 @@ export const BaseAppConnectionSchema = AppConnectionsSchema.omit({ app: true, method: true }).extend({ - credentialsHash: z.string().optional() + credentialsHash: z.string().optional(), + project: z + .object({ + name: z.string(), + id: z.string(), + type: z.string(), + slug: z.string() + }) + .nullish() }); export const GenericCreateAppConnectionFieldsSchema = ( @@ -28,6 +36,7 @@ export const GenericCreateAppConnectionFieldsSchema = ( .max(256, "Description cannot exceed 256 characters") .nullish() .describe(AppConnections.CREATE(app).description), + projectId: z.string().optional().describe(AppConnections.CREATE(app).projectId), isPlatformManagedCredentials: supportsPlatformManagedCredentials ? z.boolean().optional().default(false).describe(AppConnections.CREATE(app).isPlatformManagedCredentials) : z diff --git a/backend/src/services/app-connection/app-connection-service.ts b/backend/src/services/app-connection/app-connection-service.ts index f5654d2fb..19d66b9fd 100644 --- a/backend/src/services/app-connection/app-connection-service.ts +++ b/backend/src/services/app-connection/app-connection-service.ts @@ -1,5 +1,6 @@ import { ForbiddenError, subject } from "@casl/ability"; +import { ActionProjectType, TAppConnections } from "@app/db/schemas"; import { ValidateOCIConnectionCredentialsSchema } from "@app/ee/services/app-connections/oci"; import { ociConnectionService } from "@app/ee/services/app-connections/oci/oci-connection-service"; import { ValidateOracleDBConnectionCredentialsSchema } from "@app/ee/services/app-connections/oracledb"; @@ -14,6 +15,10 @@ import { OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { + ProjectPermissionAppConnectionActions, + ProjectPermissionSub +} from "@app/ee/services/permission/project-permission"; import { crypto } from "@app/lib/crypto/cryptography"; import { DatabaseErrorCode } from "@app/lib/error-codes"; import { BadRequestError, DatabaseError, NotFoundError } from "@app/lib/errors"; @@ -27,9 +32,8 @@ import { TRANSITION_CONNECTION_CREDENTIALS_TO_PLATFORM, validateAppConnectionCredentials } from "@app/services/app-connection/app-connection-fns"; -import { auth0ConnectionService } from "@app/services/app-connection/auth0/auth0-connection-service"; -import { githubRadarConnectionService } from "@app/services/app-connection/github-radar/github-radar-connection-service"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; +import { TProjectDALFactory } from "@app/services/project/project-dal"; import { ValidateOnePassConnectionCredentialsSchema } from "./1password"; import { onePassConnectionService } from "./1password/1password-connection-service"; @@ -41,10 +45,13 @@ import { TAppConnectionConfig, TAppConnectionRaw, TCreateAppConnectionDTO, + TGetAppConnectionByNameDTO, TUpdateAppConnectionDTO, - TValidateAppConnectionCredentialsSchema + TValidateAppConnectionCredentialsSchema, + TValidateAppConnectionUsageByIdDTO } from "./app-connection-types"; import { ValidateAuth0ConnectionCredentialsSchema } from "./auth0"; +import { auth0ConnectionService } from "./auth0/auth0-connection-service"; import { ValidateAwsConnectionCredentialsSchema } from "./aws"; import { awsConnectionService } from "./aws/aws-connection-service"; import { ValidateAzureADCSConnectionCredentialsSchema } from "./azure-adcs/azure-adcs-connection-schemas"; @@ -73,6 +80,7 @@ import { gcpConnectionService } from "./gcp/gcp-connection-service"; import { ValidateGitHubConnectionCredentialsSchema } from "./github"; import { githubConnectionService } from "./github/github-connection-service"; import { ValidateGitHubRadarConnectionCredentialsSchema } from "./github-radar"; +import { githubRadarConnectionService } from "./github-radar/github-radar-connection-service"; import { ValidateGitLabConnectionCredentialsSchema } from "./gitlab"; import { gitlabConnectionService } from "./gitlab/gitlab-connection-service"; import { ValidateHCVaultConnectionCredentialsSchema } from "./hc-vault"; @@ -108,13 +116,14 @@ import { zabbixConnectionService } from "./zabbix/zabbix-connection-service"; export type TAppConnectionServiceFactoryDep = { appConnectionDAL: TAppConnectionDALFactory; - permissionService: Pick; + permissionService: Pick; kmsService: Pick; licenseService: Pick; gatewayService: Pick; gatewayV2Service: Pick; gatewayDAL: Pick; gatewayV2DAL: Pick; + projectDAL: Pick; }; export type TAppConnectionServiceFactory = ReturnType; @@ -168,29 +177,64 @@ export const appConnectionServiceFactory = ({ gatewayService, gatewayV2Service, gatewayDAL, - gatewayV2DAL + gatewayV2DAL, + projectDAL }: TAppConnectionServiceFactoryDep) => { - const listAppConnectionsByOrg = async (actor: OrgServiceActor, app?: AppConnection) => { - const { permission } = await permissionService.getOrgPermission( - actor.type, - actor.id, - actor.orgId, - actor.authMethod, - actor.orgId - ); + const listAppConnections = async (actor: OrgServiceActor, app?: AppConnection, projectId?: string) => { + let appConnections: TAppConnections[]; - ForbiddenError.from(permission).throwUnlessCan( - OrgPermissionAppConnectionActions.Read, - OrgPermissionSubjects.AppConnections - ); + if (projectId) { + const { permission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + projectId, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.Any + }); - const appConnections = await appConnectionDAL.find( - app - ? { orgId: actor.orgId, app } - : { - orgId: actor.orgId - } - ); + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionAppConnectionActions.Read, + ProjectPermissionSub.AppConnections + ); + + appConnections = ( + await appConnectionDAL.findWithProjectDetails({ + projectId, + ...(app ? { app } : {}) + }) + ).filter((appConnection) => + permission.can( + ProjectPermissionAppConnectionActions.Read, + subject(ProjectPermissionSub.AppConnections, { connectionId: appConnection.id }) + ) + ); + } else { + const { permission } = await permissionService.getOrgPermission( + actor.type, + actor.id, + actor.orgId, + actor.authMethod, + actor.orgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + OrgPermissionAppConnectionActions.Read, + OrgPermissionSubjects.AppConnections + ); + + appConnections = ( + await appConnectionDAL.findWithProjectDetails({ + orgId: actor.orgId, + ...(app ? { app } : {}) + }) + ).filter((appConnection) => + permission.can( + OrgPermissionAppConnectionActions.Read, + subject(OrgPermissionSubjects.AppConnections, { connectionId: appConnection.id }) + ) + ); + } return Promise.all( appConnections @@ -204,18 +248,34 @@ export const appConnectionServiceFactory = ({ if (!appConnection) throw new NotFoundError({ message: `Could not find App Connection with ID ${connectionId}` }); - const { permission } = await permissionService.getOrgPermission( - actor.type, - actor.id, - actor.orgId, - actor.authMethod, - appConnection.orgId - ); + if (appConnection.projectId) { + const { permission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + projectId: appConnection.projectId, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.Any + }); - ForbiddenError.from(permission).throwUnlessCan( - OrgPermissionAppConnectionActions.Read, - OrgPermissionSubjects.AppConnections - ); + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionAppConnectionActions.Read, + subject(ProjectPermissionSub.AppConnections, { connectionId }) + ); + } else { + const { permission } = await permissionService.getOrgPermission( + actor.type, + actor.id, + actor.orgId, + actor.authMethod, + appConnection.orgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + OrgPermissionAppConnectionActions.Read, + subject(OrgPermissionSubjects.AppConnections, { connectionId }) + ); + } if (appConnection.app !== app) throw new BadRequestError({ message: `App Connection with ID ${connectionId} is not for App "${app}"` }); @@ -223,24 +283,49 @@ export const appConnectionServiceFactory = ({ return decryptAppConnection(appConnection, kmsService); }; - const findAppConnectionByName = async (app: AppConnection, connectionName: string, actor: OrgServiceActor) => { - const appConnection = await appConnectionDAL.findOne({ name: connectionName, orgId: actor.orgId }); + const findAppConnectionByName = async ( + app: AppConnection, + { connectionName, projectId }: TGetAppConnectionByNameDTO, + actor: OrgServiceActor + ) => { + const appConnection = await appConnectionDAL.findOne({ + name: connectionName, + ...(projectId ? { projectId } : { orgId: actor.orgId, projectId: null }) + }); if (!appConnection) - throw new NotFoundError({ message: `Could not find App Connection with name ${connectionName}` }); + throw new NotFoundError({ + message: `Could not find App Connection with name ${connectionName} in ${projectId ? "project" : "organization"} scope.` + }); - const { permission } = await permissionService.getOrgPermission( - actor.type, - actor.id, - actor.orgId, - actor.authMethod, - appConnection.orgId - ); + if (appConnection.projectId) { + const { permission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + projectId: appConnection.projectId, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.Any + }); - ForbiddenError.from(permission).throwUnlessCan( - OrgPermissionAppConnectionActions.Read, - OrgPermissionSubjects.AppConnections - ); + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionAppConnectionActions.Read, + subject(ProjectPermissionSub.AppConnections, { connectionId: appConnection.id }) + ); + } else { + const { permission } = await permissionService.getOrgPermission( + actor.type, + actor.id, + actor.orgId, + actor.authMethod, + appConnection.orgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + OrgPermissionAppConnectionActions.Read, + subject(OrgPermissionSubjects.AppConnections, { connectionId: appConnection.id }) + ); + } if (appConnection.app !== app) throw new BadRequestError({ message: `App Connection with name ${connectionName} is not for App "${app}"` }); @@ -249,10 +334,10 @@ export const appConnectionServiceFactory = ({ }; const createAppConnection = async ( - { method, app, credentials, gatewayId, ...params }: TCreateAppConnectionDTO, + { method, app, credentials, gatewayId, projectId, ...params }: TCreateAppConnectionDTO, actor: OrgServiceActor ) => { - const { permission } = await permissionService.getOrgPermission( + const { permission: orgPermission } = await permissionService.getOrgPermission( actor.type, actor.id, actor.orgId, @@ -260,13 +345,33 @@ export const appConnectionServiceFactory = ({ actor.orgId ); - ForbiddenError.from(permission).throwUnlessCan( - OrgPermissionAppConnectionActions.Create, - OrgPermissionSubjects.AppConnections - ); + if (projectId) { + const project = await projectDAL.findProjectById(projectId); + + if (!project) throw new BadRequestError({ message: `Could not find project with ID ${projectId}` }); + + const { permission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + projectId, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.Any + }); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionAppConnectionActions.Create, + ProjectPermissionSub.AppConnections + ); + } else { + ForbiddenError.from(orgPermission).throwUnlessCan( + OrgPermissionAppConnectionActions.Create, + OrgPermissionSubjects.AppConnections + ); + } if (gatewayId) { - ForbiddenError.from(permission).throwUnlessCan( + ForbiddenError.from(orgPermission).throwUnlessCan( OrgPermissionGatewayActions.AttachGateways, OrgPermissionSubjects.Gateway ); @@ -304,7 +409,8 @@ export const appConnectionServiceFactory = ({ const encryptedCredentials = await encryptAppConnectionCredentials({ credentials: connectionCredentials, orgId: actor.orgId, - kmsService + kmsService, + projectId }); return appConnectionDAL.create({ @@ -313,6 +419,7 @@ export const appConnectionServiceFactory = ({ method, app, gatewayId, + projectId, ...params }); }; @@ -365,7 +472,7 @@ export const appConnectionServiceFactory = ({ "Failed to update app connection due to plan restriction. Upgrade plan to access enterprise app connections." ); - const { permission } = await permissionService.getOrgPermission( + const { permission: orgPermission } = await permissionService.getOrgPermission( actor.type, actor.id, actor.orgId, @@ -373,13 +480,29 @@ export const appConnectionServiceFactory = ({ appConnection.orgId ); - ForbiddenError.from(permission).throwUnlessCan( - OrgPermissionAppConnectionActions.Edit, - OrgPermissionSubjects.AppConnections - ); + if (appConnection.projectId) { + const { permission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + projectId: appConnection.projectId, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.Any + }); - if (gatewayId !== appConnection.gatewayId) { ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionAppConnectionActions.Edit, + subject(ProjectPermissionSub.AppConnections, { connectionId }) + ); + } else { + ForbiddenError.from(orgPermission).throwUnlessCan( + OrgPermissionAppConnectionActions.Edit, + subject(OrgPermissionSubjects.AppConnections, { connectionId }) + ); + } + + if (gatewayId !== undefined && gatewayId !== appConnection.gatewayId) { + ForbiddenError.from(orgPermission).throwUnlessCan( OrgPermissionGatewayActions.AttachGateways, OrgPermissionSubjects.Gateway ); @@ -441,7 +564,8 @@ export const appConnectionServiceFactory = ({ ? await encryptAppConnectionCredentials({ credentials: connectionCredentials, orgId: actor.orgId, - kmsService + kmsService, + projectId: appConnection.projectId }) : undefined; @@ -491,18 +615,34 @@ export const appConnectionServiceFactory = ({ if (!appConnection) throw new NotFoundError({ message: `Could not find App Connection with ID ${connectionId}` }); - const { permission } = await permissionService.getOrgPermission( - actor.type, - actor.id, - actor.orgId, - actor.authMethod, - appConnection.orgId - ); + if (appConnection.projectId) { + const { permission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + projectId: appConnection.projectId, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.Any + }); - ForbiddenError.from(permission).throwUnlessCan( - OrgPermissionAppConnectionActions.Delete, - OrgPermissionSubjects.AppConnections - ); + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionAppConnectionActions.Delete, + subject(ProjectPermissionSub.AppConnections, { connectionId }) + ); + } else { + const { permission } = await permissionService.getOrgPermission( + actor.type, + actor.id, + actor.orgId, + actor.authMethod, + appConnection.orgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + OrgPermissionAppConnectionActions.Delete, + subject(OrgPermissionSubjects.AppConnections, { connectionId }) + ); + } if (appConnection.app !== app) throw new BadRequestError({ message: `App Connection with ID ${connectionId} is not for App "${app}"` }); @@ -544,18 +684,34 @@ export const appConnectionServiceFactory = ({ "Failed to connect app due to plan restriction. Upgrade plan to access enterprise app connections." ); - const { permission: orgPermission } = await permissionService.getOrgPermission( - actor.type, - actor.id, - appConnection.orgId, - actor.authMethod, - actor.orgId - ); + if (appConnection.projectId) { + const { permission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + projectId: appConnection.projectId, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.Any + }); - ForbiddenError.from(orgPermission).throwUnlessCan( - OrgPermissionAppConnectionActions.Connect, - subject(OrgPermissionSubjects.AppConnections, { connectionId: appConnection.id }) - ); + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionAppConnectionActions.Connect, + subject(ProjectPermissionSub.AppConnections, { connectionId }) + ); + } else { + const { permission: orgPermission } = await permissionService.getOrgPermission( + actor.type, + actor.id, + appConnection.orgId, + actor.authMethod, + actor.orgId + ); + + ForbiddenError.from(orgPermission).throwUnlessCan( + OrgPermissionAppConnectionActions.Connect, + subject(OrgPermissionSubjects.AppConnections, { connectionId }) + ); + } if (appConnection.app !== app) throw new BadRequestError({ @@ -569,7 +725,23 @@ export const appConnectionServiceFactory = ({ return connection as T; }; - const listAvailableAppConnectionsForUser = async (app: AppConnection, actor: OrgServiceActor) => { + const validateAppConnectionUsageById = async ( + app: AppConnection, + { connectionId, projectId }: TValidateAppConnectionUsageByIdDTO, + actor: OrgServiceActor + ) => { + const appConnection = await connectAppConnectionById(app, connectionId, actor); + + if (appConnection.projectId && appConnection.projectId !== projectId) { + throw new BadRequestError({ + message: `You cannot connect project App Connection with ID "${appConnection.id}" from project with ID "${appConnection.projectId}" to project with ID "${projectId}"` + }); + } + + return appConnection; + }; + + const listAvailableAppConnectionsForUser = async (app: AppConnection, actor: OrgServiceActor, projectId?: string) => { const { permission: orgPermission } = await permissionService.getOrgPermission( actor.type, actor.id, @@ -578,28 +750,89 @@ export const appConnectionServiceFactory = ({ actor.orgId ); - const appConnections = await appConnectionDAL.find({ app, orgId: actor.orgId }); + let availableProjectConnections: TAppConnections[] = []; - const availableConnections = appConnections.filter((connection) => + if (projectId) { + const project = await projectDAL.findProjectById(projectId); + + if (!project) throw new BadRequestError({ message: `Could not find project with ID ${projectId}` }); + + const { permission: projectPermission } = await permissionService.getProjectPermission({ + actor: actor.type, + actorId: actor.id, + projectId, + actorAuthMethod: actor.authMethod, + actorOrgId: actor.orgId, + actionProjectType: ActionProjectType.Any + }); + + ForbiddenError.from(projectPermission).throwUnlessCan( + ProjectPermissionAppConnectionActions.Connect, + ProjectPermissionSub.AppConnections + ); + + const projectAppConnections = await appConnectionDAL.find({ app, projectId }); + + availableProjectConnections = projectAppConnections.filter((connection) => + projectPermission.can( + ProjectPermissionAppConnectionActions.Connect, + subject(ProjectPermissionSub.AppConnections, { connectionId: connection.id }) + ) + ); + } + + const orgAppConnections = await appConnectionDAL.find({ app, orgId: actor.orgId, projectId: null }); + + const availableOrgConnections = orgAppConnections.filter((connection) => orgPermission.can( OrgPermissionAppConnectionActions.Connect, subject(OrgPermissionSubjects.AppConnections, { connectionId: connection.id }) ) ); - return availableConnections as Omit[]; + return [...availableOrgConnections, ...availableProjectConnections].sort((a, b) => + a.name.toLowerCase().localeCompare(b.name.toLowerCase()) + ) as Omit[]; + }; + + const findAppConnectionUsageById = async (app: AppConnection, connectionId: string, actor: OrgServiceActor) => { + const appConnection = await appConnectionDAL.findById(connectionId); + + if (!appConnection) throw new NotFoundError({ message: `Could not find App Connection with ID ${connectionId}` }); + + const { permission } = await permissionService.getOrgPermission( + actor.type, + actor.id, + actor.orgId, + actor.authMethod, + appConnection.orgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + OrgPermissionAppConnectionActions.Read, + OrgPermissionSubjects.AppConnections + ); + + if (appConnection.app !== app) + throw new BadRequestError({ message: `App Connection with ID ${connectionId} is not for App "${app}"` }); + + const projectUsage = await appConnectionDAL.findAppConnectionUsageById(connectionId); + + return projectUsage; }; return { listAppConnectionOptions, - listAppConnectionsByOrg, + listAppConnections, findAppConnectionById, findAppConnectionByName, createAppConnection, updateAppConnection, deleteAppConnection, connectAppConnectionById, + validateAppConnectionUsageById, listAvailableAppConnectionsForUser, + findAppConnectionUsageById, github: githubConnectionService(connectAppConnectionById, gatewayService, gatewayV2Service), githubRadar: githubRadarConnectionService(connectAppConnectionById), gcp: gcpConnectionService(connectAppConnectionById), diff --git a/backend/src/services/app-connection/app-connection-types.ts b/backend/src/services/app-connection/app-connection-types.ts index e4af79926..600438fc9 100644 --- a/backend/src/services/app-connection/app-connection-types.ts +++ b/backend/src/services/app-connection/app-connection-types.ts @@ -316,13 +316,23 @@ export type TSqlConnectionInput = export type TCreateAppConnectionDTO = Pick< TAppConnectionInput, - "credentials" | "method" | "name" | "app" | "description" | "isPlatformManagedCredentials" | "gatewayId" + "credentials" | "method" | "name" | "app" | "description" | "isPlatformManagedCredentials" | "gatewayId" | "projectId" >; -export type TUpdateAppConnectionDTO = Partial> & { +export type TUpdateAppConnectionDTO = Partial> & { connectionId: string; }; +export type TGetAppConnectionByNameDTO = { + connectionName: string; + projectId?: string; +}; + +export type TValidateAppConnectionUsageByIdDTO = { + connectionId: string; + projectId: string; +}; + export type TAppConnectionConfig = | TAwsConnectionConfig | TGitHubConnectionConfig diff --git a/backend/src/services/app-connection/auth0/auth0-connection-fns.ts b/backend/src/services/app-connection/auth0/auth0-connection-fns.ts index de4faf683..944b1f69a 100644 --- a/backend/src/services/app-connection/auth0/auth0-connection-fns.ts +++ b/backend/src/services/app-connection/auth0/auth0-connection-fns.ts @@ -51,7 +51,7 @@ const authorizeAuth0Connection = async ({ }; export const getAuth0ConnectionAccessToken = async ( - { id, orgId, credentials }: TAuth0Connection, + { id, orgId, credentials, projectId }: TAuth0Connection, appConnectionDAL: Pick, kmsService: Pick ) => { @@ -72,7 +72,8 @@ export const getAuth0ConnectionAccessToken = async ( const encryptedCredentials = await encryptAppConnectionCredentials({ credentials: updatedCredentials, orgId, - kmsService + kmsService, + projectId }); await appConnectionDAL.updateById(id, { encryptedCredentials }); diff --git a/backend/src/services/app-connection/azure-adcs/azure-adcs-connection-fns.ts b/backend/src/services/app-connection/azure-adcs/azure-adcs-connection-fns.ts index 552bd89f5..5e86f6740 100644 --- a/backend/src/services/app-connection/azure-adcs/azure-adcs-connection-fns.ts +++ b/backend/src/services/app-connection/azure-adcs/azure-adcs-connection-fns.ts @@ -352,7 +352,8 @@ export const getAzureADCSConnectionCredentials = async ( const credentials = (await decryptAppConnectionCredentials({ orgId: appConnection.orgId, kmsService, - encryptedCredentials: appConnection.encryptedCredentials + encryptedCredentials: appConnection.encryptedCredentials, + projectId: appConnection.projectId })) as { username: string; password: string; diff --git a/backend/src/services/app-connection/azure-client-secrets/azure-client-secrets-connection-fns.ts b/backend/src/services/app-connection/azure-client-secrets/azure-client-secrets-connection-fns.ts index 2614cfd12..22cec0ae7 100644 --- a/backend/src/services/app-connection/azure-client-secrets/azure-client-secrets-connection-fns.ts +++ b/backend/src/services/app-connection/azure-client-secrets/azure-client-secrets-connection-fns.ts @@ -57,6 +57,7 @@ export const getAzureConnectionAccessToken = async ( const credentials = (await decryptAppConnectionCredentials({ orgId: appConnection.orgId, kmsService, + projectId: appConnection.projectId, encryptedCredentials: appConnection.encryptedCredentials })) as TAzureClientSecretsConnectionCredentials; @@ -93,6 +94,7 @@ export const getAzureConnectionAccessToken = async ( const encryptedCredentials = await encryptAppConnectionCredentials({ credentials: updatedCredentials, orgId: appConnection.orgId, + projectId: appConnection.projectId, kmsService }); @@ -102,6 +104,7 @@ export const getAzureConnectionAccessToken = async ( case AzureClientSecretsConnectionMethod.ClientSecret: const accessTokenCredentials = (await decryptAppConnectionCredentials({ orgId: appConnection.orgId, + projectId: appConnection.projectId, kmsService, encryptedCredentials: appConnection.encryptedCredentials })) as TAzureClientSecretsConnectionClientSecretCredentials; @@ -129,6 +132,7 @@ export const getAzureConnectionAccessToken = async ( const encryptedClientCredentials = await encryptAppConnectionCredentials({ credentials: updatedClientCredentials, orgId: appConnection.orgId, + projectId: appConnection.projectId, kmsService }); diff --git a/backend/src/services/app-connection/azure-devops/azure-devops-fns.ts b/backend/src/services/app-connection/azure-devops/azure-devops-fns.ts index a3a9f10bd..0bd2188ac 100644 --- a/backend/src/services/app-connection/azure-devops/azure-devops-fns.ts +++ b/backend/src/services/app-connection/azure-devops/azure-devops-fns.ts @@ -70,7 +70,8 @@ export const getAzureDevopsConnection = async ( const oauthCredentials = (await decryptAppConnectionCredentials({ orgId: appConnection.orgId, kmsService, - encryptedCredentials: appConnection.encryptedCredentials + encryptedCredentials: appConnection.encryptedCredentials, + projectId: appConnection.projectId })) as TAzureDevOpsConnectionCredentials; if (!("refreshToken" in oauthCredentials)) { @@ -100,7 +101,8 @@ export const getAzureDevopsConnection = async ( const encryptedOAuthCredentials = await encryptAppConnectionCredentials({ credentials: updatedOAuthCredentials, orgId: appConnection.orgId, - kmsService + kmsService, + projectId: appConnection.projectId }); await appConnectionDAL.updateById(appConnection.id, { encryptedCredentials: encryptedOAuthCredentials }); @@ -111,7 +113,8 @@ export const getAzureDevopsConnection = async ( const accessTokenCredentials = (await decryptAppConnectionCredentials({ orgId: appConnection.orgId, kmsService, - encryptedCredentials: appConnection.encryptedCredentials + encryptedCredentials: appConnection.encryptedCredentials, + projectId: appConnection.projectId })) as { accessToken: string }; if (!("accessToken" in accessTokenCredentials)) { @@ -124,7 +127,8 @@ export const getAzureDevopsConnection = async ( const clientSecretCredentials = (await decryptAppConnectionCredentials({ orgId: appConnection.orgId, kmsService, - encryptedCredentials: appConnection.encryptedCredentials + encryptedCredentials: appConnection.encryptedCredentials, + projectId: appConnection.projectId })) as TAzureDevOpsConnectionClientSecretCredentials; const { accessToken, expiresAt, clientId, clientSecret, tenantId: clientTenantId } = clientSecretCredentials; @@ -153,7 +157,8 @@ export const getAzureDevopsConnection = async ( const encryptedClientCredentials = await encryptAppConnectionCredentials({ credentials: updatedClientCredentials, orgId: appConnection.orgId, - kmsService + kmsService, + projectId: appConnection.projectId }); await appConnectionDAL.updateById(appConnection.id, { encryptedCredentials: encryptedClientCredentials }); diff --git a/backend/src/services/app-connection/azure-key-vault/azure-key-vault-connection-fns.ts b/backend/src/services/app-connection/azure-key-vault/azure-key-vault-connection-fns.ts index d6a260050..cd3583800 100644 --- a/backend/src/services/app-connection/azure-key-vault/azure-key-vault-connection-fns.ts +++ b/backend/src/services/app-connection/azure-key-vault/azure-key-vault-connection-fns.ts @@ -58,7 +58,8 @@ export const getAzureConnectionAccessToken = async ( const oauthCredentials = (await decryptAppConnectionCredentials({ orgId: appConnection.orgId, kmsService, - encryptedCredentials: appConnection.encryptedCredentials + encryptedCredentials: appConnection.encryptedCredentials, + projectId: appConnection.projectId })) as TAzureKeyVaultConnectionCredentials; const { data } = await request.post( @@ -82,7 +83,8 @@ export const getAzureConnectionAccessToken = async ( const encryptedOAuthCredentials = await encryptAppConnectionCredentials({ credentials: updatedOAuthCredentials, orgId: appConnection.orgId, - kmsService + kmsService, + projectId: appConnection.projectId }); await appConnectionDAL.updateById(appConnection.id, { encryptedCredentials: encryptedOAuthCredentials }); @@ -95,7 +97,8 @@ export const getAzureConnectionAccessToken = async ( const clientSecretCredentials = (await decryptAppConnectionCredentials({ orgId: appConnection.orgId, kmsService, - encryptedCredentials: appConnection.encryptedCredentials + encryptedCredentials: appConnection.encryptedCredentials, + projectId: appConnection.projectId })) as TAzureKeyVaultConnectionClientSecretCredentials; const { accessToken, expiresAt, clientId, clientSecret, tenantId } = clientSecretCredentials; @@ -124,7 +127,8 @@ export const getAzureConnectionAccessToken = async ( const encryptedClientCredentials = await encryptAppConnectionCredentials({ credentials: updatedClientCredentials, orgId: appConnection.orgId, - kmsService + kmsService, + projectId: appConnection.projectId }); await appConnectionDAL.updateById(appConnection.id, { encryptedCredentials: encryptedClientCredentials }); diff --git a/backend/src/services/app-connection/camunda/camunda-connection-fns.ts b/backend/src/services/app-connection/camunda/camunda-connection-fns.ts index 91a033c0e..b764da336 100644 --- a/backend/src/services/app-connection/camunda/camunda-connection-fns.ts +++ b/backend/src/services/app-connection/camunda/camunda-connection-fns.ts @@ -40,7 +40,7 @@ const authorizeCamundaConnection = async ({ }; export const getCamundaConnectionAccessToken = async ( - { id, orgId, credentials }: TCamundaConnection, + { id, orgId, credentials, projectId }: TCamundaConnection, appConnectionDAL: Pick, kmsService: Pick ) => { @@ -61,7 +61,8 @@ export const getCamundaConnectionAccessToken = async ( const encryptedCredentials = await encryptAppConnectionCredentials({ credentials: updatedCredentials, orgId, - kmsService + kmsService, + projectId }); await appConnectionDAL.updateById(id, { encryptedCredentials }); diff --git a/backend/src/services/app-connection/databricks/databricks-connection-fns.ts b/backend/src/services/app-connection/databricks/databricks-connection-fns.ts index 8912ad936..a9128ec51 100644 --- a/backend/src/services/app-connection/databricks/databricks-connection-fns.ts +++ b/backend/src/services/app-connection/databricks/databricks-connection-fns.ts @@ -47,7 +47,7 @@ const authorizeDatabricksConnection = async ({ }; export const getDatabricksConnectionAccessToken = async ( - { id, orgId, credentials }: TDatabricksConnection, + { id, orgId, credentials, projectId }: TDatabricksConnection, appConnectionDAL: Pick, kmsService: Pick ) => { @@ -68,7 +68,8 @@ export const getDatabricksConnectionAccessToken = async ( const encryptedCredentials = await encryptAppConnectionCredentials({ credentials: updatedCredentials, orgId, - kmsService + kmsService, + projectId }); await appConnectionDAL.updateById(id, { encryptedCredentials }); diff --git a/backend/src/services/app-connection/gitlab/gitlab-connection-fns.ts b/backend/src/services/app-connection/gitlab/gitlab-connection-fns.ts index cb4e27e94..9499d6bf2 100644 --- a/backend/src/services/app-connection/gitlab/gitlab-connection-fns.ts +++ b/backend/src/services/app-connection/gitlab/gitlab-connection-fns.ts @@ -64,6 +64,7 @@ export const refreshGitLabToken = async ( refreshToken: string, appId: string, orgId: string, + projectId: string | undefined | null, appConnectionDAL: Pick, kmsService: Pick, instanceUrl?: string @@ -105,7 +106,8 @@ export const refreshGitLabToken = async ( expiresAt }, orgId, - kmsService + kmsService, + projectId }); await appConnectionDAL.updateById(appId, { encryptedCredentials }); @@ -238,6 +240,7 @@ export const getGitLabConnectionClient = async ( appConnection.credentials.refreshToken, appConnection.id, appConnection.orgId, + appConnection.projectId, appConnectionDAL, kmsService, appConnection.credentials.instanceUrl @@ -273,6 +276,7 @@ export const listGitLabProjects = async ({ appConnection.credentials.refreshToken, appConnection.id, appConnection.orgId, + appConnection.projectId, appConnectionDAL, kmsService, appConnection.credentials.instanceUrl @@ -341,6 +345,7 @@ export const listGitLabGroups = async ({ appConnection.credentials.refreshToken, appConnection.id, appConnection.orgId, + appConnection.projectId, appConnectionDAL, kmsService, appConnection.credentials.instanceUrl diff --git a/backend/src/services/app-connection/heroku/heroku-connection-fns.ts b/backend/src/services/app-connection/heroku/heroku-connection-fns.ts index 5a8533c83..adbc5cd2b 100644 --- a/backend/src/services/app-connection/heroku/heroku-connection-fns.ts +++ b/backend/src/services/app-connection/heroku/heroku-connection-fns.ts @@ -36,6 +36,7 @@ export const refreshHerokuToken = async ( refreshToken: string, appId: string, orgId: string, + projectId: string | null | undefined, appConnectionDAL: Pick, kmsService: Pick ): Promise => { @@ -64,7 +65,8 @@ export const refreshHerokuToken = async ( expiresAt: new Date(Date.now() + data.expires_in * 1000 - 60000) }, orgId, - kmsService + kmsService, + projectId }); await appConnectionDAL.updateById(appId, { encryptedCredentials }); @@ -186,6 +188,7 @@ export const listHerokuApps = async ({ appConnection.credentials.refreshToken, appConnection.id, appConnection.orgId, + appConnection.projectId, appConnectionDAL, kmsService ); diff --git a/backend/src/services/auth/auth-login-service.ts b/backend/src/services/auth/auth-login-service.ts index ede9e29e3..2a680b9b8 100644 --- a/backend/src/services/auth/auth-login-service.ts +++ b/backend/src/services/auth/auth-login-service.ts @@ -14,6 +14,8 @@ import { getServerCfg } from "@app/services/super-admin/super-admin-service"; import { TAuthTokenServiceFactory } from "../auth-token/auth-token-service"; import { TokenType } from "../auth-token/auth-token-types"; +import { TNotificationServiceFactory } from "../notification/notification-service"; +import { NotificationType } from "../notification/notification-types"; import { TOrgDALFactory } from "../org/org-dal"; import { getDefaultOrgMembershipRole } from "../org/org-role-fns"; import { TOrgMembershipDALFactory } from "../org-membership/org-membership-dal"; @@ -47,6 +49,7 @@ type TAuthLoginServiceFactoryDep = { totpService: Pick; auditLogService: Pick; orgMembershipDAL: TOrgMembershipDALFactory; + notificationService: Pick; }; export type TAuthLoginFactory = ReturnType; @@ -57,7 +60,8 @@ export const authLoginServiceFactory = ({ orgDAL, orgMembershipDAL, totpService, - auditLogService + auditLogService, + notificationService }: TAuthLoginServiceFactoryDep) => { /* * Private @@ -71,6 +75,16 @@ export const authLoginServiceFactory = ({ if (!isDeviceSeen) { const newDeviceList = devices.concat([{ ip, userAgent }]); await userDAL.updateById(user.id, { devices: JSON.stringify(newDeviceList) }, tx); + + await notificationService.createUserNotifications([ + { + userId: user.id, + type: NotificationType.LOGIN_FROM_NEW_DEVICE, + title: "Login From New Device", + body: `A new device with IP **${ip}** and User Agent **${userAgent}** has logged into your account.` + } + ]); + if (user.email) { await smtpService.sendMail({ template: SmtpTemplates.NewDeviceJoin, @@ -563,6 +577,18 @@ export const authLoginServiceFactory = ({ .filter(Boolean) as string[]; if (adminEmails.length > 0) { + await notificationService.createUserNotifications( + orgAdmins + .filter((admin) => admin.user.id !== user.id) + .map((admin) => ({ + userId: admin.user.id, + orgId: organizationId, + type: NotificationType.ADMIN_SSO_BYPASS, + title: "Security Alert: Admin SSO Bypass", + body: `The org admin **${user.email}** has bypassed enforced SSO login.` + })) + ); + await smtpService.sendMail({ recipients: adminEmails, subjectLine: "Security Alert: Admin SSO Bypass", diff --git a/backend/src/services/certificate-authority/acme/acme-certificate-authority-fns.ts b/backend/src/services/certificate-authority/acme/acme-certificate-authority-fns.ts index 830378ca8..b725e5584 100644 --- a/backend/src/services/certificate-authority/acme/acme-certificate-authority-fns.ts +++ b/backend/src/services/certificate-authority/acme/acme-certificate-authority-fns.ts @@ -42,10 +42,10 @@ import { route53DeleteTxtRecord, route53InsertTxtRecord } from "./dns-providers/ type TAcmeCertificateAuthorityFnsDeps = { appConnectionDAL: Pick; - appConnectionService: Pick; + appConnectionService: Pick; certificateAuthorityDAL: Pick< TCertificateAuthorityDALFactory, - "create" | "transaction" | "findByIdWithAssociatedCa" | "updateById" | "findWithAssociatedCa" + "create" | "transaction" | "findByIdWithAssociatedCa" | "updateById" | "findWithAssociatedCa" | "findById" >; externalCertificateAuthorityDAL: Pick; certificateDAL: Pick; @@ -152,7 +152,11 @@ export const AcmeCertificateAuthorityFns = ({ } // validates permission to connect - await appConnectionService.connectAppConnectionById(appConnection.app as AppConnection, dnsAppConnectionId, actor); + await appConnectionService.validateAppConnectionUsageById( + appConnection.app as AppConnection, + { connectionId: dnsAppConnectionId, projectId }, + actor + ); const caEntity = await certificateAuthorityDAL.transaction(async (tx) => { try { @@ -242,10 +246,16 @@ export const AcmeCertificateAuthorityFns = ({ }); } + const ca = await certificateAuthorityDAL.findById(id); + + if (!ca) { + throw new NotFoundError({ message: `Could not find Certificate Authority with ID "${id}"` }); + } + // validates permission to connect - await appConnectionService.connectAppConnectionById( + await appConnectionService.validateAppConnectionUsageById( appConnection.app as AppConnection, - dnsAppConnectionId, + { connectionId: dnsAppConnectionId, projectId: ca.projectId }, actor ); diff --git a/backend/src/services/certificate-authority/azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts b/backend/src/services/certificate-authority/azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts index 0e2619a27..25c5590eb 100644 --- a/backend/src/services/certificate-authority/azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts +++ b/backend/src/services/certificate-authority/azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts @@ -41,10 +41,10 @@ import { type TAzureAdCsCertificateAuthorityFnsDeps = { appConnectionDAL: Pick; - appConnectionService: Pick; + appConnectionService: Pick; certificateAuthorityDAL: Pick< TCertificateAuthorityDALFactory, - "create" | "transaction" | "findByIdWithAssociatedCa" | "updateById" | "findWithAssociatedCa" + "create" | "transaction" | "findByIdWithAssociatedCa" | "updateById" | "findWithAssociatedCa" | "findById" >; externalCertificateAuthorityDAL: Pick; certificateDAL: Pick; @@ -621,9 +621,9 @@ export const AzureAdCsCertificateAuthorityFns = ({ }); } - await appConnectionService.connectAppConnectionById( + await appConnectionService.validateAppConnectionUsageById( appConnection.app as AppConnection, - azureAdcsConnectionId, + { connectionId: azureAdcsConnectionId, projectId }, actor ); @@ -705,9 +705,15 @@ export const AzureAdCsCertificateAuthorityFns = ({ }); } - await appConnectionService.connectAppConnectionById( + const ca = await certificateAuthorityDAL.findById(id); + + if (!ca) { + throw new NotFoundError({ message: `Could not find Certificate Authority with ID "${id}"` }); + } + + await appConnectionService.validateAppConnectionUsageById( appConnection.app as AppConnection, - azureAdcsConnectionId, + { connectionId: azureAdcsConnectionId, projectId: ca.projectId }, actor ); diff --git a/backend/src/services/certificate-authority/certificate-authority-queue.ts b/backend/src/services/certificate-authority/certificate-authority-queue.ts index 0e015da03..21f7b71e6 100644 --- a/backend/src/services/certificate-authority/certificate-authority-queue.ts +++ b/backend/src/services/certificate-authority/certificate-authority-queue.ts @@ -35,7 +35,7 @@ import { type TCertificateAuthorityQueueFactoryDep = { certificateAuthorityDAL: TCertificateAuthorityDALFactory; appConnectionDAL: Pick; - appConnectionService: Pick; + appConnectionService: Pick; externalCertificateAuthorityDAL: Pick; keyStore: Pick; certificateAuthorityCrlDAL: TCertificateAuthorityCrlDALFactory; diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index 6cf55fc52..02c5a488a 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -43,7 +43,7 @@ import { TCreateInternalCertificateAuthorityDTO } from "./internal/internal-cert type TCertificateAuthorityServiceFactoryDep = { appConnectionDAL: Pick; - appConnectionService: Pick; + appConnectionService: Pick; certificateAuthorityDAL: Pick< TCertificateAuthorityDALFactory, | "transaction" diff --git a/backend/src/services/external-migration/external-migration-fns/import.ts b/backend/src/services/external-migration/external-migration-fns/import.ts index 5728bf1c0..62888c5bf 100644 --- a/backend/src/services/external-migration/external-migration-fns/import.ts +++ b/backend/src/services/external-migration/external-migration-fns/import.ts @@ -55,7 +55,7 @@ export const importDataIntoInfisicalFn = async ({ actorId, actorOrgId, actorAuthMethod, - workspaceName: project.name, + projectName: project.name, createDefaultEnvs: false, tx }) diff --git a/backend/src/services/external-migration/external-migration-queue.ts b/backend/src/services/external-migration/external-migration-queue.ts index b4974d2ae..770cbbe3a 100644 --- a/backend/src/services/external-migration/external-migration-queue.ts +++ b/backend/src/services/external-migration/external-migration-queue.ts @@ -5,6 +5,8 @@ import { QueueJobs, QueueName, TQueueServiceFactory } from "@app/queue"; import { TFolderCommitServiceFactory } from "../folder-commit/folder-commit-service"; import { TKmsServiceFactory } from "../kms/kms-service"; +import { TNotificationServiceFactory } from "../notification/notification-service"; +import { NotificationType } from "../notification/notification-types"; import { TProjectDALFactory } from "../project/project-dal"; import { TProjectServiceFactory } from "../project/project-service"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; @@ -42,6 +44,7 @@ export type TExternalMigrationQueueFactoryDep = { folderVersionDAL: Pick; resourceMetadataDAL: Pick; + notificationService: Pick; }; export type TExternalMigrationQueueFactory = ReturnType; @@ -62,9 +65,12 @@ export const externalMigrationQueueFactory = ({ folderDAL, folderCommitService, folderVersionDAL, - resourceMetadataDAL + resourceMetadataDAL, + notificationService }: TExternalMigrationQueueFactoryDep) => { const startImport = async (dto: { + orgId: string; + actorId: string; actorEmail: string; importType: ExternalPlatforms; data: { @@ -87,9 +93,19 @@ export const externalMigrationQueueFactory = ({ }; queueService.start(QueueName.ImportSecretsFromExternalSource, async (job) => { - const { data, actorEmail, importType } = job.data; + const { data, actorEmail, importType, actorId, orgId } = job.data; try { + await notificationService.createUserNotifications([ + { + userId: actorId, + orgId, + type: NotificationType.IMPORT_STARTED, + title: "Import Started", + body: `An import from **${importType}** to Infisical has been started.` + } + ]); + await smtpService.sendMail({ recipients: [actorEmail], subjectLine: "Infisical import started", @@ -137,6 +153,16 @@ export const externalMigrationQueueFactory = ({ ); } + await notificationService.createUserNotifications([ + { + userId: actorId, + orgId, + type: NotificationType.IMPORT_SUCCESSFUL, + title: "Import Successful", + body: `An import from **${importType}** to Infisical has successfully completed.` + } + ]); + await smtpService.sendMail({ recipients: [actorEmail], subjectLine: "Infisical import successful", @@ -146,6 +172,17 @@ export const externalMigrationQueueFactory = ({ template: SmtpTemplates.ExternalImportSuccessful }); } catch (err) { + await notificationService.createUserNotifications([ + { + userId: actorId, + orgId, + type: NotificationType.IMPORT_FAILED, + title: "Import Failed", + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access + body: `An import from **${importType}** to Infisical has failed: ${(err as any)?.message || "Unknown error"}.` + } + ]); + await smtpService.sendMail({ recipients: [job.data.actorEmail], subjectLine: "Infisical import failed", diff --git a/backend/src/services/external-migration/external-migration-service.ts b/backend/src/services/external-migration/external-migration-service.ts index 73fac00b9..e801b607e 100644 --- a/backend/src/services/external-migration/external-migration-service.ts +++ b/backend/src/services/external-migration/external-migration-service.ts @@ -73,6 +73,8 @@ export const externalMigrationServiceFactory = ({ const encrypted = crypto.encryption().symmetric().encryptWithRootEncryptionKey(stringifiedJson); await externalMigrationQueue.startImport({ + actorId: user.id, + orgId: actorOrgId, actorEmail: user.email!, importType: ExternalPlatforms.EnvKey, data: { @@ -131,6 +133,8 @@ export const externalMigrationServiceFactory = ({ const encrypted = crypto.encryption().symmetric().encryptWithRootEncryptionKey(stringifiedJson); await externalMigrationQueue.startImport({ + actorId: user.id, + orgId: actorOrgId, actorEmail: user.email!, importType: ExternalPlatforms.Vault, data: { diff --git a/backend/src/services/identity-ldap-auth/identity-ldap-auth-service.ts b/backend/src/services/identity-ldap-auth/identity-ldap-auth-service.ts index 47188e26d..46ec2f98a 100644 --- a/backend/src/services/identity-ldap-auth/identity-ldap-auth-service.ts +++ b/backend/src/services/identity-ldap-auth/identity-ldap-auth-service.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { ForbiddenError } from "@casl/ability"; +import slugify from "@sindresorhus/slugify"; import { IdentityAuthMethod } from "@app/db/schemas"; import { TIdentityAuthTemplateDALFactory } from "@app/ee/services/identity-auth-template"; @@ -15,10 +16,18 @@ import { validatePrivilegeChangeOperation } from "@app/ee/services/permission/permission-fns"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; +import { KeyStorePrefixes, TKeyStoreFactory } from "@app/keystore/keystore"; import { getConfig } from "@app/lib/config/env"; import { crypto } from "@app/lib/crypto"; -import { BadRequestError, NotFoundError, PermissionBoundaryError } from "@app/lib/errors"; +import { + BadRequestError, + NotFoundError, + PermissionBoundaryError, + RateLimitError, + UnauthorizedError +} from "@app/lib/errors"; import { extractIPDetails, isValidIpOrCidr } from "@app/lib/ip"; +import { logger } from "@app/lib/logger"; import { ActorType, AuthTokenType } from "../auth/auth-type"; import { TIdentityDALFactory } from "../identity/identity-dal"; @@ -32,6 +41,8 @@ import { TIdentityLdapAuthDALFactory } from "./identity-ldap-auth-dal"; import { AllowedFieldsSchema, TAttachLdapAuthDTO, + TCheckLdapAuthLockoutDTO, + TClearLdapAuthLockoutsDTO, TGetLdapAuthDTO, TLoginLdapAuthDTO, TRevokeLdapAuthDTO, @@ -50,10 +61,19 @@ type TIdentityLdapAuthServiceFactoryDep = { kmsService: TKmsServiceFactory; identityDAL: TIdentityDALFactory; identityAuthTemplateDAL: TIdentityAuthTemplateDALFactory; + keyStore: Pick< + TKeyStoreFactory, + "setItemWithExpiry" | "getItem" | "deleteItem" | "getKeysByPattern" | "deleteItems" | "acquireLock" + >; }; export type TIdentityLdapAuthServiceFactory = ReturnType; +type LockoutObject = { + lockedOut: boolean; + failedAttempts: number; +}; + export const identityLdapAuthServiceFactory = ({ identityAccessTokenDAL, identityDAL, @@ -62,7 +82,8 @@ export const identityLdapAuthServiceFactory = ({ licenseService, permissionService, kmsService, - identityAuthTemplateDAL + identityAuthTemplateDAL, + keyStore }: TIdentityLdapAuthServiceFactoryDep) => { const getLdapConfig = async (identityId: string) => { const identity = await identityDAL.findOne({ id: identityId }); @@ -126,13 +147,17 @@ export const identityLdapAuthServiceFactory = ({ const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); if (!identityMembershipOrg) { - throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); + throw new UnauthorizedError({ + message: "Invalid credentials" + }); } const identityLdapAuth = await identityLdapAuthDAL.findOne({ identityId }); if (!identityLdapAuth) { - throw new NotFoundError({ message: `Failed to find LDAP auth for identity with ID ${identityId}` }); + throw new UnauthorizedError({ + message: "Invalid credentials" + }); } const plan = await licenseService.getPlan(identityMembershipOrg.orgId); @@ -204,7 +229,11 @@ export const identityLdapAuthServiceFactory = ({ actor, actorOrgId, isActorSuperAdmin, - allowedFields + allowedFields, + lockoutEnabled, + lockoutThreshold, + lockoutDurationSeconds, + lockoutCounterResetSeconds }: TAttachLdapAuthDTO) => { await validateIdentityUpdateForSuperAdminPrivileges(identityId, isActorSuperAdmin); @@ -337,7 +366,11 @@ export const identityLdapAuthServiceFactory = ({ accessTokenNumUsesLimit, accessTokenTrustedIps: JSON.stringify(reformattedAccessTokenTrustedIps), allowedFields: allowedFields ? JSON.stringify(allowedFields) : undefined, - templateId + templateId, + lockoutEnabled, + lockoutThreshold, + lockoutDurationSeconds, + lockoutCounterResetSeconds }, tx ); @@ -363,7 +396,11 @@ export const identityLdapAuthServiceFactory = ({ actorId, actorAuthMethod, actor, - actorOrgId + actorOrgId, + lockoutEnabled, + lockoutThreshold, + lockoutDurationSeconds, + lockoutCounterResetSeconds }: TUpdateLdapAuthDTO) => { const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); @@ -511,7 +548,11 @@ export const identityLdapAuthServiceFactory = ({ accessTokenNumUsesLimit, accessTokenTrustedIps: reformattedAccessTokenTrustedIps ? JSON.stringify(reformattedAccessTokenTrustedIps) - : undefined + : undefined, + lockoutEnabled, + lockoutThreshold, + lockoutDurationSeconds, + lockoutCounterResetSeconds }); return { ...updatedLdapAuth, orgId: identityMembershipOrg.orgId }; @@ -611,12 +652,123 @@ export const identityLdapAuthServiceFactory = ({ return revokedIdentityLdapAuth; }; + const withLdapLockout = async ( + { identityId, username }: TCheckLdapAuthLockoutDTO, + authFn: () => Promise + ): Promise => { + const usernameSlug = slugify(username.trim().toLowerCase()); + + const LOCKOUT_KEY = `lockout:identity:${identityId}:${IdentityAuthMethod.LDAP_AUTH}:${usernameSlug}`; + + let lock: Awaited>; + try { + lock = await keyStore.acquireLock([KeyStorePrefixes.IdentityLockoutLock(LOCKOUT_KEY)], 3000, { + retryCount: 3, + retryDelay: 1500, + retryJitter: 100 + }); + } catch (e) { + logger.info( + `identity login failed to acquire lock [identityId=${identityId}] [authMethod=${IdentityAuthMethod.LDAP_AUTH}]` + ); + throw new RateLimitError({ message: "Failed to acquire lock: rate limit exceeded" }); + } + + try { + const lockoutRaw = await keyStore.getItem(LOCKOUT_KEY); + if (lockoutRaw) { + const lockout = JSON.parse(lockoutRaw) as LockoutObject; + if (lockout.lockedOut) { + throw new UnauthorizedError({ + message: "This identity auth method is temporarily locked, please try again later" + }); + } + } + + const result = await authFn(); + + await keyStore.deleteItem(LOCKOUT_KEY); + + return result; + } catch (error) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access + if ((error as any).status === 401) { + const identityLdapAuth = await identityLdapAuthDAL.findOne({ identityId }); + if (!identityLdapAuth) { + throw new UnauthorizedError({ message: "Invalid credentials" }); + } + + if (identityLdapAuth.lockoutEnabled) { + let lockout: LockoutObject = { + lockedOut: false, + failedAttempts: 0 + }; + + const lockoutRaw = await keyStore.getItem(LOCKOUT_KEY); + if (lockoutRaw) { + lockout = JSON.parse(lockoutRaw) as LockoutObject; + } + + lockout.failedAttempts += 1; + if (lockout.failedAttempts >= identityLdapAuth.lockoutThreshold) { + lockout.lockedOut = true; + } + + await keyStore.setItemWithExpiry( + LOCKOUT_KEY, + lockout.lockedOut ? identityLdapAuth.lockoutDurationSeconds : identityLdapAuth.lockoutCounterResetSeconds, + JSON.stringify(lockout) + ); + } + + throw new UnauthorizedError({ message: "Invalid credentials" }); + } + throw error; + } finally { + await lock.release(); + } + }; + + const clearLdapAuthLockouts = async ({ + identityId, + actorId, + actor, + actorOrgId, + actorAuthMethod + }: TClearLdapAuthLockoutsDTO) => { + const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId }); + if (!identityMembershipOrg) throw new NotFoundError({ message: `Failed to find identity with ID ${identityId}` }); + + if (!identityMembershipOrg.identity.authMethods.includes(IdentityAuthMethod.LDAP_AUTH)) { + throw new BadRequestError({ + message: "The identity does not have ldap auth" + }); + } + + const { permission } = await permissionService.getOrgPermission( + actor, + actorId, + identityMembershipOrg.orgId, + actorAuthMethod, + actorOrgId + ); + ForbiddenError.from(permission).throwUnlessCan(OrgPermissionIdentityActions.Edit, OrgPermissionSubjects.Identity); + + const deleted = await keyStore.deleteItems({ + pattern: `lockout:identity:${identityId}:${IdentityAuthMethod.LDAP_AUTH}:*` + }); + + return { deleted, identityId, orgId: identityMembershipOrg.orgId }; + }; + return { attachLdapAuth, getLdapConfig, updateLdapAuth, login, revokeIdentityLdapAuth, - getLdapAuth + getLdapAuth, + withLdapLockout, + clearLdapAuthLockouts }; }; diff --git a/backend/src/services/identity-ldap-auth/identity-ldap-auth-types.ts b/backend/src/services/identity-ldap-auth/identity-ldap-auth-types.ts index 8629763bb..a4aea7573 100644 --- a/backend/src/services/identity-ldap-auth/identity-ldap-auth-types.ts +++ b/backend/src/services/identity-ldap-auth/identity-ldap-auth-types.ts @@ -27,6 +27,10 @@ export type TAttachLdapAuthDTO = { accessTokenNumUsesLimit: number; accessTokenTrustedIps: { ipAddress: string }[]; isActorSuperAdmin?: boolean; + lockoutEnabled: boolean; + lockoutThreshold: number; + lockoutDurationSeconds: number; + lockoutCounterResetSeconds: number; } & Omit; export type TUpdateLdapAuthDTO = { @@ -43,6 +47,10 @@ export type TUpdateLdapAuthDTO = { accessTokenMaxTTL?: number; accessTokenNumUsesLimit?: number; accessTokenTrustedIps?: { ipAddress: string }[]; + lockoutEnabled?: boolean; + lockoutThreshold?: number; + lockoutDurationSeconds?: number; + lockoutCounterResetSeconds?: number; } & Omit; export type TGetLdapAuthDTO = { @@ -56,3 +64,12 @@ export type TLoginLdapAuthDTO = { export type TRevokeLdapAuthDTO = { identityId: string; } & Omit; + +export type TClearLdapAuthLockoutsDTO = { + identityId: string; +} & Omit; + +export type TCheckLdapAuthLockoutDTO = { + identityId: string; + username: string; +}; diff --git a/backend/src/services/identity-ua/identity-ua-service.ts b/backend/src/services/identity-ua/identity-ua-service.ts index 8aec16371..979e6f25f 100644 --- a/backend/src/services/identity-ua/identity-ua-service.ts +++ b/backend/src/services/identity-ua/identity-ua-service.ts @@ -84,69 +84,70 @@ export const identityUaServiceFactory = ({ const LOCKOUT_KEY = `lockout:identity:${identityUa.identityId}:${IdentityAuthMethod.UNIVERSAL_AUTH}:${clientId}`; - let lock: Awaited> | undefined; - if (identityUa.lockoutEnabled) { - try { - lock = await keyStore.acquireLock([KeyStorePrefixes.IdentityLockoutLock(LOCKOUT_KEY)], 500, { - retryCount: 3, - retryDelay: 300, - retryJitter: 100 - }); - } catch (e) { - logger.info( - `identity login failed to acquire lock [identityId=${identityUa.identityId}] [authMethod=${IdentityAuthMethod.UNIVERSAL_AUTH}]` - ); - throw new RateLimitError({ message: "Failed to acquire lock: rate limit exceeded" }); + const lockoutRaw = await keyStore.getItem(LOCKOUT_KEY); + + let lockout: LockoutObject | undefined; + if (lockoutRaw) { + lockout = JSON.parse(lockoutRaw) as LockoutObject; + } + + if (lockout && lockout.lockedOut) { + throw new UnauthorizedError({ + message: "This identity auth method is temporarily locked, please try again later" + }); + } + + const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId: identityUa.identityId }); + if (!identityMembershipOrg) { + throw new UnauthorizedError({ + message: "Invalid credentials" + }); + } + + const clientSecretPrefix = clientSecret.slice(0, 4); + const clientSecretInfo = await identityUaClientSecretDAL.find({ + identityUAId: identityUa.id, + isClientSecretRevoked: false, + clientSecretPrefix + }); + + let validClientSecretInfo: (typeof clientSecretInfo)[0] | null = null; + for await (const info of clientSecretInfo) { + const isMatch = await crypto.hashing().compareHash(clientSecret, info.clientSecretHash); + + if (isMatch) { + validClientSecretInfo = info; + break; } } - try { - const lockoutRaw = await keyStore.getItem(LOCKOUT_KEY); + if (!validClientSecretInfo) { + if (identityUa.lockoutEnabled) { + let lock: Awaited> | undefined; + try { + lock = await keyStore.acquireLock([KeyStorePrefixes.IdentityLockoutLock(LOCKOUT_KEY)], 300, { + retryCount: 3, + retryDelay: 300, + retryJitter: 100 + }); - let lockout: LockoutObject | undefined; - if (lockoutRaw) { - lockout = JSON.parse(lockoutRaw) as LockoutObject; - } - - if (lockout && lockout.lockedOut) { - throw new UnauthorizedError({ - message: "This identity auth method is temporarily locked, please try again later" - }); - } - - const identityMembershipOrg = await identityOrgMembershipDAL.findOne({ identityId: identityUa.identityId }); - if (!identityMembershipOrg) { - throw new UnauthorizedError({ - message: "Invalid credentials" - }); - } - - const clientSecretPrefix = clientSecret.slice(0, 4); - const clientSecretInfo = await identityUaClientSecretDAL.find({ - identityUAId: identityUa.id, - isClientSecretRevoked: false, - clientSecretPrefix - }); - - let validClientSecretInfo: (typeof clientSecretInfo)[0] | null = null; - for await (const info of clientSecretInfo) { - const isMatch = await crypto.hashing().compareHash(clientSecret, info.clientSecretHash); - - if (isMatch) { - validClientSecretInfo = info; - break; - } - } - - if (!validClientSecretInfo) { - if (identityUa.lockoutEnabled) { - if (!lockout) { + // Re-fetch the latest lockout data while holding the lock + const lockoutRawNew = await keyStore.getItem(LOCKOUT_KEY); + if (lockoutRawNew) { + lockout = JSON.parse(lockoutRawNew) as LockoutObject; + } else { lockout = { lockedOut: false, failedAttempts: 0 }; } + if (lockout.lockedOut) { + throw new UnauthorizedError({ + message: "This identity auth method is temporarily locked, please try again later" + }); + } + lockout.failedAttempts += 1; if (lockout.failedAttempts >= identityUa.lockoutThreshold) { lockout.lockedOut = true; @@ -157,110 +158,121 @@ export const identityUaServiceFactory = ({ lockout.lockedOut ? identityUa.lockoutDurationSeconds : identityUa.lockoutCounterResetSeconds, JSON.stringify(lockout) ); - } - - throw new UnauthorizedError({ message: "Invalid credentials" }); - } else if (lockout) { - await keyStore.deleteItem(LOCKOUT_KEY); - } - - const { clientSecretTTL, clientSecretNumUses, clientSecretNumUsesLimit } = validClientSecretInfo; - if (Number(clientSecretTTL) > 0) { - const clientSecretCreated = new Date(validClientSecretInfo.createdAt); - const ttlInMilliseconds = Number(clientSecretTTL) * 1000; - const currentDate = new Date(); - const expirationTime = new Date(clientSecretCreated.getTime() + ttlInMilliseconds); - - if (currentDate > expirationTime) { - await identityUaClientSecretDAL.updateById(validClientSecretInfo.id, { - isClientSecretRevoked: true - }); - - throw new UnauthorizedError({ - message: "Access denied due to expired client secret" - }); + } catch (e) { + if (lock === undefined) { + logger.info( + `identity login failed to acquire lock [identityId=${identityUa.identityId}] [authMethod=${IdentityAuthMethod.UNIVERSAL_AUTH}]` + ); + throw new RateLimitError({ message: "Failed to acquire lock: rate limit exceeded" }); + } + throw e; + } finally { + if (lock) { + await lock.release(); + } } } - if (clientSecretNumUsesLimit > 0 && clientSecretNumUses >= clientSecretNumUsesLimit) { - // number of times client secret can be used for - // a login operation reached + throw new UnauthorizedError({ message: "Invalid credentials" }); + } else if (lockout) { + // If credentials are valid, clear any existing lockout record + await keyStore.deleteItem(LOCKOUT_KEY); + } + + const { clientSecretTTL, clientSecretNumUses, clientSecretNumUsesLimit } = validClientSecretInfo; + if (Number(clientSecretTTL) > 0) { + const clientSecretCreated = new Date(validClientSecretInfo.createdAt); + const ttlInMilliseconds = Number(clientSecretTTL) * 1000; + const currentDate = new Date(); + const expirationTime = new Date(clientSecretCreated.getTime() + ttlInMilliseconds); + + if (currentDate > expirationTime) { await identityUaClientSecretDAL.updateById(validClientSecretInfo.id, { isClientSecretRevoked: true }); + throw new UnauthorizedError({ - message: "Access denied due to client secret usage limit reached" + message: "Access denied due to expired client secret" }); } + } - const accessTokenTTLParams = - Number(identityUa.accessTokenPeriod) === 0 - ? { - accessTokenTTL: identityUa.accessTokenTTL, - accessTokenMaxTTL: identityUa.accessTokenMaxTTL - } - : { - accessTokenTTL: identityUa.accessTokenPeriod, - // We set a very large Max TTL for periodic tokens to ensure that clients (even outdated ones) can always renew their token - // without them having to update their SDKs, CLIs, etc. This workaround sets it to 30 years to emulate "forever" - accessTokenMaxTTL: 1000000000 - }; - - const identityAccessToken = await identityUaDAL.transaction(async (tx) => { - const uaClientSecretDoc = await identityUaClientSecretDAL.incrementUsage(validClientSecretInfo!.id, tx); - await identityOrgMembershipDAL.updateById( - identityMembershipOrg.id, - { - lastLoginAuthMethod: IdentityAuthMethod.UNIVERSAL_AUTH, - lastLoginTime: new Date() - }, - tx - ); - const newToken = await identityAccessTokenDAL.create( - { - identityId: identityUa.identityId, - isAccessTokenRevoked: false, - identityUAClientSecretId: uaClientSecretDoc.id, - accessTokenNumUses: 0, - accessTokenNumUsesLimit: identityUa.accessTokenNumUsesLimit, - accessTokenPeriod: identityUa.accessTokenPeriod, - authMethod: IdentityAuthMethod.UNIVERSAL_AUTH, - ...accessTokenTTLParams - }, - tx - ); - - return newToken; + if (clientSecretNumUsesLimit > 0 && clientSecretNumUses >= clientSecretNumUsesLimit) { + // number of times client secret can be used for + // a login operation reached + await identityUaClientSecretDAL.updateById(validClientSecretInfo.id, { + isClientSecretRevoked: true }); + throw new UnauthorizedError({ + message: "Access denied due to client secret usage limit reached" + }); + } - const appCfg = getConfig(); - const accessToken = crypto.jwt().sign( + const accessTokenTTLParams = + Number(identityUa.accessTokenPeriod) === 0 + ? { + accessTokenTTL: identityUa.accessTokenTTL, + accessTokenMaxTTL: identityUa.accessTokenMaxTTL + } + : { + accessTokenTTL: identityUa.accessTokenPeriod, + // We set a very large Max TTL for periodic tokens to ensure that clients (even outdated ones) can always renew their token + // without them having to update their SDKs, CLIs, etc. This workaround sets it to 30 years to emulate "forever" + accessTokenMaxTTL: 1000000000 + }; + + const identityAccessToken = await identityUaDAL.transaction(async (tx) => { + const uaClientSecretDoc = await identityUaClientSecretDAL.incrementUsage(validClientSecretInfo!.id, tx); + await identityOrgMembershipDAL.updateById( + identityMembershipOrg.id, + { + lastLoginAuthMethod: IdentityAuthMethod.UNIVERSAL_AUTH, + lastLoginTime: new Date() + }, + tx + ); + const newToken = await identityAccessTokenDAL.create( { identityId: identityUa.identityId, - clientSecretId: validClientSecretInfo.id, - identityAccessTokenId: identityAccessToken.id, - authTokenType: AuthTokenType.IDENTITY_ACCESS_TOKEN - } as TIdentityAccessTokenJwtPayload, - appCfg.AUTH_SECRET, - // akhilmhdh: for non-expiry tokens you should not even set the value, including undefined. Even for undefined jsonwebtoken throws error - Number(identityAccessToken.accessTokenTTL) === 0 - ? undefined - : { - expiresIn: Number(identityAccessToken.accessTokenTTL) - } + isAccessTokenRevoked: false, + identityUAClientSecretId: uaClientSecretDoc.id, + accessTokenNumUses: 0, + accessTokenNumUsesLimit: identityUa.accessTokenNumUsesLimit, + accessTokenPeriod: identityUa.accessTokenPeriod, + authMethod: IdentityAuthMethod.UNIVERSAL_AUTH, + ...accessTokenTTLParams + }, + tx ); - return { - accessToken, - identityUa, - validClientSecretInfo, - identityAccessToken, - identityMembershipOrg, - ...accessTokenTTLParams - }; - } finally { - if (lock) await lock.release(); - } + return newToken; + }); + + const appCfg = getConfig(); + const accessToken = crypto.jwt().sign( + { + identityId: identityUa.identityId, + clientSecretId: validClientSecretInfo.id, + identityAccessTokenId: identityAccessToken.id, + authTokenType: AuthTokenType.IDENTITY_ACCESS_TOKEN + } as TIdentityAccessTokenJwtPayload, + appCfg.AUTH_SECRET, + // akhilmhdh: for non-expiry tokens you should not even set the value, including undefined. Even for undefined jsonwebtoken throws error + Number(identityAccessToken.accessTokenTTL) === 0 + ? undefined + : { + expiresIn: Number(identityAccessToken.accessTokenTTL) + } + ); + + return { + accessToken, + identityUa, + validClientSecretInfo, + identityAccessToken, + identityMembershipOrg, + ...accessTokenTTLParams + }; }; const attachUniversalAuth = async ({ diff --git a/backend/src/services/identity/identity-service.ts b/backend/src/services/identity/identity-service.ts index 969d00331..f216d6483 100644 --- a/backend/src/services/identity/identity-service.ts +++ b/backend/src/services/identity/identity-service.ts @@ -33,7 +33,7 @@ type TIdentityServiceFactoryDep = { identityProjectDAL: Pick; permissionService: Pick; licenseService: Pick; - keyStore: Pick; + keyStore: Pick; }; export type TIdentityServiceFactory = ReturnType; @@ -261,12 +261,18 @@ export const identityServiceFactory = ({ const activeLockouts = await keyStore.getKeysByPattern(`lockout:identity:${id}:*`); const activeLockoutAuthMethods = new Set(); - activeLockouts.forEach((key) => { + for await (const key of activeLockouts) { const parts = key.split(":"); if (parts.length > 3) { - activeLockoutAuthMethods.add(parts[3]); + const lockoutRaw = await keyStore.getItem(key); + if (lockoutRaw) { + const lockout = JSON.parse(lockoutRaw) as { lockedOut: boolean }; + if (lockout.lockedOut) { + activeLockoutAuthMethods.add(parts[3]); + } + } } - }); + } return { ...identity, diff --git a/backend/src/services/notification/notification-types.ts b/backend/src/services/notification/notification-types.ts index 30bc87244..a3657c680 100644 --- a/backend/src/services/notification/notification-types.ts +++ b/backend/src/services/notification/notification-types.ts @@ -1,6 +1,21 @@ export enum NotificationType { ACCESS_APPROVAL_REQUEST = "access-approval-request", - ACCESS_APPROVAL_REQUEST_UPDATED = "access-approval-request-updated" + ACCESS_APPROVAL_REQUEST_UPDATED = "access-approval-request-updated", + ACCESS_POLICY_BYPASSED = "access-policy-bypassed", + SECRET_CHANGE_REQUEST = "secret-change-request", + SECRET_CHANGE_POLICY_BYPASSED = "secret-change-policy-bypassed", + SECRET_ROTATION_FAILED = "secret-rotation-failed", + SECRET_SCANNING_SECRETS_DETECTED = "secret-scanning-secrets-detected", + SECRET_SCANNING_SCAN_FAILED = "secret-scanning-scan-failed", + LOGIN_FROM_NEW_DEVICE = "login-from-new-device", + ADMIN_SSO_BYPASS = "admin-sso-bypass", + IMPORT_STARTED = "import-started", + IMPORT_SUCCESSFUL = "import-successful", + IMPORT_FAILED = "import-failed", + DIRECT_PROJECT_ACCESS_ISSUED_TO_ADMIN = "direct-project-access-issued-to-admin", + PROJECT_ACCESS_REQUEST = "project-access-request", + PROJECT_INVITATION = "project-invitation", + SECRET_SYNC_FAILED = "secret-sync-failed" } export interface TCreateUserNotificationDTO { diff --git a/backend/src/services/org-admin/org-admin-service.ts b/backend/src/services/org-admin/org-admin-service.ts index 23005e52b..995afadc1 100644 --- a/backend/src/services/org-admin/org-admin-service.ts +++ b/backend/src/services/org-admin/org-admin-service.ts @@ -5,6 +5,8 @@ import { OrgPermissionAdminConsoleAction, OrgPermissionSubjects } from "@app/ee/ import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { TNotificationServiceFactory } from "../notification/notification-service"; +import { NotificationType } from "../notification/notification-types"; import { TProjectDALFactory } from "../project/project-dal"; import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal"; import { TProjectUserMembershipRoleDALFactory } from "../project-membership/project-user-membership-role-dal"; @@ -20,6 +22,7 @@ type TOrgAdminServiceFactoryDep = { >; projectUserMembershipRoleDAL: Pick; smtpService: Pick; + notificationService: Pick; }; export type TOrgAdminServiceFactory = ReturnType; @@ -29,7 +32,8 @@ export const orgAdminServiceFactory = ({ projectDAL, projectMembershipDAL, projectUserMembershipRoleDAL, - smtpService + smtpService, + notificationService }: TOrgAdminServiceFactoryDep) => { const listOrgProjects = async ({ actor, @@ -130,23 +134,34 @@ export const orgAdminServiceFactory = ({ }); const projectMembers = await projectMembershipDAL.findAllProjectMembers(projectId); - const filteredProjectMembers = projectMembers - .filter( - (member) => member.roles.some((role) => role.role === ProjectMembershipRole.Admin) && member.userId !== actorId - ) - .map((el) => el.user.email!) - .filter(Boolean); + const projectAdmins = projectMembers.filter( + (member) => member.roles.some((role) => role.role === ProjectMembershipRole.Admin) && member.userId !== actorId + ); + const mappedProjectAdmins = projectAdmins.map((el) => el.user.email!).filter(Boolean); + const actorEmail = projectMembers.find((el) => el.userId === actorId)?.user?.username; - if (filteredProjectMembers.length) { - await smtpService.sendMail({ - template: SmtpTemplates.OrgAdminProjectDirectAccess, - recipients: filteredProjectMembers, - subjectLine: "Organization Admin Project Direct Access Issued", - substitutions: { - projectName: project.name, - email: projectMembers.find((el) => el.userId === actorId)?.user?.username - } - }); + if (actorEmail) { + await notificationService.createUserNotifications( + projectAdmins.map((member) => ({ + userId: member.userId, + orgId: project.orgId, + type: NotificationType.DIRECT_PROJECT_ACCESS_ISSUED_TO_ADMIN, + title: "Direct Project Access Issued", + body: `The organization admin **${actorEmail}** has self-issued direct access to the project **${project.name}**.` + })) + ); + + if (mappedProjectAdmins.length) { + await smtpService.sendMail({ + template: SmtpTemplates.OrgAdminProjectDirectAccess, + recipients: mappedProjectAdmins, + subjectLine: "Organization Admin Project Direct Access Issued", + substitutions: { + projectName: project.name, + email: actorEmail + } + }); + } } return { isExistingMember: false, membership: updatedMembership }; }; diff --git a/backend/src/services/project-membership/project-membership-service.ts b/backend/src/services/project-membership/project-membership-service.ts index 7cf665141..991bf65d1 100644 --- a/backend/src/services/project-membership/project-membership-service.ts +++ b/backend/src/services/project-membership/project-membership-service.ts @@ -18,6 +18,8 @@ import { ms } from "@app/lib/ms"; import { TUserGroupMembershipDALFactory } from "../../ee/services/group/user-group-membership-dal"; import { ActorType } from "../auth/auth-type"; import { TGroupProjectDALFactory } from "../group-project/group-project-dal"; +import { TNotificationServiceFactory } from "../notification/notification-service"; +import { NotificationType } from "../notification/notification-types"; import { TOrgDALFactory } from "../org/org-dal"; import { TProjectDALFactory } from "../project/project-dal"; import { TProjectBotDALFactory } from "../project-bot/project-bot-dal"; @@ -56,6 +58,7 @@ type TProjectMembershipServiceFactoryDep = { projectUserAdditionalPrivilegeDAL: Pick; secretReminderRecipientsDAL: Pick; groupProjectDAL: TGroupProjectDALFactory; + notificationService: Pick; }; export type TProjectMembershipServiceFactory = ReturnType; @@ -74,7 +77,8 @@ export const projectMembershipServiceFactory = ({ projectDAL, projectKeyDAL, secretReminderRecipientsDAL, - licenseService + licenseService, + notificationService }: TProjectMembershipServiceFactoryDep) => { const getProjectMemberships = async ({ actorId, @@ -236,6 +240,16 @@ export const projectMembershipServiceFactory = ({ }); if (sendEmails) { + await notificationService.createUserNotifications( + orgMembers.map((member) => ({ + userId: member.userId, + orgId: project.orgId, + type: NotificationType.PROJECT_INVITATION, + title: "Project Invitation", + body: `You've been invited to join the project **${project.name}**.` + })) + ); + const appCfg = getConfig(); await smtpService.sendMail({ template: SmtpTemplates.WorkspaceInvite, diff --git a/backend/src/services/project/project-dal.ts b/backend/src/services/project/project-dal.ts index 2766db379..d64977f8b 100644 --- a/backend/src/services/project/project-dal.ts +++ b/backend/src/services/project/project-dal.ts @@ -399,6 +399,7 @@ export const projectDALFactory = (db: TDbClient) => { name?: string; sortBy?: SearchProjectSortBy; sortDir?: SortDirection; + projectIds?: string[]; }) => { const { limit = 20, offset = 0, sortBy = SearchProjectSortBy.NAME, sortDir = SortDirection.ASC } = dto; @@ -454,6 +455,11 @@ export const projectDALFactory = (db: TDbClient) => { if (dto.name) { void query.whereILike(`${TableName.Project}.name`, `%${dto.name}%`); } + + if (dto.projectIds?.length) { + void query.whereIn(`${TableName.Project}.id`, dto.projectIds); + } + const docs = await query; return { docs, totalCount: Number(docs?.[0]?.count ?? 0) }; diff --git a/backend/src/services/project/project-service.ts b/backend/src/services/project/project-service.ts index d59f20bc6..8dbba2b4f 100644 --- a/backend/src/services/project/project-service.ts +++ b/backend/src/services/project/project-service.ts @@ -57,6 +57,8 @@ import { TKmsServiceFactory } from "../kms/kms-service"; import { validateMicrosoftTeamsChannelsSchema } from "../microsoft-teams/microsoft-teams-fns"; import { TMicrosoftTeamsIntegrationDALFactory } from "../microsoft-teams/microsoft-teams-integration-dal"; import { TProjectMicrosoftTeamsConfigDALFactory } from "../microsoft-teams/project-microsoft-teams-config-dal"; +import { TNotificationServiceFactory } from "../notification/notification-service"; +import { NotificationType } from "../notification/notification-types"; import { TOrgDALFactory } from "../org/org-dal"; import { TPkiAlertDALFactory } from "../pki-alert/pki-alert-dal"; import { TPkiCollectionDALFactory } from "../pki-collection/pki-collection-dal"; @@ -183,6 +185,7 @@ type TProjectServiceFactoryDep = { >; projectTemplateService: TProjectTemplateServiceFactory; reminderService: Pick; + notificationService: Pick; }; export type TProjectServiceFactory = ReturnType; @@ -227,7 +230,8 @@ export const projectServiceFactory = ({ projectTemplateService, groupProjectDAL, smtpService, - reminderService + reminderService, + notificationService }: TProjectServiceFactoryDep) => { /* * Create workspace. Make user the admin @@ -237,8 +241,8 @@ export const projectServiceFactory = ({ actorId, actorOrgId, actorAuthMethod, - workspaceName, - workspaceDescription, + projectName: workspaceName, + projectDescription: workspaceDescription, slug: projectSlug, kmsKeyId, tx: trx, @@ -254,7 +258,13 @@ export const projectServiceFactory = ({ actorAuthMethod, actorOrgId ); - ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Create, OrgPermissionSubjects.Workspace); + + if ( + permission.cannot(OrgPermissionActions.Create, OrgPermissionSubjects.Workspace) && + permission.cannot(OrgPermissionActions.Create, OrgPermissionSubjects.Project) + ) { + throw new ForbiddenRequestError({ message: "You don't have permission to create a project" }); + } const results = await (trx || projectDAL).transaction(async (tx) => { await tx.raw("SELECT pg_advisory_xact_lock(?)", [PgSqlLock.CreateProject(organization.id)]); @@ -591,7 +601,8 @@ export const projectServiceFactory = ({ secretSharing: update.secretSharing, defaultProduct: update.defaultProduct, showSnapshotsLegacy: update.showSnapshotsLegacy, - secretDetectionIgnoreValues: update.secretDetectionIgnoreValues + secretDetectionIgnoreValues: update.secretDetectionIgnoreValues, + pitVersionLimit: update.pitVersionLimit }); return updatedProject; @@ -684,19 +695,21 @@ export const projectServiceFactory = ({ actorOrgId, actorAuthMethod, auditLogsRetentionDays, - workspaceSlug + filter }: TUpdateAuditLogsRetentionDTO) => { - const project = await projectDAL.findProjectBySlug(workspaceSlug, actorOrgId); + const project = await projectDAL.findProjectByFilter(filter); + const projectId = project.id; + if (!project) { throw new NotFoundError({ - message: `Project with slug '${workspaceSlug}' not found` + message: `Project not found` }); } const { hasRole } = await permissionService.getProjectPermission({ actor, actorId, - projectId: project.id, + projectId, actorAuthMethod, actorOrgId, actionProjectType: ActionProjectType.Any @@ -1806,7 +1819,8 @@ export const projectServiceFactory = ({ limit, type, orderBy, - orderDirection + orderDirection, + projectIds }: TSearchProjectsDTO) => { // check user belong to org await permissionService.getOrgPermission( @@ -1822,6 +1836,7 @@ export const projectServiceFactory = ({ offset, name, type, + projectIds, orgId: permission.orgId, actor: permission.type, actorId: permission.id, @@ -1913,6 +1928,21 @@ export const projectServiceFactory = ({ projectTypeUrl = "cert-management"; } + const callbackPath = `/projects/${projectTypeUrl}/${project.id}/access-management?selectedTab=members&requesterEmail=${userDetails.email}`; + + await notificationService.createUserNotifications( + projectMembers + .filter((member) => member.roles.some((role) => role.role === ProjectMembershipRole.Admin)) + .map((member) => ({ + userId: member.userId, + orgId: project.orgId, + type: NotificationType.PROJECT_ACCESS_REQUEST, + title: "Project Access Request", + body: `**${userDetails.firstName} ${userDetails.lastName}** (${userDetails.email}) has requested access to the project **${project.name}**.`, + link: callbackPath + })) + ); + await smtpService.sendMail({ template: SmtpTemplates.ProjectAccessRequest, recipients: filteredProjectMembers, @@ -1923,7 +1953,7 @@ export const projectServiceFactory = ({ projectName: project?.name, orgName: org?.name, note: comment, - callback_url: `${appCfg.SITE_URL}/projects/${projectTypeUrl}/${project.id}/access-management?selectedTab=members&requesterEmail=${userDetails.email}` + callback_url: `${appCfg.SITE_URL}${callbackPath}` } }); }; diff --git a/backend/src/services/project/project-types.ts b/backend/src/services/project/project-types.ts index ceef78f6a..74c7e95f4 100644 --- a/backend/src/services/project/project-types.ts +++ b/backend/src/services/project/project-types.ts @@ -42,12 +42,13 @@ export type TCreateProjectDTO = { actorAuthMethod: ActorAuthMethod; actorId: string; actorOrgId?: string; - workspaceName: string; - workspaceDescription?: string; + projectName: string; + projectDescription?: string; slug?: string; kmsKeyId?: string; createDefaultEnvs?: boolean; template?: string; + pitVersionLimit?: number; tx?: Knex; type?: ProjectType; }; @@ -78,7 +79,7 @@ export type TUpdateProjectVersionLimitDTO = { export type TUpdateAuditLogsRetentionDTO = { auditLogsRetentionDays: number; - workspaceSlug: string; + filter: Filter; } & Omit; export type TUpdateProjectNameDTO = { @@ -90,6 +91,7 @@ export type TUpdateProjectDTO = { update: { name?: string; description?: string; + pitVersionLimit?: number; autoCapitalization?: boolean; hasDeleteProtection?: boolean; defaultProduct?: ProjectType; @@ -221,6 +223,7 @@ export type TSearchProjectsDTO = { limit?: number; offset?: number; orderBy?: SearchProjectSortBy; + projectIds?: string[]; orderDirection?: SortDirection; }; diff --git a/backend/src/services/secret-sync/gitlab/gitlab-sync-fns.ts b/backend/src/services/secret-sync/gitlab/gitlab-sync-fns.ts index 3c152d853..7bf45d47c 100644 --- a/backend/src/services/secret-sync/gitlab/gitlab-sync-fns.ts +++ b/backend/src/services/secret-sync/gitlab/gitlab-sync-fns.ts @@ -53,6 +53,7 @@ const getValidAccessToken = async ( connection.credentials.refreshToken, connection.id, connection.orgId, + connection.projectId, appConnectionDAL, kmsService, connection.credentials.instanceUrl diff --git a/backend/src/services/secret-sync/heroku/heroku-sync-fns.ts b/backend/src/services/secret-sync/heroku/heroku-sync-fns.ts index d2f0817db..5f2375979 100644 --- a/backend/src/services/secret-sync/heroku/heroku-sync-fns.ts +++ b/backend/src/services/secret-sync/heroku/heroku-sync-fns.ts @@ -32,6 +32,7 @@ const getValidAuthToken = async ( connection.credentials.refreshToken, connection.id, connection.orgId, + connection.projectId, appConnectionDAL, kmsService ); diff --git a/backend/src/services/secret-sync/secret-sync-dal.ts b/backend/src/services/secret-sync/secret-sync-dal.ts index e50593f10..57c6581ce 100644 --- a/backend/src/services/secret-sync/secret-sync-dal.ts +++ b/backend/src/services/secret-sync/secret-sync-dal.ts @@ -31,6 +31,7 @@ const baseSecretSyncQuery = ({ filter, db, tx }: { db: TDbClient; filter?: Secre db.ref("description").withSchema(TableName.AppConnection).as("connectionDescription"), db.ref("version").withSchema(TableName.AppConnection).as("connectionVersion"), db.ref("gatewayId").withSchema(TableName.AppConnection).as("connectionGatewayId"), + db.ref("projectId").withSchema(TableName.AppConnection).as("connectionProjectId"), db.ref("createdAt").withSchema(TableName.AppConnection).as("connectionCreatedAt"), db.ref("updatedAt").withSchema(TableName.AppConnection).as("connectionUpdatedAt"), db @@ -67,6 +68,7 @@ const expandSecretSync = ( connectionVersion, connectionIsPlatformManagedCredentials, connectionGatewayId, + connectionProjectId, ...el } = secretSync; @@ -86,7 +88,8 @@ const expandSecretSync = ( updatedAt: connectionUpdatedAt, version: connectionVersion, isPlatformManagedCredentials: connectionIsPlatformManagedCredentials, - gatewayId: connectionGatewayId + gatewayId: connectionGatewayId, + projectId: connectionProjectId }, folder: folder ? { diff --git a/backend/src/services/secret-sync/secret-sync-queue.ts b/backend/src/services/secret-sync/secret-sync-queue.ts index f75d84eda..63faf3b03 100644 --- a/backend/src/services/secret-sync/secret-sync-queue.ts +++ b/backend/src/services/secret-sync/secret-sync-queue.ts @@ -61,6 +61,8 @@ import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { TAppConnectionDALFactory } from "../app-connection/app-connection-dal"; import { TFolderCommitServiceFactory } from "../folder-commit/folder-commit-service"; +import { TNotificationServiceFactory } from "../notification/notification-service"; +import { NotificationType } from "../notification/notification-types"; export type TSecretSyncQueueFactory = ReturnType; @@ -100,6 +102,7 @@ type TSecretSyncQueueFactoryDep = { licenseService: Pick; gatewayService: Pick; gatewayV2Service: Pick; + notificationService: Pick; }; type SecretSyncActionJob = Job< @@ -142,7 +145,8 @@ export const secretSyncQueueFactory = ({ folderCommitService, licenseService, gatewayService, - gatewayV2Service + gatewayV2Service, + notificationService }: TSecretSyncQueueFactoryDep) => { const appCfg = getConfig(); @@ -484,13 +488,14 @@ export const secretSyncQueueFactory = ({ try { const { - connection: { orgId, encryptedCredentials } + connection: { orgId, encryptedCredentials, projectId } } = secretSync; const credentials = await decryptAppConnectionCredentials({ orgId, encryptedCredentials, - kmsService + kmsService, + projectId }); const secretSyncWithCredentials = { @@ -624,13 +629,14 @@ export const secretSyncQueueFactory = ({ try { const { - connection: { orgId, encryptedCredentials } + connection: { orgId, encryptedCredentials, projectId } } = secretSync; const credentials = await decryptAppConnectionCredentials({ orgId, encryptedCredentials, - kmsService + kmsService, + projectId }); await $importSecrets( @@ -744,13 +750,14 @@ export const secretSyncQueueFactory = ({ try { const { - connection: { orgId, encryptedCredentials } + connection: { orgId, encryptedCredentials, projectId } } = secretSync; const credentials = await decryptAppConnectionCredentials({ orgId, encryptedCredentials, - kmsService + kmsService, + projectId }); const secretMap = await $getInfisicalSecrets(secretSync); @@ -895,6 +902,19 @@ export const secretSyncQueueFactory = ({ break; } + const syncPath = `/projects/secret-management/${projectId}/integrations/secret-syncs/${destination}/${secretSync.id}`; + + await notificationService.createUserNotifications( + projectAdmins.map((admin) => ({ + userId: admin.userId, + orgId: project.orgId, + type: NotificationType.SECRET_SYNC_FAILED, + title: `Secret Sync Failed to ${actionLabel} Secrets`, + body: `Your **${syncDestination}** sync **${name}** failed to complete${failureMessage ? `: \`${failureMessage}\`` : ""}`, + link: syncPath + })) + ); + await smtpService.sendMail({ recipients: projectAdmins.map((member) => member.user.email!).filter(Boolean), template: SmtpTemplates.SecretSyncFailed, @@ -907,7 +927,7 @@ export const secretSyncQueueFactory = ({ secretPath: folder?.path, environment: environment?.name, projectName: project.name, - syncUrl: `${appCfg.SITE_URL}/projects/secret-management/${projectId}/integrations/secret-syncs/${destination}/${secretSync.id}` + syncUrl: `${appCfg.SITE_URL}${syncPath}` } }); }; diff --git a/backend/src/services/secret-sync/secret-sync-service.ts b/backend/src/services/secret-sync/secret-sync-service.ts index 3fdb7fea6..ecd7d04a5 100644 --- a/backend/src/services/secret-sync/secret-sync-service.ts +++ b/backend/src/services/secret-sync/secret-sync-service.ts @@ -41,7 +41,7 @@ import { TSecretSyncQueueFactory } from "./secret-sync-queue"; type TSecretSyncServiceFactoryDep = { secretSyncDAL: TSecretSyncDALFactory; secretImportDAL: TSecretImportDALFactory; - appConnectionService: Pick; + appConnectionService: Pick; permissionService: Pick; projectBotService: Pick; folderDAL: Pick; @@ -267,7 +267,11 @@ export const secretSyncServiceFactory = ({ const destinationApp = SECRET_SYNC_CONNECTION_MAP[params.destination]; // validates permission to connect and app is valid for sync destination - await appConnectionService.connectAppConnectionById(destinationApp, params.connectionId, actor); + await appConnectionService.validateAppConnectionUsageById( + destinationApp, + { connectionId: params.connectionId, projectId }, + actor + ); try { const secretSync = await secretSyncDAL.create({ @@ -362,7 +366,11 @@ export const secretSyncServiceFactory = ({ const destinationApp = SECRET_SYNC_CONNECTION_MAP[secretSync.destination as SecretSync]; // validates permission to connect and app is valid for sync destination - await appConnectionService.connectAppConnectionById(destinationApp, params.connectionId, actor); + await appConnectionService.validateAppConnectionUsageById( + destinationApp, + { connectionId: params.connectionId, projectId: secretSync.projectId }, + actor + ); } if ( diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts index 93afb3b55..d8220e4f5 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts @@ -446,9 +446,10 @@ export const secretV2BridgeDALFactory = ({ db, keyStore }: TSecretV2DalArg) => { } }) .where((bd) => { - void bd - .whereNull(`${TableName.SecretV2}.userId`) - .orWhere({ [`${TableName.SecretV2}.userId` as "userId"]: userId || null }); + void bd.whereNull(`${TableName.SecretV2}.userId`); + // scott: removing this as we don't need to count overrides + // and there is currently a bug when you move secrets that doesn't move the override so this can skew count + // .orWhere({ [`${TableName.SecretV2}.userId` as "userId"]: userId || null }); }) .countDistinct(`${TableName.SecretV2}.key`); diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index 84b622b93..37a5dcd6f 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -491,15 +491,16 @@ export const secretV2BridgeServiceFactory = ({ secret = sharedSecretToModify; } - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionSecretActions.Edit, - subject(ProjectPermissionSub.Secrets, { - environment, - secretPath, - secretName: inputSecret.secretName, - secretTags: secret.tags.map((el) => el.slug) - }) - ); + if (secret.type !== SecretType.Personal) + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionSecretActions.Edit, + subject(ProjectPermissionSub.Secrets, { + environment, + secretPath, + secretName: inputSecret.secretName, + secretTags: secret.tags.map((el) => el.slug) + }) + ); // validate tags // fetch all tags and if not same count throw error meaning one was invalid tags @@ -510,17 +511,18 @@ export const secretV2BridgeServiceFactory = ({ const tagsToCheck = inputSecret.tagIds ? newTags : secret.tags; // now check with new ids - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionSecretActions.Edit, - subject(ProjectPermissionSub.Secrets, { - environment, - secretPath, - secretName: inputSecret.secretName, - ...(tagsToCheck.length && { - secretTags: tagsToCheck.map((el) => el.slug) + if (secret.type !== SecretType.Personal) + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionSecretActions.Edit, + subject(ProjectPermissionSub.Secrets, { + environment, + secretPath, + secretName: inputSecret.secretName, + ...(tagsToCheck.length && { + secretTags: tagsToCheck.map((el) => el.slug) + }) }) - }) - ); + ); if (inputSecret.newSecretName) { const doesNewNameSecretExist = await secretDAL.findOne({ @@ -727,15 +729,17 @@ export const secretV2BridgeServiceFactory = ({ }) }); if (!secretToDelete) throw new NotFoundError({ message: "Secret not found" }); - ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionSecretActions.Delete, - subject(ProjectPermissionSub.Secrets, { - environment, - secretPath, - secretName: secretToDelete.key, - secretTags: secretToDelete.tags?.map((el) => el.slug) - }) - ); + + if (secretToDelete.type !== SecretType.Personal) + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionSecretActions.Delete, + subject(ProjectPermissionSub.Secrets, { + environment, + secretPath, + secretName: secretToDelete.key, + secretTags: secretToDelete.tags?.map((el) => el.slug) + }) + ); try { const deletedSecret = await secretDAL.transaction(async (tx) => { @@ -1679,7 +1683,7 @@ export const secretV2BridgeServiceFactory = ({ await scanSecretPolicyViolations(projectId, secretPath, inputSecrets, project.secretDetectionIgnoreValues || []); // get all tags - const sanitizedTagIds = inputSecrets.flatMap(({ tagIds = [] }) => tagIds); + const sanitizedTagIds = [...new Set(inputSecrets.flatMap(({ tagIds = [] }) => tagIds))]; const tags = sanitizedTagIds.length ? await secretTagDAL.findManyTagsById(projectId, sanitizedTagIds) : []; if (tags.length !== sanitizedTagIds.length) throw new NotFoundError({ message: `Tag not found. Found ${tags.map((el) => el.slug).join(",")}` }); @@ -1927,7 +1931,7 @@ export const secretV2BridgeServiceFactory = ({ }); // get all tags - const sanitizedTagIds = secretsToUpdate.flatMap(({ tagIds = [] }) => tagIds); + const sanitizedTagIds = [...new Set(secretsToUpdate.flatMap(({ tagIds = [] }) => tagIds))]; const tags = sanitizedTagIds.length ? await secretTagDAL.findManyTagsById(projectId, sanitizedTagIds, tx) : []; if (tags.length !== sanitizedTagIds.length) throw new NotFoundError({ message: "Tag not found" }); const tagsGroupByID = groupBy(tags, (i) => i.id); @@ -2354,7 +2358,8 @@ export const secretV2BridgeServiceFactory = ({ actorAuthMethod, limit = 20, offset = 0, - secretId + secretId, + secretVersions: secretVersionsFilter }: TGetSecretVersionsDTO) => { const secret = await secretDAL.findById(secretId); @@ -2391,6 +2396,7 @@ export const secretV2BridgeServiceFactory = ({ const secretVersions = await secretVersionDAL.findVersionsBySecretIdWithActors({ secretId, projectId: folder.projectId, + secretVersions: secretVersionsFilter, findOpt: { offset, limit, @@ -2960,7 +2966,7 @@ export const secretV2BridgeServiceFactory = ({ secretKey: secretName }); - return { tree: stackTrace, value: expandedValue }; + return { tree: stackTrace, value: expandedValue, secret }; }; const getAccessibleSecrets = async ({ diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts index fc7d468ff..5e2ffc1a0 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts @@ -159,6 +159,7 @@ export type TGetSecretVersionsDTO = Omit & { limit?: number; offset?: number; secretId: string; + secretVersions?: string[]; }; export type TSecretReference = { environment: string; secretPath: string; secretKey: string }; diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 6bafa3ba6..3a5ccc667 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -2568,7 +2568,8 @@ export const secretServiceFactory = ({ actorAuthMethod, limit = 20, offset = 0, - secretId + secretId, + secretVersions: filterSecretVersions }: TGetSecretVersionsDTO) => { const secretVersionV2 = await secretV2BridgeService .getSecretVersions({ @@ -2578,7 +2579,8 @@ export const secretServiceFactory = ({ actorAuthMethod, limit, offset, - secretId + secretId, + secretVersions: filterSecretVersions }) .catch((err) => { if ((err as Error).message === "BadRequest: Failed to find secret") { @@ -2970,14 +2972,23 @@ export const secretServiceFactory = ({ actor, actorId, actorAuthMethod, - actorOrgId + actorOrgId, + projectId: inputProjectId }: TMoveSecretsDTO) => { - const project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); + let project; + if (projectSlug) { + project = await projectDAL.findProjectBySlug(projectSlug, actorOrgId); + } else if (inputProjectId) { + project = await projectDAL.findById(inputProjectId); + } + if (!project) { throw new NotFoundError({ message: `Project with slug '${projectSlug}' not found` }); } + + const projectId = project.id; if (project.version === ProjectVersion.V3) { return secretV2BridgeService.moveSecrets({ sourceEnvironment, @@ -3170,7 +3181,7 @@ export const secretServiceFactory = ({ }); } const destinationFolderPolicy = await secretApprovalPolicyService.getSecretApprovalPolicy( - project.id, + projectId, destinationFolder.environment.slug, destinationFolder.path ); @@ -3257,7 +3268,7 @@ export const secretServiceFactory = ({ } if (locallyUpdatedSecrets.length) { await fnSecretBulkUpdate({ - projectId: project.id, + projectId, folderId: destinationFolder.id, secretVersionDAL, secretDAL, @@ -3300,7 +3311,7 @@ export const secretServiceFactory = ({ const locallyDeletedSecrets = decryptedSourceSecrets.map((el) => ({ ...el, operation: SecretOperations.Delete })); const sourceFolderPolicy = await secretApprovalPolicyService.getSecretApprovalPolicy( - project.id, + projectId, sourceFolder.environment.slug, sourceFolder.path ); diff --git a/backend/src/services/secret/secret-types.ts b/backend/src/services/secret/secret-types.ts index cd341a8b5..d8c778d7e 100644 --- a/backend/src/services/secret/secret-types.ts +++ b/backend/src/services/secret/secret-types.ts @@ -331,6 +331,7 @@ export type TGetSecretVersionsDTO = Omit & { limit?: number; offset?: number; secretId: string; + secretVersions?: string[]; }; export type TSecretReference = { environment: string; secretPath: string }; @@ -534,7 +535,8 @@ export type TSyncSecretsDTO = { }); export type TMoveSecretsDTO = { - projectSlug: string; + projectId?: string; + projectSlug?: string; sourceEnvironment: string; sourceSecretPath: string; destinationEnvironment: string; diff --git a/backend/src/services/telemetry/telemetry-types.ts b/backend/src/services/telemetry/telemetry-types.ts index 7e2027f25..de466614a 100644 --- a/backend/src/services/telemetry/telemetry-types.ts +++ b/backend/src/services/telemetry/telemetry-types.ts @@ -32,7 +32,8 @@ export enum PostHogEventTypes { IssueSshHostHostCert = "Issue SSH Host Host Certificate", SignCert = "Sign PKI Certificate", IssueCert = "Issue PKI Certificate", - InvalidateCache = "Invalidate Cache" + InvalidateCache = "Invalidate Cache", + NotificationUpdated = "Notification Updated" } export type TSecretModifiedEvent = { @@ -46,7 +47,7 @@ export type TSecretModifiedEvent = { properties: { numberOfSecrets: number; environment: string; - workspaceId: string; + projectId: string; secretPath: string; channel?: string; userAgent?: string; @@ -232,6 +233,14 @@ export type TInvalidateCacheEvent = { }; }; +export type TNotificationUpdatedEvent = { + event: PostHogEventTypes.NotificationUpdated; + properties: { + notificationId: string; + isRead?: boolean; + }; +}; + export type TPostHogEvent = { distinctId: string; organizationId?: string } & ( | TSecretModifiedEvent | TAdminInitEvent @@ -251,4 +260,5 @@ export type TPostHogEvent = { distinctId: string; organizationId?: string } & ( | TSignCertificateEvent | TIssueCertificateEvent | TInvalidateCacheEvent + | TNotificationUpdatedEvent ); diff --git a/backend/src/services/user/user-service.ts b/backend/src/services/user/user-service.ts index f97e98fa3..b8058f327 100644 --- a/backend/src/services/user/user-service.ts +++ b/backend/src/services/user/user-service.ts @@ -294,11 +294,18 @@ export const userServiceFactory = ({ // Delete all user aliases since the email is changing await userAliasDAL.delete({ userId }, tx); + // Ensure EMAIL auth method is included if not already present + const currentAuthMethods = user.authMethods || []; + const updatedAuthMethods = currentAuthMethods.includes(AuthMethod.EMAIL) + ? currentAuthMethods + : [...currentAuthMethods, AuthMethod.EMAIL]; + const updatedUser = await userDAL.updateById( userId, { email: newEmail.toLowerCase(), - username: newEmail.toLowerCase() + username: newEmail.toLowerCase(), + authMethods: updatedAuthMethods }, tx ); diff --git a/docs/api-reference/endpoints/deprecated/environments/create.mdx b/docs/api-reference/endpoints/deprecated/environments/create.mdx new file mode 100644 index 000000000..826dcce3d --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/environments/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create" +openapi: "POST /api/v1/workspace/{workspaceId}/environments" +--- diff --git a/docs/api-reference/endpoints/deprecated/environments/delete.mdx b/docs/api-reference/endpoints/deprecated/environments/delete.mdx new file mode 100644 index 000000000..903e58d2a --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/environments/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete" +openapi: "DELETE /api/v1/workspace/{workspaceId}/environments/{id}" +--- diff --git a/docs/api-reference/endpoints/deprecated/environments/update.mdx b/docs/api-reference/endpoints/deprecated/environments/update.mdx new file mode 100644 index 000000000..f93968668 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/environments/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v1/workspace/{workspaceId}/environments/{id}" +--- diff --git a/docs/api-reference/endpoints/deprecated/folders/create.mdx b/docs/api-reference/endpoints/deprecated/folders/create.mdx new file mode 100644 index 000000000..e1ff3004a --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/folders/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create" +openapi: "POST /api/v1/folders" +--- diff --git a/docs/api-reference/endpoints/deprecated/folders/delete.mdx b/docs/api-reference/endpoints/deprecated/folders/delete.mdx new file mode 100644 index 000000000..a106cc2eb --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/folders/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete" +openapi: "DELETE /api/v1/folders/{folderIdOrName}" +--- diff --git a/docs/api-reference/endpoints/deprecated/folders/get-by-id.mdx b/docs/api-reference/endpoints/deprecated/folders/get-by-id.mdx new file mode 100644 index 000000000..db3c4d0cc --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/folders/get-by-id.mdx @@ -0,0 +1,4 @@ +--- +title: "Get by ID" +openapi: "GET /api/v1/folders/{id}" +--- diff --git a/docs/api-reference/endpoints/deprecated/folders/list.mdx b/docs/api-reference/endpoints/deprecated/folders/list.mdx new file mode 100644 index 000000000..f40f93273 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/folders/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List" +openapi: "GET /api/v1/folders" +--- diff --git a/docs/api-reference/endpoints/deprecated/folders/update.mdx b/docs/api-reference/endpoints/deprecated/folders/update.mdx new file mode 100644 index 000000000..c54778e94 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/folders/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v1/folders/{folderId}" +--- diff --git a/docs/api-reference/endpoints/organizations/workspaces.mdx b/docs/api-reference/endpoints/deprecated/organizations/projects.mdx similarity index 100% rename from docs/api-reference/endpoints/organizations/workspaces.mdx rename to docs/api-reference/endpoints/deprecated/organizations/projects.mdx diff --git a/docs/api-reference/endpoints/deprecated/project-groups/create.mdx b/docs/api-reference/endpoints/deprecated/project-groups/create.mdx new file mode 100644 index 000000000..6dd7f1a4f --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-groups/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create Project Membership" +openapi: "POST /api/v2/workspace/{projectId}/groups/{groupIdOrName}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-groups/delete.mdx b/docs/api-reference/endpoints/deprecated/project-groups/delete.mdx new file mode 100644 index 000000000..07db40d7f --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-groups/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete Project Membership" +openapi: "DELETE /api/v2/workspace/{projectId}/groups/{groupId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-groups/get-by-id.mdx b/docs/api-reference/endpoints/deprecated/project-groups/get-by-id.mdx new file mode 100644 index 000000000..611f39059 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-groups/get-by-id.mdx @@ -0,0 +1,4 @@ +--- +title: "Get Project Membership" +openapi: "GET /api/v2/workspace/{projectId}/groups/{groupId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-groups/list.mdx b/docs/api-reference/endpoints/deprecated/project-groups/list.mdx new file mode 100644 index 000000000..1488fb6ae --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-groups/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List Project Memberships" +openapi: "GET /api/v2/workspace/{projectId}/groups" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-groups/update.mdx b/docs/api-reference/endpoints/deprecated/project-groups/update.mdx new file mode 100644 index 000000000..8b963a1d8 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-groups/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update Project Membership" +openapi: "PATCH /api/v2/workspace/{projectId}/groups/{groupId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-identities/add-identity-membership.mdx b/docs/api-reference/endpoints/deprecated/project-identities/add-identity-membership.mdx new file mode 100644 index 000000000..285b1d1c4 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-identities/add-identity-membership.mdx @@ -0,0 +1,4 @@ +--- +title: "Create Identity Membership" +openapi: "POST /api/v2/workspace/{projectId}/identity-memberships/{identityId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-identities/delete-identity-membership.mdx b/docs/api-reference/endpoints/deprecated/project-identities/delete-identity-membership.mdx new file mode 100644 index 000000000..e2b266626 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-identities/delete-identity-membership.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete Identity Membership" +openapi: "DELETE /api/v2/workspace/{projectId}/identity-memberships/{identityId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-identities/get-by-id.mdx b/docs/api-reference/endpoints/deprecated/project-identities/get-by-id.mdx new file mode 100644 index 000000000..37f4192d7 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-identities/get-by-id.mdx @@ -0,0 +1,4 @@ +--- +title: "Get Identity by ID" +openapi: "GET /api/v2/workspace/{projectId}/identity-memberships/{identityId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-identities/list-identity-memberships.mdx b/docs/api-reference/endpoints/deprecated/project-identities/list-identity-memberships.mdx new file mode 100644 index 000000000..e5162e693 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-identities/list-identity-memberships.mdx @@ -0,0 +1,4 @@ +--- +title: "List Identity Memberships" +openapi: "GET /api/v2/workspace/{projectId}/identity-memberships" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-identities/update-identity-membership.mdx b/docs/api-reference/endpoints/deprecated/project-identities/update-identity-membership.mdx new file mode 100644 index 000000000..667cf7eb3 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-identities/update-identity-membership.mdx @@ -0,0 +1,4 @@ +--- +title: "Update Identity Membership" +openapi: "PATCH /api/v2/workspace/{projectId}/identity-memberships/{identityId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-roles/create.mdx b/docs/api-reference/endpoints/deprecated/project-roles/create.mdx new file mode 100644 index 000000000..97570ec36 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-roles/create.mdx @@ -0,0 +1,10 @@ +--- +title: "Create" +openapi: "POST /api/v2/workspace/{projectId}/roles" +--- + + + You can read more about the permissions field in the [permissions + documentation](/internals/permissions). + + diff --git a/docs/api-reference/endpoints/deprecated/project-roles/delete.mdx b/docs/api-reference/endpoints/deprecated/project-roles/delete.mdx new file mode 100644 index 000000000..41edfa7c3 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-roles/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete" +openapi: "DELETE /api/v2/workspace/{projectId}/roles/{roleId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-roles/get-by-slug.mdx b/docs/api-reference/endpoints/deprecated/project-roles/get-by-slug.mdx new file mode 100644 index 000000000..dfc5c582a --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-roles/get-by-slug.mdx @@ -0,0 +1,4 @@ +--- +title: "Get By Slug" +openapi: "GET /api/v2/workspace/{projectId}/roles/slug/{roleSlug}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-roles/list.mdx b/docs/api-reference/endpoints/deprecated/project-roles/list.mdx new file mode 100644 index 000000000..8d8dc10c1 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-roles/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List" +openapi: "GET /api/v2/workspace/{projectId}/roles" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-roles/update.mdx b/docs/api-reference/endpoints/deprecated/project-roles/update.mdx new file mode 100644 index 000000000..662d5e617 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-roles/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v2/workspace/{projectId}/roles/{roleId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-users/delete-membership.mdx b/docs/api-reference/endpoints/deprecated/project-users/delete-membership.mdx new file mode 100644 index 000000000..1995e4726 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-users/delete-membership.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete User Membership" +openapi: "DELETE /api/v1/workspace/{workspaceId}/memberships/{membershipId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/project-users/get-by-username.mdx b/docs/api-reference/endpoints/deprecated/project-users/get-by-username.mdx new file mode 100644 index 000000000..ec69d4947 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-users/get-by-username.mdx @@ -0,0 +1,4 @@ +--- +title: "Get By Username" +openapi: "POST /api/v1/workspace/{workspaceId}/memberships/details" +--- diff --git a/docs/api-reference/endpoints/project-users/invite-member-to-workspace.mdx b/docs/api-reference/endpoints/deprecated/project-users/invite-member-to-project.mdx similarity index 100% rename from docs/api-reference/endpoints/project-users/invite-member-to-workspace.mdx rename to docs/api-reference/endpoints/deprecated/project-users/invite-member-to-project.mdx diff --git a/docs/api-reference/endpoints/deprecated/project-users/memberships.mdx b/docs/api-reference/endpoints/deprecated/project-users/memberships.mdx new file mode 100644 index 000000000..3c4735f94 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-users/memberships.mdx @@ -0,0 +1,4 @@ +--- +title: "Get User Memberships" +openapi: "GET /api/v1/workspace/{workspaceId}/memberships" +--- diff --git a/docs/api-reference/endpoints/project-users/remove-member-from-workspace.mdx b/docs/api-reference/endpoints/deprecated/project-users/remove-member-from-project.mdx similarity index 100% rename from docs/api-reference/endpoints/project-users/remove-member-from-workspace.mdx rename to docs/api-reference/endpoints/deprecated/project-users/remove-member-from-project.mdx diff --git a/docs/api-reference/endpoints/deprecated/project-users/update-membership.mdx b/docs/api-reference/endpoints/deprecated/project-users/update-membership.mdx new file mode 100644 index 000000000..9a7aa600f --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/project-users/update-membership.mdx @@ -0,0 +1,4 @@ +--- +title: "Update User Membership" +openapi: "PATCH /api/v1/workspace/{workspaceId}/memberships/{membershipId}" +--- diff --git a/docs/api-reference/endpoints/workspaces/create-workspace.mdx b/docs/api-reference/endpoints/deprecated/projects/create-project.mdx similarity index 100% rename from docs/api-reference/endpoints/workspaces/create-workspace.mdx rename to docs/api-reference/endpoints/deprecated/projects/create-project.mdx diff --git a/docs/api-reference/endpoints/workspaces/delete-workspace.mdx b/docs/api-reference/endpoints/deprecated/projects/delete-project.mdx similarity index 100% rename from docs/api-reference/endpoints/workspaces/delete-workspace.mdx rename to docs/api-reference/endpoints/deprecated/projects/delete-project.mdx diff --git a/docs/api-reference/endpoints/workspaces/get-workspace-by-slug.mdx b/docs/api-reference/endpoints/deprecated/projects/get-project-by-slug.mdx similarity index 100% rename from docs/api-reference/endpoints/workspaces/get-workspace-by-slug.mdx rename to docs/api-reference/endpoints/deprecated/projects/get-project-by-slug.mdx diff --git a/docs/api-reference/endpoints/workspaces/get-workspace.mdx b/docs/api-reference/endpoints/deprecated/projects/get-project.mdx similarity index 94% rename from docs/api-reference/endpoints/workspaces/get-workspace.mdx rename to docs/api-reference/endpoints/deprecated/projects/get-project.mdx index edd0a0276..a27d41b43 100644 --- a/docs/api-reference/endpoints/workspaces/get-workspace.mdx +++ b/docs/api-reference/endpoints/deprecated/projects/get-project.mdx @@ -1,4 +1,4 @@ --- title: "Get Project" openapi: "GET /api/v1/workspace/{workspaceId}" ---- \ No newline at end of file +--- diff --git a/docs/api-reference/endpoints/workspaces/workspace-key.mdx b/docs/api-reference/endpoints/deprecated/projects/project-key.mdx similarity index 100% rename from docs/api-reference/endpoints/workspaces/workspace-key.mdx rename to docs/api-reference/endpoints/deprecated/projects/project-key.mdx diff --git a/docs/api-reference/endpoints/workspaces/update-workspace.mdx b/docs/api-reference/endpoints/deprecated/projects/project-workspace.mdx similarity index 100% rename from docs/api-reference/endpoints/workspaces/update-workspace.mdx rename to docs/api-reference/endpoints/deprecated/projects/project-workspace.mdx diff --git a/docs/api-reference/endpoints/workspaces/rollback-snapshot.mdx b/docs/api-reference/endpoints/deprecated/projects/rollback-snapshot.mdx similarity index 100% rename from docs/api-reference/endpoints/workspaces/rollback-snapshot.mdx rename to docs/api-reference/endpoints/deprecated/projects/rollback-snapshot.mdx diff --git a/docs/api-reference/endpoints/workspaces/secret-snapshots.mdx b/docs/api-reference/endpoints/deprecated/projects/secret-snapshots.mdx similarity index 100% rename from docs/api-reference/endpoints/workspaces/secret-snapshots.mdx rename to docs/api-reference/endpoints/deprecated/projects/secret-snapshots.mdx diff --git a/docs/api-reference/endpoints/deprecated/projects/update-project.mdx b/docs/api-reference/endpoints/deprecated/projects/update-project.mdx new file mode 100644 index 000000000..699e3e3af --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/projects/update-project.mdx @@ -0,0 +1,4 @@ +--- +title: "Update Project" +openapi: "PATCH /api/v1/workspace/{workspaceId}" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/deprecated/secret-imports/create.mdx b/docs/api-reference/endpoints/deprecated/secret-imports/create.mdx new file mode 100644 index 000000000..3abfb320f --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-imports/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create" +openapi: "POST /api/v1/secret-imports" +--- diff --git a/docs/api-reference/endpoints/deprecated/secret-imports/delete.mdx b/docs/api-reference/endpoints/deprecated/secret-imports/delete.mdx new file mode 100644 index 000000000..cfa5960b1 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-imports/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete" +openapi: "DELETE /api/v1/secret-imports/{secretImportId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/secret-imports/list.mdx b/docs/api-reference/endpoints/deprecated/secret-imports/list.mdx new file mode 100644 index 000000000..580d4be8d --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-imports/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List" +openapi: "GET /api/v1/secret-imports" +--- diff --git a/docs/api-reference/endpoints/deprecated/secret-imports/update.mdx b/docs/api-reference/endpoints/deprecated/secret-imports/update.mdx new file mode 100644 index 000000000..f21133223 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-imports/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v1/secret-imports/{secretImportId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/secret-tags/create.mdx b/docs/api-reference/endpoints/deprecated/secret-tags/create.mdx new file mode 100644 index 000000000..82d0eed17 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-tags/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create" +openapi: "POST /api/v1/workspace/{projectId}/tags" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/deprecated/secret-tags/delete.mdx b/docs/api-reference/endpoints/deprecated/secret-tags/delete.mdx new file mode 100644 index 000000000..cc98f03c2 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-tags/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete" +openapi: "DELETE /api/v1/workspace/{projectId}/tags/{tagId}" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/deprecated/secret-tags/get-by-id.mdx b/docs/api-reference/endpoints/deprecated/secret-tags/get-by-id.mdx new file mode 100644 index 000000000..de02fe133 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-tags/get-by-id.mdx @@ -0,0 +1,4 @@ +--- +title: "Get By ID" +openapi: "GET /api/v1/workspace/{projectId}/tags/{tagId}" +--- diff --git a/docs/api-reference/endpoints/deprecated/secret-tags/get-by-slug.mdx b/docs/api-reference/endpoints/deprecated/secret-tags/get-by-slug.mdx new file mode 100644 index 000000000..91eab730f --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-tags/get-by-slug.mdx @@ -0,0 +1,4 @@ +--- +title: "Get By Slug" +openapi: "GET /api/v1/workspace/{projectId}/tags/slug/{tagSlug}" +--- diff --git a/docs/api-reference/endpoints/deprecated/secret-tags/list.mdx b/docs/api-reference/endpoints/deprecated/secret-tags/list.mdx new file mode 100644 index 000000000..c4a940f77 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-tags/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List" +openapi: "GET /api/v1/workspace/{projectId}/tags" +--- \ No newline at end of file diff --git a/docs/api-reference/endpoints/deprecated/secret-tags/update.mdx b/docs/api-reference/endpoints/deprecated/secret-tags/update.mdx new file mode 100644 index 000000000..b9c290db8 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secret-tags/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v1/workspace/{projectId}/tags/{tagId}" +--- diff --git a/docs/api-reference/endpoints/secrets/attach-tags.mdx b/docs/api-reference/endpoints/deprecated/secrets/attach-tags.mdx similarity index 100% rename from docs/api-reference/endpoints/secrets/attach-tags.mdx rename to docs/api-reference/endpoints/deprecated/secrets/attach-tags.mdx diff --git a/docs/api-reference/endpoints/deprecated/secrets/create-many.mdx b/docs/api-reference/endpoints/deprecated/secrets/create-many.mdx new file mode 100644 index 000000000..227c5470d --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secrets/create-many.mdx @@ -0,0 +1,5 @@ +--- +title: "Bulk Create" +openapi: "POST /api/v3/secrets/batch/raw" +--- + diff --git a/docs/api-reference/endpoints/deprecated/secrets/create.mdx b/docs/api-reference/endpoints/deprecated/secrets/create.mdx new file mode 100644 index 000000000..afee0a719 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secrets/create.mdx @@ -0,0 +1,5 @@ +--- +title: "Create" +openapi: "POST /api/v3/secrets/raw/{secretName}" +--- + diff --git a/docs/api-reference/endpoints/deprecated/secrets/delete-many.mdx b/docs/api-reference/endpoints/deprecated/secrets/delete-many.mdx new file mode 100644 index 000000000..57c8588d8 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secrets/delete-many.mdx @@ -0,0 +1,5 @@ +--- +title: "Bulk Delete" +openapi: "DELETE /api/v3/secrets/batch/raw" +--- + diff --git a/docs/api-reference/endpoints/deprecated/secrets/delete.mdx b/docs/api-reference/endpoints/deprecated/secrets/delete.mdx new file mode 100644 index 000000000..ef3abc722 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secrets/delete.mdx @@ -0,0 +1,5 @@ +--- +title: "Delete" +openapi: "DELETE /api/v3/secrets/raw/{secretName}" +--- + diff --git a/docs/api-reference/endpoints/secrets/detach-tags.mdx b/docs/api-reference/endpoints/deprecated/secrets/detach-tags.mdx similarity index 100% rename from docs/api-reference/endpoints/secrets/detach-tags.mdx rename to docs/api-reference/endpoints/deprecated/secrets/detach-tags.mdx diff --git a/docs/api-reference/endpoints/deprecated/secrets/list.mdx b/docs/api-reference/endpoints/deprecated/secrets/list.mdx new file mode 100644 index 000000000..4808f6690 --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secrets/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List" +openapi: "GET /api/v3/secrets/raw" +--- diff --git a/docs/api-reference/endpoints/deprecated/secrets/read.mdx b/docs/api-reference/endpoints/deprecated/secrets/read.mdx new file mode 100644 index 000000000..6af308e0f --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secrets/read.mdx @@ -0,0 +1,5 @@ +--- +title: "Retrieve" +openapi: "GET /api/v3/secrets/raw/{secretName}" +--- + diff --git a/docs/api-reference/endpoints/deprecated/secrets/update-many.mdx b/docs/api-reference/endpoints/deprecated/secrets/update-many.mdx new file mode 100644 index 000000000..7586d91bc --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secrets/update-many.mdx @@ -0,0 +1,5 @@ +--- +title: "Bulk Update" +openapi: "PATCH /api/v3/secrets/batch/raw" +--- + diff --git a/docs/api-reference/endpoints/deprecated/secrets/update.mdx b/docs/api-reference/endpoints/deprecated/secrets/update.mdx new file mode 100644 index 000000000..ce68c492e --- /dev/null +++ b/docs/api-reference/endpoints/deprecated/secrets/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v3/secrets/raw/{secretName}" +--- diff --git a/docs/api-reference/endpoints/environments/create.mdx b/docs/api-reference/endpoints/environments/create.mdx index 826dcce3d..c7f9b0658 100644 --- a/docs/api-reference/endpoints/environments/create.mdx +++ b/docs/api-reference/endpoints/environments/create.mdx @@ -1,4 +1,4 @@ --- title: "Create" -openapi: "POST /api/v1/workspace/{workspaceId}/environments" +openapi: "POST /api/v1/projects/{projectId}/environments" --- diff --git a/docs/api-reference/endpoints/environments/delete.mdx b/docs/api-reference/endpoints/environments/delete.mdx index 903e58d2a..2d2419255 100644 --- a/docs/api-reference/endpoints/environments/delete.mdx +++ b/docs/api-reference/endpoints/environments/delete.mdx @@ -1,4 +1,4 @@ --- title: "Delete" -openapi: "DELETE /api/v1/workspace/{workspaceId}/environments/{id}" +openapi: "DELETE /api/v1/projects/{projectId}/environments/{id}" --- diff --git a/docs/api-reference/endpoints/environments/update.mdx b/docs/api-reference/endpoints/environments/update.mdx index f93968668..1583f5220 100644 --- a/docs/api-reference/endpoints/environments/update.mdx +++ b/docs/api-reference/endpoints/environments/update.mdx @@ -1,4 +1,4 @@ --- title: "Update" -openapi: "PATCH /api/v1/workspace/{workspaceId}/environments/{id}" +openapi: "PATCH /api/v1/projects/{projectId}/environments/{id}" --- diff --git a/docs/api-reference/endpoints/folders/create.mdx b/docs/api-reference/endpoints/folders/create.mdx index e1ff3004a..13c4abea2 100644 --- a/docs/api-reference/endpoints/folders/create.mdx +++ b/docs/api-reference/endpoints/folders/create.mdx @@ -1,4 +1,4 @@ --- title: "Create" -openapi: "POST /api/v1/folders" +openapi: "POST /api/v2/folders" --- diff --git a/docs/api-reference/endpoints/folders/delete.mdx b/docs/api-reference/endpoints/folders/delete.mdx index a106cc2eb..71ba9684c 100644 --- a/docs/api-reference/endpoints/folders/delete.mdx +++ b/docs/api-reference/endpoints/folders/delete.mdx @@ -1,4 +1,4 @@ --- title: "Delete" -openapi: "DELETE /api/v1/folders/{folderIdOrName}" +openapi: "DELETE /api/v2/folders/{folderIdOrName}" --- diff --git a/docs/api-reference/endpoints/folders/get-by-id.mdx b/docs/api-reference/endpoints/folders/get-by-id.mdx index db3c4d0cc..ebfda35da 100644 --- a/docs/api-reference/endpoints/folders/get-by-id.mdx +++ b/docs/api-reference/endpoints/folders/get-by-id.mdx @@ -1,4 +1,4 @@ --- title: "Get by ID" -openapi: "GET /api/v1/folders/{id}" +openapi: "GET /api/v2/folders/{id}" --- diff --git a/docs/api-reference/endpoints/folders/list.mdx b/docs/api-reference/endpoints/folders/list.mdx index f40f93273..1d3a10ed8 100644 --- a/docs/api-reference/endpoints/folders/list.mdx +++ b/docs/api-reference/endpoints/folders/list.mdx @@ -1,4 +1,4 @@ --- title: "List" -openapi: "GET /api/v1/folders" +openapi: "GET /api/v2/folders" --- diff --git a/docs/api-reference/endpoints/folders/update.mdx b/docs/api-reference/endpoints/folders/update.mdx index c54778e94..969833a04 100644 --- a/docs/api-reference/endpoints/folders/update.mdx +++ b/docs/api-reference/endpoints/folders/update.mdx @@ -1,4 +1,4 @@ --- title: "Update" -openapi: "PATCH /api/v1/folders/{folderId}" +openapi: "PATCH /api/v2/folders/{folderId}" --- diff --git a/docs/api-reference/endpoints/project-groups/create.mdx b/docs/api-reference/endpoints/project-groups/create.mdx index 6dd7f1a4f..c40c506a6 100644 --- a/docs/api-reference/endpoints/project-groups/create.mdx +++ b/docs/api-reference/endpoints/project-groups/create.mdx @@ -1,4 +1,4 @@ --- title: "Create Project Membership" -openapi: "POST /api/v2/workspace/{projectId}/groups/{groupIdOrName}" +openapi: "POST /api/v1/projects/{projectId}/groups/{groupIdOrName}" --- diff --git a/docs/api-reference/endpoints/project-groups/delete.mdx b/docs/api-reference/endpoints/project-groups/delete.mdx index 07db40d7f..450e05501 100644 --- a/docs/api-reference/endpoints/project-groups/delete.mdx +++ b/docs/api-reference/endpoints/project-groups/delete.mdx @@ -1,4 +1,4 @@ --- title: "Delete Project Membership" -openapi: "DELETE /api/v2/workspace/{projectId}/groups/{groupId}" +openapi: "DELETE /api/v1/projects/{projectId}/groups/{groupId}" --- diff --git a/docs/api-reference/endpoints/project-groups/get-by-id.mdx b/docs/api-reference/endpoints/project-groups/get-by-id.mdx index 611f39059..89aa6ebac 100644 --- a/docs/api-reference/endpoints/project-groups/get-by-id.mdx +++ b/docs/api-reference/endpoints/project-groups/get-by-id.mdx @@ -1,4 +1,4 @@ --- title: "Get Project Membership" -openapi: "GET /api/v2/workspace/{projectId}/groups/{groupId}" +openapi: "GET /api/v1/projects/{projectId}/groups/{groupId}" --- diff --git a/docs/api-reference/endpoints/project-groups/list.mdx b/docs/api-reference/endpoints/project-groups/list.mdx index 1488fb6ae..90b4f957a 100644 --- a/docs/api-reference/endpoints/project-groups/list.mdx +++ b/docs/api-reference/endpoints/project-groups/list.mdx @@ -1,4 +1,4 @@ --- title: "List Project Memberships" -openapi: "GET /api/v2/workspace/{projectId}/groups" +openapi: "GET /api/v1/projects/{projectId}/groups" --- diff --git a/docs/api-reference/endpoints/project-groups/update.mdx b/docs/api-reference/endpoints/project-groups/update.mdx index 8b963a1d8..029815673 100644 --- a/docs/api-reference/endpoints/project-groups/update.mdx +++ b/docs/api-reference/endpoints/project-groups/update.mdx @@ -1,4 +1,4 @@ --- title: "Update Project Membership" -openapi: "PATCH /api/v2/workspace/{projectId}/groups/{groupId}" +openapi: "PATCH /api/v1/projects/{projectId}/groups/{groupId}" --- diff --git a/docs/api-reference/endpoints/project-identities/add-identity-membership.mdx b/docs/api-reference/endpoints/project-identities/add-identity-membership.mdx index 285b1d1c4..8b0122efd 100644 --- a/docs/api-reference/endpoints/project-identities/add-identity-membership.mdx +++ b/docs/api-reference/endpoints/project-identities/add-identity-membership.mdx @@ -1,4 +1,4 @@ --- title: "Create Identity Membership" -openapi: "POST /api/v2/workspace/{projectId}/identity-memberships/{identityId}" +openapi: "POST /api/v1/projects/{projectId}/identity-memberships/{identityId}" --- diff --git a/docs/api-reference/endpoints/project-identities/delete-identity-membership.mdx b/docs/api-reference/endpoints/project-identities/delete-identity-membership.mdx index e2b266626..10c56e5ec 100644 --- a/docs/api-reference/endpoints/project-identities/delete-identity-membership.mdx +++ b/docs/api-reference/endpoints/project-identities/delete-identity-membership.mdx @@ -1,4 +1,4 @@ --- title: "Delete Identity Membership" -openapi: "DELETE /api/v2/workspace/{projectId}/identity-memberships/{identityId}" +openapi: "DELETE /api/v1/projects/{projectId}/identity-memberships/{identityId}" --- diff --git a/docs/api-reference/endpoints/project-identities/get-by-id.mdx b/docs/api-reference/endpoints/project-identities/get-by-id.mdx index 37f4192d7..801b0d422 100644 --- a/docs/api-reference/endpoints/project-identities/get-by-id.mdx +++ b/docs/api-reference/endpoints/project-identities/get-by-id.mdx @@ -1,4 +1,4 @@ --- title: "Get Identity by ID" -openapi: "GET /api/v2/workspace/{projectId}/identity-memberships/{identityId}" +openapi: "GET /api/v1/projects/{projectId}/identity-memberships/{identityId}" --- diff --git a/docs/api-reference/endpoints/project-identities/list-identity-memberships.mdx b/docs/api-reference/endpoints/project-identities/list-identity-memberships.mdx index e5162e693..8673350fa 100644 --- a/docs/api-reference/endpoints/project-identities/list-identity-memberships.mdx +++ b/docs/api-reference/endpoints/project-identities/list-identity-memberships.mdx @@ -1,4 +1,4 @@ --- title: "List Identity Memberships" -openapi: "GET /api/v2/workspace/{projectId}/identity-memberships" +openapi: "GET /api/v1/projects/{projectId}/identity-memberships" --- diff --git a/docs/api-reference/endpoints/project-identities/update-identity-membership.mdx b/docs/api-reference/endpoints/project-identities/update-identity-membership.mdx index 667cf7eb3..ef34363d6 100644 --- a/docs/api-reference/endpoints/project-identities/update-identity-membership.mdx +++ b/docs/api-reference/endpoints/project-identities/update-identity-membership.mdx @@ -1,4 +1,4 @@ --- title: "Update Identity Membership" -openapi: "PATCH /api/v2/workspace/{projectId}/identity-memberships/{identityId}" +openapi: "PATCH /api/v1/projects/{projectId}/identity-memberships/{identityId}" --- diff --git a/docs/api-reference/endpoints/project-roles/create.mdx b/docs/api-reference/endpoints/project-roles/create.mdx index 97570ec36..1d3f9eb51 100644 --- a/docs/api-reference/endpoints/project-roles/create.mdx +++ b/docs/api-reference/endpoints/project-roles/create.mdx @@ -1,10 +1,9 @@ --- title: "Create" -openapi: "POST /api/v2/workspace/{projectId}/roles" +openapi: "POST /api/v1/projects/{projectId}/roles" --- You can read more about the permissions field in the [permissions documentation](/internals/permissions). - diff --git a/docs/api-reference/endpoints/project-roles/delete.mdx b/docs/api-reference/endpoints/project-roles/delete.mdx index 41edfa7c3..7b162c6da 100644 --- a/docs/api-reference/endpoints/project-roles/delete.mdx +++ b/docs/api-reference/endpoints/project-roles/delete.mdx @@ -1,4 +1,4 @@ --- title: "Delete" -openapi: "DELETE /api/v2/workspace/{projectId}/roles/{roleId}" +openapi: "DELETE /api/v1/projects/{projectId}/roles/{roleId}" --- diff --git a/docs/api-reference/endpoints/project-roles/get-by-slug.mdx b/docs/api-reference/endpoints/project-roles/get-by-slug.mdx index dfc5c582a..adfac8cd3 100644 --- a/docs/api-reference/endpoints/project-roles/get-by-slug.mdx +++ b/docs/api-reference/endpoints/project-roles/get-by-slug.mdx @@ -1,4 +1,4 @@ --- title: "Get By Slug" -openapi: "GET /api/v2/workspace/{projectId}/roles/slug/{roleSlug}" +openapi: "GET /api/v1/projects/{projectId}/roles/slug/{roleSlug}" --- diff --git a/docs/api-reference/endpoints/project-roles/list.mdx b/docs/api-reference/endpoints/project-roles/list.mdx index 8d8dc10c1..df6164370 100644 --- a/docs/api-reference/endpoints/project-roles/list.mdx +++ b/docs/api-reference/endpoints/project-roles/list.mdx @@ -1,4 +1,4 @@ --- title: "List" -openapi: "GET /api/v2/workspace/{projectId}/roles" +openapi: "GET /api/v1/projects/{projectId}/roles" --- diff --git a/docs/api-reference/endpoints/project-roles/update.mdx b/docs/api-reference/endpoints/project-roles/update.mdx index 662d5e617..56ac34f8b 100644 --- a/docs/api-reference/endpoints/project-roles/update.mdx +++ b/docs/api-reference/endpoints/project-roles/update.mdx @@ -1,4 +1,4 @@ --- title: "Update" -openapi: "PATCH /api/v2/workspace/{projectId}/roles/{roleId}" +openapi: "PATCH /api/v1/projects/{projectId}/roles/{roleId}" --- diff --git a/docs/api-reference/endpoints/project-users/delete-membership.mdx b/docs/api-reference/endpoints/project-users/delete-membership.mdx index 1995e4726..5c87e94af 100644 --- a/docs/api-reference/endpoints/project-users/delete-membership.mdx +++ b/docs/api-reference/endpoints/project-users/delete-membership.mdx @@ -1,4 +1,4 @@ --- title: "Delete User Membership" -openapi: "DELETE /api/v1/workspace/{workspaceId}/memberships/{membershipId}" +openapi: "DELETE /api/v1/projects/{projectId}/memberships/{membershipId}" --- diff --git a/docs/api-reference/endpoints/project-users/get-by-username.mdx b/docs/api-reference/endpoints/project-users/get-by-username.mdx index ec69d4947..5e4916b8e 100644 --- a/docs/api-reference/endpoints/project-users/get-by-username.mdx +++ b/docs/api-reference/endpoints/project-users/get-by-username.mdx @@ -1,4 +1,4 @@ --- title: "Get By Username" -openapi: "POST /api/v1/workspace/{workspaceId}/memberships/details" +openapi: "POST /api/v1/projects/{projectId}/memberships/details" --- diff --git a/docs/api-reference/endpoints/project-users/invite-member-to-project.mdx b/docs/api-reference/endpoints/project-users/invite-member-to-project.mdx new file mode 100644 index 000000000..c6fda8a09 --- /dev/null +++ b/docs/api-reference/endpoints/project-users/invite-member-to-project.mdx @@ -0,0 +1,4 @@ +--- +title: "Invite Member" +openapi: "POST /api/v1/projects/{projectId}/memberships" +--- diff --git a/docs/api-reference/endpoints/project-users/memberships.mdx b/docs/api-reference/endpoints/project-users/memberships.mdx index 3c4735f94..dd79667fe 100644 --- a/docs/api-reference/endpoints/project-users/memberships.mdx +++ b/docs/api-reference/endpoints/project-users/memberships.mdx @@ -1,4 +1,4 @@ --- title: "Get User Memberships" -openapi: "GET /api/v1/workspace/{workspaceId}/memberships" +openapi: "GET /api/v1/projects/{projectId}/memberships" --- diff --git a/docs/api-reference/endpoints/project-users/remove-member-from-project.mdx b/docs/api-reference/endpoints/project-users/remove-member-from-project.mdx new file mode 100644 index 000000000..8646aa158 --- /dev/null +++ b/docs/api-reference/endpoints/project-users/remove-member-from-project.mdx @@ -0,0 +1,4 @@ +--- +title: "Remove Member" +openapi: "DELETE /api/v1/projects/{projectId}/memberships" +--- diff --git a/docs/api-reference/endpoints/project-users/update-membership.mdx b/docs/api-reference/endpoints/project-users/update-membership.mdx index 9a7aa600f..5f1edcf0a 100644 --- a/docs/api-reference/endpoints/project-users/update-membership.mdx +++ b/docs/api-reference/endpoints/project-users/update-membership.mdx @@ -1,4 +1,4 @@ --- title: "Update User Membership" -openapi: "PATCH /api/v1/workspace/{workspaceId}/memberships/{membershipId}" +openapi: "PATCH /api/v1/projects/{projectId}/memberships/{membershipId}" --- diff --git a/docs/api-reference/endpoints/projects/create-project.mdx b/docs/api-reference/endpoints/projects/create-project.mdx new file mode 100644 index 000000000..7ee1caff8 --- /dev/null +++ b/docs/api-reference/endpoints/projects/create-project.mdx @@ -0,0 +1,4 @@ +--- +title: "Create Project" +openapi: "POST /api/v1/projects" +--- diff --git a/docs/api-reference/endpoints/projects/delete-project.mdx b/docs/api-reference/endpoints/projects/delete-project.mdx new file mode 100644 index 000000000..eff96ded5 --- /dev/null +++ b/docs/api-reference/endpoints/projects/delete-project.mdx @@ -0,0 +1,8 @@ +--- +title: "Delete Project" +openapi: "DELETE /api/v1/projects/{projectId}" +--- + + + This operation is irreversible. All data associated with the project will be deleted. Please use with caution. + diff --git a/docs/api-reference/endpoints/projects/get-project-by-slug.mdx b/docs/api-reference/endpoints/projects/get-project-by-slug.mdx new file mode 100644 index 000000000..9bcccc31e --- /dev/null +++ b/docs/api-reference/endpoints/projects/get-project-by-slug.mdx @@ -0,0 +1,4 @@ +--- +title: "Get Project By Slug" +openapi: "GET /api/v1/projects/slug/{slug}" +--- diff --git a/docs/api-reference/endpoints/projects/get-project.mdx b/docs/api-reference/endpoints/projects/get-project.mdx new file mode 100644 index 000000000..6ed92833e --- /dev/null +++ b/docs/api-reference/endpoints/projects/get-project.mdx @@ -0,0 +1,4 @@ +--- +title: "Get Project" +openapi: "GET /api/v1/projects/{projectId}" +--- diff --git a/docs/api-reference/endpoints/projects/list-projects.mdx b/docs/api-reference/endpoints/projects/list-projects.mdx new file mode 100644 index 000000000..5017023a1 --- /dev/null +++ b/docs/api-reference/endpoints/projects/list-projects.mdx @@ -0,0 +1,4 @@ +--- +title: "List Projects" +openapi: "GET /api/v1/projects" +--- diff --git a/docs/api-reference/endpoints/projects/rollback-snapshot.mdx b/docs/api-reference/endpoints/projects/rollback-snapshot.mdx new file mode 100644 index 000000000..527c861b2 --- /dev/null +++ b/docs/api-reference/endpoints/projects/rollback-snapshot.mdx @@ -0,0 +1,4 @@ +--- +title: "Roll Back to Snapshot" +openapi: "POST /api/v1/secret-snapshot/{secretSnapshotId}/rollback" +--- diff --git a/docs/api-reference/endpoints/projects/secret-snapshots.mdx b/docs/api-reference/endpoints/projects/secret-snapshots.mdx new file mode 100644 index 000000000..182e61507 --- /dev/null +++ b/docs/api-reference/endpoints/projects/secret-snapshots.mdx @@ -0,0 +1,4 @@ +--- +title: "Get Snapshots" +openapi: "GET /api/v1/projects/{projectId}/secret-snapshots" +--- diff --git a/docs/api-reference/endpoints/projects/update-project.mdx b/docs/api-reference/endpoints/projects/update-project.mdx new file mode 100644 index 000000000..99fcc7b76 --- /dev/null +++ b/docs/api-reference/endpoints/projects/update-project.mdx @@ -0,0 +1,4 @@ +--- +title: "Update Project" +openapi: "PATCH /api/v1/projects/{projectId}" +--- diff --git a/docs/api-reference/endpoints/secret-imports/create.mdx b/docs/api-reference/endpoints/secret-imports/create.mdx index 3abfb320f..f072e59a4 100644 --- a/docs/api-reference/endpoints/secret-imports/create.mdx +++ b/docs/api-reference/endpoints/secret-imports/create.mdx @@ -1,4 +1,4 @@ --- title: "Create" -openapi: "POST /api/v1/secret-imports" +openapi: "POST /api/v2/secret-imports" --- diff --git a/docs/api-reference/endpoints/secret-imports/delete.mdx b/docs/api-reference/endpoints/secret-imports/delete.mdx index cfa5960b1..d0b35426b 100644 --- a/docs/api-reference/endpoints/secret-imports/delete.mdx +++ b/docs/api-reference/endpoints/secret-imports/delete.mdx @@ -1,4 +1,4 @@ --- title: "Delete" -openapi: "DELETE /api/v1/secret-imports/{secretImportId}" +openapi: "DELETE /api/v2/secret-imports/{secretImportId}" --- diff --git a/docs/api-reference/endpoints/secret-imports/list.mdx b/docs/api-reference/endpoints/secret-imports/list.mdx index 580d4be8d..1cf3e1386 100644 --- a/docs/api-reference/endpoints/secret-imports/list.mdx +++ b/docs/api-reference/endpoints/secret-imports/list.mdx @@ -1,4 +1,4 @@ --- title: "List" -openapi: "GET /api/v1/secret-imports" +openapi: "GET /api/v2/secret-imports" --- diff --git a/docs/api-reference/endpoints/secret-imports/update.mdx b/docs/api-reference/endpoints/secret-imports/update.mdx index f21133223..146fcd76b 100644 --- a/docs/api-reference/endpoints/secret-imports/update.mdx +++ b/docs/api-reference/endpoints/secret-imports/update.mdx @@ -1,4 +1,4 @@ --- title: "Update" -openapi: "PATCH /api/v1/secret-imports/{secretImportId}" +openapi: "PATCH /api/v2/secret-imports/{secretImportId}" --- diff --git a/docs/api-reference/endpoints/secret-tags/create.mdx b/docs/api-reference/endpoints/secret-tags/create.mdx index 82d0eed17..d4c587979 100644 --- a/docs/api-reference/endpoints/secret-tags/create.mdx +++ b/docs/api-reference/endpoints/secret-tags/create.mdx @@ -1,4 +1,4 @@ --- title: "Create" -openapi: "POST /api/v1/workspace/{projectId}/tags" ---- \ No newline at end of file +openapi: "POST /api/v1/projects/{projectId}/tags" +--- diff --git a/docs/api-reference/endpoints/secret-tags/delete.mdx b/docs/api-reference/endpoints/secret-tags/delete.mdx index cc98f03c2..121d6816c 100644 --- a/docs/api-reference/endpoints/secret-tags/delete.mdx +++ b/docs/api-reference/endpoints/secret-tags/delete.mdx @@ -1,4 +1,4 @@ --- title: "Delete" -openapi: "DELETE /api/v1/workspace/{projectId}/tags/{tagId}" ---- \ No newline at end of file +openapi: "DELETE /api/v1/projects/{projectId}/tags/{tagId}" +--- diff --git a/docs/api-reference/endpoints/secret-tags/get-by-id.mdx b/docs/api-reference/endpoints/secret-tags/get-by-id.mdx index de02fe133..7e1fa8d7f 100644 --- a/docs/api-reference/endpoints/secret-tags/get-by-id.mdx +++ b/docs/api-reference/endpoints/secret-tags/get-by-id.mdx @@ -1,4 +1,4 @@ --- title: "Get By ID" -openapi: "GET /api/v1/workspace/{projectId}/tags/{tagId}" +openapi: "GET /api/v1/projects/{projectId}/tags/{tagId}" --- diff --git a/docs/api-reference/endpoints/secret-tags/get-by-slug.mdx b/docs/api-reference/endpoints/secret-tags/get-by-slug.mdx index 91eab730f..c012c97d4 100644 --- a/docs/api-reference/endpoints/secret-tags/get-by-slug.mdx +++ b/docs/api-reference/endpoints/secret-tags/get-by-slug.mdx @@ -1,4 +1,4 @@ --- title: "Get By Slug" -openapi: "GET /api/v1/workspace/{projectId}/tags/slug/{tagSlug}" +openapi: "GET /api/v1/projects/{projectId}/tags/slug/{tagSlug}" --- diff --git a/docs/api-reference/endpoints/secret-tags/list.mdx b/docs/api-reference/endpoints/secret-tags/list.mdx index c4a940f77..b7e1eca74 100644 --- a/docs/api-reference/endpoints/secret-tags/list.mdx +++ b/docs/api-reference/endpoints/secret-tags/list.mdx @@ -1,4 +1,4 @@ --- title: "List" -openapi: "GET /api/v1/workspace/{projectId}/tags" ---- \ No newline at end of file +openapi: "GET /api/v1/projects/{projectId}/tags" +--- diff --git a/docs/api-reference/endpoints/secret-tags/update.mdx b/docs/api-reference/endpoints/secret-tags/update.mdx index b9c290db8..b20ce49f4 100644 --- a/docs/api-reference/endpoints/secret-tags/update.mdx +++ b/docs/api-reference/endpoints/secret-tags/update.mdx @@ -1,4 +1,4 @@ --- title: "Update" -openapi: "PATCH /api/v1/workspace/{projectId}/tags/{tagId}" +openapi: "PATCH /api/v1/projects/{projectId}/tags/{tagId}" --- diff --git a/docs/api-reference/endpoints/secrets/create-many.mdx b/docs/api-reference/endpoints/secrets/create-many.mdx index 227c5470d..e3d30aef8 100644 --- a/docs/api-reference/endpoints/secrets/create-many.mdx +++ b/docs/api-reference/endpoints/secrets/create-many.mdx @@ -1,5 +1,4 @@ --- title: "Bulk Create" -openapi: "POST /api/v3/secrets/batch/raw" +openapi: "POST /api/v4/secrets/batch" --- - diff --git a/docs/api-reference/endpoints/secrets/create.mdx b/docs/api-reference/endpoints/secrets/create.mdx index afee0a719..c04dcf9f4 100644 --- a/docs/api-reference/endpoints/secrets/create.mdx +++ b/docs/api-reference/endpoints/secrets/create.mdx @@ -1,5 +1,4 @@ --- title: "Create" -openapi: "POST /api/v3/secrets/raw/{secretName}" +openapi: "POST /api/v4/secrets/{secretName}" --- - diff --git a/docs/api-reference/endpoints/secrets/delete-many.mdx b/docs/api-reference/endpoints/secrets/delete-many.mdx index 57c8588d8..49491c3b9 100644 --- a/docs/api-reference/endpoints/secrets/delete-many.mdx +++ b/docs/api-reference/endpoints/secrets/delete-many.mdx @@ -1,5 +1,4 @@ --- title: "Bulk Delete" -openapi: "DELETE /api/v3/secrets/batch/raw" +openapi: "DELETE /api/v4/secrets/batch" --- - diff --git a/docs/api-reference/endpoints/secrets/delete.mdx b/docs/api-reference/endpoints/secrets/delete.mdx index ef3abc722..f71a851e8 100644 --- a/docs/api-reference/endpoints/secrets/delete.mdx +++ b/docs/api-reference/endpoints/secrets/delete.mdx @@ -1,5 +1,4 @@ --- title: "Delete" -openapi: "DELETE /api/v3/secrets/raw/{secretName}" +openapi: "DELETE /api/v4/secrets/{secretName}" --- - diff --git a/docs/api-reference/endpoints/secrets/list.mdx b/docs/api-reference/endpoints/secrets/list.mdx index 4808f6690..6a1f38d68 100644 --- a/docs/api-reference/endpoints/secrets/list.mdx +++ b/docs/api-reference/endpoints/secrets/list.mdx @@ -1,4 +1,4 @@ --- title: "List" -openapi: "GET /api/v3/secrets/raw" +openapi: "GET /api/v4/secrets" --- diff --git a/docs/api-reference/endpoints/secrets/read.mdx b/docs/api-reference/endpoints/secrets/read.mdx index 6af308e0f..10e725ba5 100644 --- a/docs/api-reference/endpoints/secrets/read.mdx +++ b/docs/api-reference/endpoints/secrets/read.mdx @@ -1,5 +1,4 @@ --- title: "Retrieve" -openapi: "GET /api/v3/secrets/raw/{secretName}" +openapi: "GET /api/v4/secrets/{secretName}" --- - diff --git a/docs/api-reference/endpoints/secrets/update-many.mdx b/docs/api-reference/endpoints/secrets/update-many.mdx index 7586d91bc..9aca17148 100644 --- a/docs/api-reference/endpoints/secrets/update-many.mdx +++ b/docs/api-reference/endpoints/secrets/update-many.mdx @@ -1,5 +1,4 @@ --- title: "Bulk Update" -openapi: "PATCH /api/v3/secrets/batch/raw" +openapi: "PATCH /api/v4/secrets/batch" --- - diff --git a/docs/api-reference/endpoints/secrets/update.mdx b/docs/api-reference/endpoints/secrets/update.mdx index ce68c492e..435f3e0c4 100644 --- a/docs/api-reference/endpoints/secrets/update.mdx +++ b/docs/api-reference/endpoints/secrets/update.mdx @@ -1,4 +1,4 @@ --- title: "Update" -openapi: "PATCH /api/v3/secrets/raw/{secretName}" +openapi: "PATCH /api/v4/secrets/{secretName}" --- diff --git a/docs/cli/commands/gateway.mdx b/docs/cli/commands/gateway.mdx index 99d0e1086..bddbf614c 100644 --- a/docs/cli/commands/gateway.mdx +++ b/docs/cli/commands/gateway.mdx @@ -9,7 +9,7 @@ description: "Run the Infisical gateway or manage its systemd service" infisical gateway start --name= --relay= --auth-method= ``` - + ```bash sudo infisical gateway systemd install --token= --domain= --name= --relay= ``` @@ -25,29 +25,29 @@ The gateway system uses SSH reverse tunnels over TCP, eliminating firewall compl **Deprecation and Migration Notice:** The legacy `infisical gateway` command (v1) will be removed in a future release. Please migrate to `infisical gateway start` (Gateway v2). -If you are moving from Gateway v1 to Gateway v2, this is NOT a drop-in switch. Gateway v2 creates new gateway instances with new gateway IDs. You must update any existing resources that reference gateway IDs (for example: dynamic secret configs, app connections, or other gateway-bound resources) to point to the new Gateway v2 gateway ID. Until you update those references, traffic will continue to target the old v1 gateway. +If you are moving from Gateway v1 to Gateway v2, this is NOT a drop-in switch. Gateway v2 creates new gateway instances with new gateway IDs. You must update any existing resources that reference gateway IDs (for example: dynamic secret configs, app connections, or other gateway-bound resources) to point to the new Gateway v2 gateway resource. Until you update those references, traffic will continue to target the old v1 gateway. ## Subcommands & flags - Run the Infisical gateway component within your VPC. The gateway establishes an SSH reverse tunnel to the specified relay server and provides secure access to private resources. + Run the Infisical gateway component within your the network where your target resources are located. The gateway establishes an SSH reverse tunnel to the specified relay server and provides secure access to private resources within your network. ```bash infisical gateway start --relay= --name= --auth-method= ``` -The gateway component: +Once started, the gateway component will: -- Establishes outbound SSH reverse tunnels to relay servers (no inbound firewall rules needed) -- Authenticates using SSH certificates issued by Infisical -- Automatically reconnects if the connection is lost -- Provides access to private resources within your network +- Establish outbound SSH reverse tunnels to relay servers (no inbound firewall rules needed) +- Authenticate using SSH certificates issued by Infisical +- Automatically reconnect if the connection is lost +- Provide access to private resources within your network ### Authentication -The Infisical CLI supports multiple authentication methods. Below are the available authentication methods, with their respective flags. +The Relay supports multiple authentication methods. Below are the available authentication methods, with their respective flags. @@ -361,12 +361,12 @@ sudo systemctl disable infisical-gateway # Disable auto-start on boot -## Legacy Gateway Commands (Deprecated) +## Legacy Gateway Commands **This command is deprecated and will be removed in a future release.** - + Please migrate to `infisical gateway start` for the new TCP-based SSH tunnel architecture. **Migration required:** If you are currently using Gateway v1 (via `infisical gateway`), moving to Gateway v2 is not in-place. Gateway v2 provisions new gateway instances with new gateway IDs. Update any resources that reference a gateway ID (for example: dynamic secret configs, app connections, or other gateway-bound resources) to use the new Gateway v2 gateway ID. Until you update those references, traffic will continue to target the old v1 gateway. @@ -593,7 +593,7 @@ The Infisical CLI supports multiple authentication methods. Below are the availa **This command is deprecated and will be removed in a future release.** - + Please migrate to `infisical gateway systemd install` for the new TCP-based SSH tunnel architecture with enhanced security and better performance. **Migration required:** If you previously installed Gateway v1 via `infisical gateway install`, moving to Gateway v2 is not in-place. Gateway v2 provisions new gateway instances with new gateway IDs. Update any resources that reference a gateway ID (for example: dynamic secret configs, app connections, or other gateway-bound resources) to use the new Gateway v2 gateway ID. Until you update those references, traffic will continue to target the old v1 gateway. diff --git a/docs/cli/commands/relay.mdx b/docs/cli/commands/relay.mdx index 46a061da3..b377b9ce2 100644 --- a/docs/cli/commands/relay.mdx +++ b/docs/cli/commands/relay.mdx @@ -6,88 +6,70 @@ description: "Relay-related commands for Infisical" ```bash - infisical relay start --type= --host= --name= --auth-method= + infisical relay start --host= --name= --auth-method= + ``` + + + ```bash + # Install systemd service + sudo infisical relay systemd install --host= --name= --token= + + # Uninstall systemd service + sudo infisical relay systemd uninstall ``` ## Description -Relay-related commands for Infisical that provide identity-aware relay infrastructure for routing encrypted traffic: - -- **Relay**: Identity-aware server that routes encrypted traffic (can be instance-wide or organization-specific) - -The relay system uses SSH reverse tunnels over TCP, eliminating firewall complexity and providing excellent performance for enterprise environments. +Relay-related commands for Infisical that provide identity-aware relay infrastructure for routing encrypted traffic. Relays are organization-deployed servers that route encrypted traffic between Infisical and your gateways. ## Subcommands & flags - Run the Infisical relay component. The relay handles network traffic routing and can operate in different modes. + Run the Infisical relay component. The relay handles network traffic routing between Infisical and your gateways. ```bash -infisical relay start --type= --host= --name= --auth-method= +infisical relay start --host= --name= --auth-method= ``` ### Flags - - The type of relay to run. Must be either 'instance' or 'org'. - - - **`instance`**: Shared relay server that can be used by all organizations on your Infisical instance. Set up by the instance administrator. Uses `INFISICAL_RELAY_AUTH_SECRET` environment variable for authentication, which must be configured by the instance admin. - - **`org`**: Dedicated relay server that individual organizations deploy and manage in their own infrastructure. Provides enhanced security, custom geographic placement, and compliance benefits. Uses standard Infisical authentication methods. - - ```bash - # Organization relay (customer-deployed) - infisical relay start --type=org --host=192.168.1.100 --name=my-org-relay - - # Instance relay (configured by instance admin) - INFISICAL_RELAY_AUTH_SECRET= infisical relay start --type=instance --host=10.0.1.50 --name=shared-relay - ``` - - - The host (IP address or hostname) of the instance where the relay is deployed. This must be a static public IP or resolvable hostname that gateways can reach. ```bash # Example with IP address - infisical relay start --host=203.0.113.100 --type=org --name=my-relay + infisical relay start --host=203.0.113.100 --name=my-relay # Example with hostname - infisical relay start --host=relay.example.com --type=org --name=my-relay + infisical relay start --host=relay.example.com --name=my-relay ``` - The name of the relay. + The name of the relay. This is an arbitrary identifier for your relay instance. ```bash # Example - infisical relay start --name=my-relay --type=org --host=192.168.1.100 + infisical relay start --name=my-relay --host=192.168.1.100 ``` ### Authentication -**Organization Relays (`--type=org`):** -Deploy your own relay server in your infrastructure for enhanced security and reduced latency. Supports all standard Infisical authentication methods documented below. - -**Instance Relays (`--type=instance`):** -Shared relay servers that serve all organizations on your Infisical instance. For Infisical Cloud, these are already running and ready to use. For self-hosted deployments, they're set up by the instance administrator. Authentication is handled via the `INFISICAL_RELAY_AUTH_SECRET` environment variable. +Relays support all standard Infisical authentication methods. Choose the authentication method that best fits your environment and set the corresponding flags when starting the relay. ```bash -# Organization relay with Universal Auth (customer-deployed) -infisical relay start --type=org --host=192.168.1.100 --name=my-org-relay --auth-method=universal-auth --client-id= --client-secret= - -# Instance relay (configured by instance admin) -INFISICAL_RELAY_AUTH_SECRET= infisical relay start --type=instance --host=10.0.1.50 --name=shared-relay +# Example with Universal Auth +infisical relay start --host=192.168.1.100 --name=my-relay --auth-method=universal-auth --client-id= --client-secret= ``` -### Authentication Methods +### Available Authentication Methods -The Infisical CLI supports multiple authentication methods for organization relays. Below are the available authentication methods, with their respective flags. +The Infisical CLI supports multiple authentication methods for relays. Below are the available authentication methods, with their respective flags. @@ -108,7 +90,7 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --auth-method=universal-auth --client-id= --client-secret= --type=org --host= --name= + infisical relay start --auth-method=universal-auth --client-id= --client-secret= --host= --name= ``` @@ -132,7 +114,7 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --auth-method=kubernetes --machine-identity-id= --type=org --host= --name= + infisical relay start --auth-method=kubernetes --machine-identity-id= --host= --name= ``` @@ -153,7 +135,7 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --auth-method=azure --machine-identity-id= --type=org --host= --name= + infisical relay start --auth-method=azure --machine-identity-id= --host= --name= ``` @@ -174,7 +156,7 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --auth-method=gcp-id-token --machine-identity-id= --type=org --host= --name= + infisical relay start --auth-method=gcp-id-token --machine-identity-id= --host= --name= ``` @@ -196,7 +178,7 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --auth-method=gcp-iam --machine-identity-id= --service-account-key-file-path= --type=org --host= --name= + infisical relay start --auth-method=gcp-iam --machine-identity-id= --service-account-key-file-path= --host= --name= ``` @@ -215,7 +197,7 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --auth-method=aws-iam --machine-identity-id= --type=org --host= --name= + infisical relay start --auth-method=aws-iam --machine-identity-id= --host= --name= ``` @@ -237,7 +219,7 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --auth-method=oidc-auth --machine-identity-id= --jwt= --type=org --host= --name= + infisical relay start --auth-method=oidc-auth --machine-identity-id= --jwt= --host= --name= ``` @@ -261,7 +243,7 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --auth-method=jwt-auth --jwt= --machine-identity-id= --type=org --host= --name= + infisical relay start --auth-method=jwt-auth --jwt= --machine-identity-id= --host= --name= ``` @@ -277,30 +259,132 @@ The Infisical CLI supports multiple authentication methods for organization rela ```bash - infisical relay start --token= --type=org --host= --name= + infisical relay start --token= --host= --name= ``` -### Deployment Considerations + -**When to use Instance Relays (`--type=instance`):** + + Manage systemd service for Infisical relay. This allows you to install and run the relay as a systemd service on Linux systems. + ### Requirements + - **Operating System**: Linux only (systemd is not supported on other operating systems) + - **Privileges**: Root/sudo privileges required for both install and uninstall operations + - **Systemd**: The system must be running systemd as the init system -- You want to get started quickly without setting up your own relay infrastructure -- You're using Infisical Cloud and want to leverage the existing relay infrastructure -- You're on a self-hosted instance where the admin has already set up shared relays -- You don't need custom geographic placement of relay servers -- You don't have specific compliance requirements that require dedicated infrastructure -- You want to minimize operational overhead by using shared infrastructure +```bash +infisical relay systemd +``` -**When to use Organization Relays (`--type=org`):** +### Subcommands -- You need lower latency by deploying relay servers closer to your resources -- You have security requirements that mandate running infrastructure in your own environment -- You have compliance requirements such as data sovereignty or air-gapped environments -- You need custom network policies or specific networking configurations -- You have high-scale performance requirements that shared infrastructure can't meet -- You want full control over your relay infrastructure and its configuration + + Install and enable systemd service for the relay. Must be run with sudo on Linux systems. + +```bash +sudo infisical relay systemd install --host= --name= --token= [flags] +``` + +#### Flags + + + The host (IP address or hostname) of the instance where the relay is deployed. This must be a static public IP or resolvable hostname that gateways can reach. + +```bash +# Example with IP address +sudo infisical relay systemd install --host=203.0.113.100 --name=my-relay --token= + +# Example with hostname +sudo infisical relay systemd install --host=relay.example.com --name=my-relay --token= +``` + + + + + The name of the relay. + +```bash +# Example +sudo infisical relay systemd install --name=my-relay --host=192.168.1.100 --token= +``` + + + + + Connect with Infisical using machine identity access token. + +```bash +# Example +sudo infisical relay systemd install --token= --host= --name= +``` + + + + + Domain of your self-hosted Infisical instance. Optional flag for specifying a custom domain. + +```bash +# Example +sudo infisical relay systemd install --domain=http://localhost:8080 --token= --host= --name= +``` + + + +#### Examples + +```bash +# Install relay with token authentication +sudo infisical relay systemd install --host=192.168.1.100 --name=my-relay --token= + +# Install with custom domain +sudo infisical relay systemd install --domain=http://localhost:8080 --token= --host= --name= +``` + +#### Post-installation + +After successful installation, the service will be enabled but not started. To start the service: + +```bash +sudo systemctl start infisical-relay +``` + +To check the service status: + +```bash +sudo systemctl status infisical-relay +``` + +To view service logs: + +```bash +sudo journalctl -u infisical-relay -f +``` + + + + + Uninstall and remove systemd service for the relay. Must be run with sudo on Linux systems. + +```bash +sudo infisical relay systemd uninstall +``` + +#### Examples + +```bash +# Uninstall the relay systemd service +sudo infisical relay systemd uninstall +``` + +#### What it does + +- Stops the `infisical-relay` systemd service if it's running +- Disables the service from starting on boot +- Removes the systemd service file +- Cleans up the service configuration + + diff --git a/docs/docs.json b/docs/docs.json index 285e11a60..3b7197da8 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -173,8 +173,9 @@ "group": "Gateway", "pages": [ "documentation/platform/gateways/overview", - "documentation/platform/gateways/gateway-security", - "documentation/platform/gateways/networking", + "documentation/platform/gateways/gateway-deployment", + "documentation/platform/gateways/relay-deployment", + "documentation/platform/gateways/security", { "group": "Gateway (Deprecated)", "pages": [ @@ -1009,28 +1010,55 @@ "api-reference/endpoints/organizations/delete-membership", "api-reference/endpoints/organizations/bulk-delete-memberships", "api-reference/endpoints/organizations/list-identity-memberships", - "api-reference/endpoints/organizations/workspaces" + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/organizations/projects" + ] + } ] }, { "group": "Projects", "pages": [ - "api-reference/endpoints/workspaces/get-workspace-by-slug", - "api-reference/endpoints/workspaces/create-workspace", - "api-reference/endpoints/workspaces/delete-workspace", - "api-reference/endpoints/workspaces/get-workspace", - "api-reference/endpoints/workspaces/update-workspace", - "api-reference/endpoints/workspaces/secret-snapshots" + "api-reference/endpoints/projects/get-project-by-slug", + "api-reference/endpoints/projects/create-project", + "api-reference/endpoints/projects/delete-project", + "api-reference/endpoints/projects/get-project", + "api-reference/endpoints/projects/list-projects", + "api-reference/endpoints/projects/update-project", + "api-reference/endpoints/projects/secret-snapshots", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/projects/get-project-by-slug", + "api-reference/endpoints/deprecated/projects/create-project", + "api-reference/endpoints/deprecated/projects/delete-project", + "api-reference/endpoints/deprecated/projects/get-project", + "api-reference/endpoints/deprecated/projects/update-project", + "api-reference/endpoints/deprecated/projects/secret-snapshots" + ] + } ] }, { "group": "Project Users", "pages": [ - "api-reference/endpoints/project-users/invite-member-to-workspace", - "api-reference/endpoints/project-users/remove-member-from-workspace", + "api-reference/endpoints/project-users/invite-member-to-project", + "api-reference/endpoints/project-users/remove-member-from-project", "api-reference/endpoints/project-users/memberships", "api-reference/endpoints/project-users/get-by-username", - "api-reference/endpoints/project-users/update-membership" + "api-reference/endpoints/project-users/update-membership", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/project-users/invite-member-to-project", + "api-reference/endpoints/deprecated/project-users/remove-member-from-project", + "api-reference/endpoints/deprecated/project-users/memberships", + "api-reference/endpoints/deprecated/project-users/get-by-username", + "api-reference/endpoints/deprecated/project-users/update-membership" + ] + } ] }, { @@ -1040,7 +1068,17 @@ "api-reference/endpoints/project-groups/delete", "api-reference/endpoints/project-groups/get-by-id", "api-reference/endpoints/project-groups/list", - "api-reference/endpoints/project-groups/update" + "api-reference/endpoints/project-groups/update", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/project-groups/create", + "api-reference/endpoints/deprecated/project-groups/delete", + "api-reference/endpoints/deprecated/project-groups/get-by-id", + "api-reference/endpoints/deprecated/project-groups/list", + "api-reference/endpoints/deprecated/project-groups/update" + ] + } ] }, { @@ -1050,7 +1088,17 @@ "api-reference/endpoints/project-identities/list-identity-memberships", "api-reference/endpoints/project-identities/get-by-id", "api-reference/endpoints/project-identities/update-identity-membership", - "api-reference/endpoints/project-identities/delete-identity-membership" + "api-reference/endpoints/project-identities/delete-identity-membership", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/project-identities/add-identity-membership", + "api-reference/endpoints/deprecated/project-identities/list-identity-memberships", + "api-reference/endpoints/deprecated/project-identities/get-by-id", + "api-reference/endpoints/deprecated/project-identities/update-identity-membership", + "api-reference/endpoints/deprecated/project-identities/delete-identity-membership" + ] + } ] }, { @@ -1060,7 +1108,17 @@ "api-reference/endpoints/project-roles/update", "api-reference/endpoints/project-roles/delete", "api-reference/endpoints/project-roles/get-by-slug", - "api-reference/endpoints/project-roles/list" + "api-reference/endpoints/project-roles/list", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/project-roles/create", + "api-reference/endpoints/deprecated/project-roles/update", + "api-reference/endpoints/deprecated/project-roles/delete", + "api-reference/endpoints/deprecated/project-roles/get-by-slug", + "api-reference/endpoints/deprecated/project-roles/list" + ] + } ] }, { @@ -1078,7 +1136,15 @@ "pages": [ "api-reference/endpoints/environments/create", "api-reference/endpoints/environments/update", - "api-reference/endpoints/environments/delete" + "api-reference/endpoints/environments/delete", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/environments/create", + "api-reference/endpoints/deprecated/environments/update", + "api-reference/endpoints/deprecated/environments/delete" + ] + } ] }, { @@ -1088,7 +1154,17 @@ "api-reference/endpoints/folders/get-by-id", "api-reference/endpoints/folders/create", "api-reference/endpoints/folders/update", - "api-reference/endpoints/folders/delete" + "api-reference/endpoints/folders/delete", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/folders/list", + "api-reference/endpoints/deprecated/folders/get-by-id", + "api-reference/endpoints/deprecated/folders/create", + "api-reference/endpoints/deprecated/folders/update", + "api-reference/endpoints/deprecated/folders/delete" + ] + } ] }, { @@ -1099,7 +1175,18 @@ "api-reference/endpoints/secret-tags/get-by-slug", "api-reference/endpoints/secret-tags/create", "api-reference/endpoints/secret-tags/update", - "api-reference/endpoints/secret-tags/delete" + "api-reference/endpoints/secret-tags/delete", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/secret-tags/list", + "api-reference/endpoints/deprecated/secret-tags/get-by-id", + "api-reference/endpoints/deprecated/secret-tags/get-by-slug", + "api-reference/endpoints/deprecated/secret-tags/create", + "api-reference/endpoints/deprecated/secret-tags/update", + "api-reference/endpoints/deprecated/secret-tags/delete" + ] + } ] }, { @@ -1113,8 +1200,21 @@ "api-reference/endpoints/secrets/create-many", "api-reference/endpoints/secrets/update-many", "api-reference/endpoints/secrets/delete-many", - "api-reference/endpoints/secrets/attach-tags", - "api-reference/endpoints/secrets/detach-tags" + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/secrets/list", + "api-reference/endpoints/deprecated/secrets/create", + "api-reference/endpoints/deprecated/secrets/read", + "api-reference/endpoints/deprecated/secrets/update", + "api-reference/endpoints/deprecated/secrets/delete", + "api-reference/endpoints/deprecated/secrets/create-many", + "api-reference/endpoints/deprecated/secrets/update-many", + "api-reference/endpoints/deprecated/secrets/delete-many", + "api-reference/endpoints/deprecated/secrets/attach-tags", + "api-reference/endpoints/deprecated/secrets/detach-tags" + ] + } ] }, { @@ -1144,7 +1244,16 @@ "api-reference/endpoints/secret-imports/list", "api-reference/endpoints/secret-imports/create", "api-reference/endpoints/secret-imports/update", - "api-reference/endpoints/secret-imports/delete" + "api-reference/endpoints/secret-imports/delete", + { + "group": "Legacy", + "pages": [ + "api-reference/endpoints/deprecated/secret-imports/list", + "api-reference/endpoints/deprecated/secret-imports/create", + "api-reference/endpoints/deprecated/secret-imports/update", + "api-reference/endpoints/deprecated/secret-imports/delete" + ] + } ] }, { diff --git a/docs/documentation/platform/audit-log-streams/audit-log-streams.mdx b/docs/documentation/platform/audit-log-streams/audit-log-streams.mdx index 50fa75e92..ad030ec26 100644 --- a/docs/documentation/platform/audit-log-streams/audit-log-streams.mdx +++ b/docs/documentation/platform/audit-log-streams/audit-log-streams.mdx @@ -45,6 +45,116 @@ Infisical Audit Log Streaming enables you to transmit your organization's audit ## Example Providers + + Infisical offers a dedicated **Azure** provider to stream your audit logs, enabling seamless integration with services like Microsoft Sentinel. + + + After setting up all Azure resources, it may take 10-20 minutes for logs to begin streaming. + + + + + Navigate to [Data Collection Endpoints](https://portal.azure.com/#view/HubsExtension/BrowseResource.ReactView/resourceType/microsoft.insights%2Fdatacollectionendpoints) and click **Create**. + + ![azure create dce](/images/platform/audit-log-streams/azure-create-dce.png) + + Configure your Data Collection Endpoint by providing an **Endpoint Name**, **Subscription**, and a **Resource group**. Then click **Review + Create**. + + ![azure configure dce](/images/platform/audit-log-streams/azure-configure-dce.png) + + After creation, it may take a few minutes for the Data Collection Endpoint to appear. Once visible, click on it and copy the **Logs Ingestion** URL. You will need this URL in later steps. + + ![azure dce url](/images/platform/audit-log-streams/azure-dce-url.png) + + + + If you already have a Log Analytics Workspace, you may skip this step. + + + Navigate to [Log Analytics Workspaces](https://portal.azure.com/#browse/Microsoft.OperationalInsights%2Fworkspaces) and click **Create**. + + ![azure create law](/images/platform/audit-log-streams/azure-create-law.png) + + Configure your Log Analytics Workspace by providing a **Subscription**, **Resource group**, and a **Name**. Then click **Review + Create**. + + ![azure configure law](/images/platform/audit-log-streams/azure-configure-law.png) + + Once the workspace is deployed, click **Go to resource** to access it. + + ![azure go to resource](/images/platform/audit-log-streams/azure-go-to-resource.png) + + + Within your Log Analytics Workspace, navigate to **Tables** and click **Create**. Select **New custom log (DCR-based)** from the dropdown. + + ![azure new table](/images/platform/audit-log-streams/azure-new-table.png) + + Configure the Custom Log Table: Provide a **Table name** (e.g., `InfisicalLogs`), select the **Data collection endpoint** created in Step 1, and create a new **Data collection rule** as illustrated in the image below. Then, click **Next**. + + ![azure configure table](/images/platform/audit-log-streams/azure-configure-table.png) + + On the **Schema and transformation** page, you'll be prompted to upload a **Log Sample**. Create a `.json` file with the following content and upload it: + + ```json + { + "id": "00000000-0000-0000-0000-000000000000", + "actor": "user", + "actorMetadata": { + "email": "user@example.com", + "userId": "00000000-0000-0000-0000-000000000000", + "username": "user@example.com" + }, + "ipAddress": "0.0.0.0", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36", + "userAgentType": "web", + "eventType": "get-secrets", + "eventMetadata": {}, + "projectName": "MyProject", + "orgId": "00000000-0000-0000-0000-000000000000", + "projectId": "00000000-0000-0000-0000-000000000000", + "TimeGenerated": "2025-01-01T00:00:00.000Z" + } + ``` + + Optionally, you can add **Transformations** to further destructure the data. For example, to extract actor email and userId: + + ``` + source + | extend + ActorEmail = tostring(actorMetadata.email), + ActorUserId = tostring(actorMetadata.userId) + ``` + + On the final step, click **Create**. + + + It may take a few minutes for your Custom Log Table to be created and appear under Tables. + + + + After creating your Data Collection Rule, you'll need its **Immutable ID**. + + Navigate to [Data collection rules](https://portal.azure.com/#view/HubsExtension/BrowseResource.ReactView/resourceType/microsoft.insights%2Fdatacollectionrules). Click on your newly created DCR and copy its **Immutable ID** for the next step. + + ![azure dcr](/images/platform/audit-log-streams/azure-dcr.png) + + + In Infisical, create a new audit log stream and select the **Azure** provider. Input the following details: + + - **Tenant ID**: Your Tenant ID + - **Client ID**: The Client ID of an App Registration + - **Client Secret**: The Client Secret of an App Registration + - **Data Collection Endpoint URL**: Obtained from Step 1 + - **Data Collection Rule Immutable ID**: Obtained from Step 4 + - **Custom Log Table Name**: Defined in Step 3 + + ![azure create als](/images/platform/audit-log-streams/azure-create-als.png) + + + The App Registration used for authentication must have the **Monitoring Metrics Publisher** role assigned on the **Data Collection Rule** created in Step 3. [See Microsoft Guide](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/tutorial-logs-ingestion-portal#assign-permissions-to-the-dcr). + + + + You can stream to Better Stack using a **Custom** log stream. diff --git a/docs/documentation/platform/auth-methods/email-password.mdx b/docs/documentation/platform/auth-methods/email-password.mdx index f5cb0e6f5..5a433a566 100644 --- a/docs/documentation/platform/auth-methods/email-password.mdx +++ b/docs/documentation/platform/auth-methods/email-password.mdx @@ -29,6 +29,9 @@ You can update your account email address: 1. Open the `Personal Settings` menu. 2. Navigate to the `Authentication` tab. 3. In the `Change Email` section, enter your new email address. + +If you don't currently have Email authentication enabled, it will be automatically activated when you change your email. You may disable it in the authentication settings after logging in with your new email if needed. + ![change email section](../../../images/auth-methods/personal-settings-authentication-change-email-password.png) 4. Click `Send Verification Code` to receive an 6-digit verification code at your new email address. 5. Check your new email inbox and enter the verification code. diff --git a/docs/documentation/platform/dynamic-secrets/aws-iam.mdx b/docs/documentation/platform/dynamic-secrets/aws-iam.mdx index 28b177c5f..2d500a83a 100644 --- a/docs/documentation/platform/dynamic-secrets/aws-iam.mdx +++ b/docs/documentation/platform/dynamic-secrets/aws-iam.mdx @@ -3,49 +3,93 @@ title: "AWS IAM" description: "Learn how to dynamically generate AWS IAM Users." --- -The Infisical AWS IAM dynamic secret allows you to generate AWS IAM Users on demand based on a configured AWS policy. Infisical supports several authentication methods to connect to your AWS account, including assuming an IAM Role, using IAM Roles for Service Accounts (IRSA) on EKS, or static Access Keys. +The Infisical AWS IAM dynamic secret allows you to generate AWS IAM Users and temporary credentials on demand based on a configured AWS policy. Infisical supports several authentication methods to connect to your AWS account, including assuming an IAM Role, using IAM Roles for Service Accounts (IRSA) on EKS, or static Access Keys. + +## AWS STS Duration Limits + +When using **Temporary Credentials**, AWS STS has specific maximum duration limits: + +- **AssumeRole operations**: Maximum 1 hour (3600 seconds) when using temporary credentials +- **GetSessionToken operations** (Access Key & IRSA): Maximum 12 hours (43200 seconds) + + +**Automatic Duration Adjustment**: If you specify a TTL that exceeds these AWS limits, Infisical will automatically use the maximum allowed duration instead of failing the operation. This ensures your dynamic secrets work reliably within AWS constraints. + ## Prerequisite -Infisical needs an AWS IAM principal (a user or a role) with the required permissions to create and manage other IAM users. This principal will be responsible for the lifecycle of the dynamically generated users. +Infisical needs an AWS IAM principal (a user or a role) with the required permissions to create and manage other IAM users and temporary credentials. This principal will be responsible for the lifecycle of the dynamically generated users and temporary credentials. -```json -{ - "Version": "2012-10-17", - "Statement": [ + + + Required permissions for creating temporary IAM users: + + ```json { - "Effect": "Allow", - "Action": [ - "iam:AttachUserPolicy", - "iam:CreateAccessKey", - "iam:CreateUser", - "iam:DeleteAccessKey", - "iam:DeleteUser", - "iam:DeleteUserPolicy", - "iam:DetachUserPolicy", - "iam:GetUser", - "iam:ListAccessKeys", - "iam:ListAttachedUserPolicies", - "iam:ListGroupsForUser", - "iam:ListUserPolicies", - "iam:PutUserPolicy", - "iam:AddUserToGroup", - "iam:RemoveUserFromGroup", - "iam:TagUser" - ], - "Resource": ["*"] + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "iam:AttachUserPolicy", + "iam:CreateAccessKey", + "iam:CreateUser", + "iam:DeleteAccessKey", + "iam:DeleteUser", + "iam:DeleteUserPolicy", + "iam:DetachUserPolicy", + "iam:GetUser", + "iam:ListAccessKeys", + "iam:ListAttachedUserPolicies", + "iam:ListGroupsForUser", + "iam:ListUserPolicies", + "iam:PutUserPolicy", + "iam:AddUserToGroup", + "iam:RemoveUserFromGroup", + "iam:TagUser" + ], + "Resource": ["*"] + } + ] } - ] -} -``` + ``` -To minimize managing user access you can attach a resource in format + To minimize managing user access you can attach a resource in format -> arn:aws:iam::\:user/\ + > arn:aws:iam::\:user/\ -Replace **\** with your AWS account id and **\** with a path to minimize managing user access. + Replace **\** with your AWS account id and **\** with a path to minimize managing user access. + + + + Required permissions for Access Key and Assume Role methods: + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "sts:GetSessionToken", + "sts:AssumeRole" + ], + "Resource": ["*"] + } + ] + } + ``` + + + To minimize managing user access you can attach a resource in format + + > arn:aws:iam::\:user/\ + + Replace **\** with your AWS account id and **\** with a path to minimize managing user access. + + @@ -170,43 +214,76 @@ Replace **\** with your AWS account id and **\** w Select *Assume Role* method. - - The ARN of the AWS Role to assume. + + Choose the credential generation approach: + - **IAM User (Default)**: Creates new temporary IAM users in your AWS account + - **Temporary Credentials**: Generates temporary credentials from your role connection - - [IAM AWS Path](https://aws.amazon.com/blogs/security/optimize-aws-administration-with-iam-paths/) to scope created IAM User resource access. + + The ARN of the AWS Role to assume. The AWS data center region. - - The IAM Policy ARN of the [AWS Permissions Boundary](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) to attach to IAM users created in the role. - + + + + [IAM AWS Path](https://aws.amazon.com/blogs/security/optimize-aws-administration-with-iam-paths/) to scope created IAM User resource access. + - - The AWS IAM groups that should be assigned to the created users. Multiple values can be provided by separating them with commas - + + The IAM Policy ARN of the [AWS Permissions Boundary](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) to attach to IAM users created in the role. + - - The AWS IAM managed policies that should be attached to the created users. Multiple values can be provided by separating them with commas - + + The AWS IAM groups that should be assigned to the created users. Multiple values can be provided by separating them with commas. + - - The AWS IAM inline policy that should be attached to the created users. - Multiple values can be provided by separating them with commas - + + The AWS IAM managed policies that should be attached to the created users. Multiple values can be provided by separating them with commas. + - - Specifies a template for generating usernames. This field allows customization of how usernames are automatically created. + + The AWS IAM inline policy that should be attached to the created users. Multiple values can be provided by separating them with commas. + - Allowed template variables are + + Specifies a template for generating usernames. This field allows customization of how usernames are automatically created. - - `{{randomUsername}}`: Random username string - - `{{unixTimestamp}}`: Current Unix timestamp - + Allowed template variables are: + - `{{randomUsername}}`: Random username string + - `{{unixTimestamp}}`: Current Unix timestamp + - `{{identity.name}}`: Name of the identity that is generating the secret + - `{{random N}}`: Random string of N characters + + Allowed template functions are: + - `truncate`: Truncates a string to a specified length + - `replace`: Replaces a substring with another value + + + + Tags to be added to the created IAM User resource. + + + + + When **Credential Type** is set to **Temporary Credentials**: + + + No additional configuration parameters are required. The generated credentials will: + - Inherit the permissions of the assumed role + - Include an AWS Session Token + - Be valid for the duration specified in Default TTL + + + + **Duration Limit**: AssumeRole temporary credentials are limited to 1 hour maximum by AWS. TTL values exceeding this limit will be automatically adjusted to 1 hour. + + + @@ -232,6 +309,18 @@ Replace **\** with your AWS account id and **\** w Once you click the `Submit` button, a new secret lease will be generated and the credentials for it will be shown to you. + **Credentials format depends on your chosen credential type:** + + **IAM User credential type:** + - AWS Username + - AWS Access Key ID + - AWS Secret Access Key + + **Temporary Credentials credential type:** + - AWS Access Key ID + - AWS Secret Access Key + - AWS Session Token + ![Provision Lease](/images/platform/dynamic-secrets/lease-values-aws-iam.png) @@ -342,36 +431,75 @@ Replace **\** with your AWS account id and **\** w Select *IRSA* method. + + Choose the credential generation approach: + - **IAM User**: Creates new temporary IAM users in your AWS account + - **Temporary Credentials**: Generates temporary credentials from your IRSA role connection + The ARN of the AWS IAM Role for the service account to assume. - - [IAM AWS Path](https://aws.amazon.com/blogs/security/optimize-aws-administration-with-iam-paths/) to scope created IAM User resource access. - + The AWS data center region. - - The IAM Policy ARN of the [AWS Permissions Boundary](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) to attach to IAM users created in the role. - - - The AWS IAM groups that should be assigned to the created users. Multiple values can be provided by separating them with commas - - - The AWS IAM managed policies that should be attached to the created users. Multiple values can be provided by separating them with commas - - - The AWS IAM inline policy that should be attached to the created users. - Multiple values can be provided by separating them with commas - - - Specifies a template for generating usernames. This field allows customization of how usernames are automatically created. - Allowed template variables are + + + + [IAM AWS Path](https://aws.amazon.com/blogs/security/optimize-aws-administration-with-iam-paths/) to scope created IAM User resource access. + - - `{{randomUsername}}`: Random username string - - `{{unixTimestamp}}`: Current Unix timestamp - + + The IAM Policy ARN of the [AWS Permissions Boundary](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) to attach to IAM users created in the role. + + + + The AWS IAM groups that should be assigned to the created users. Multiple values can be provided by separating them with commas. + + + + The AWS IAM managed policies that should be attached to the created users. Multiple values can be provided by separating them with commas. + + + + The AWS IAM inline policy that should be attached to the created users. Multiple values can be provided by separating them with commas. + + + + Specifies a template for generating usernames. This field allows customization of how usernames are automatically created. + + Allowed template variables are: + - `{{randomUsername}}`: Random username string + - `{{unixTimestamp}}`: Current Unix timestamp + - `{{identity.name}}`: Name of the identity that is generating the secret + - `{{random N}}`: Random string of N characters + + Allowed template functions are: + - `truncate`: Truncates a string to a specified length + - `replace`: Replaces a substring with another value + + + + Tags to be added to the created IAM User resource. + + + + + When **Credential Type** is set to **Temporary Credentials**: + + + No additional configuration parameters are required. The generated credentials will: + - Inherit the permissions of the assumed IRSA role + - Include an AWS Session Token + - Be valid for the duration specified in Default TTL + + + + **Duration Limit**: IRSA temporary credentials support up to 12 hours maximum via GetSessionToken. TTL values exceeding this limit will be automatically adjusted. + + + After submitting the form, you will see a dynamic secret created in the dashboard. @@ -429,6 +557,12 @@ Replace **\** with your AWS account id and **\** w Select *Access Key* method. + + Choose the credential generation approach: + - **IAM User**: Creates new temporary IAM users in your AWS account + - **Temporary Credentials**: Generates temporary credentials from your access key connection + + The managing AWS IAM User Access Key @@ -437,43 +571,66 @@ Replace **\** with your AWS account id and **\** w The managing AWS IAM User Secret Key - - [IAM AWS Path](https://aws.amazon.com/blogs/security/optimize-aws-administration-with-iam-paths/) to scope created IAM User resource access. - - The AWS data center region. - - The IAM Policy ARN of the [AWS Permissions Boundary](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) to attach to IAM users created in the role. - + + + + [IAM AWS Path](https://aws.amazon.com/blogs/security/optimize-aws-administration-with-iam-paths/) to scope created IAM User resource access. + - - The AWS IAM groups that should be assigned to the created users. Multiple values can be provided by separating them with commas - + + The IAM Policy ARN of the [AWS Permissions Boundary](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) to attach to IAM users created in the role. + - - The AWS IAM managed policies that should be attached to the created users. Multiple values can be provided by separating them with commas - + + The AWS IAM groups that should be assigned to the created users. Multiple values can be provided by separating them with commas. + - - The AWS IAM inline policy that should be attached to the created users. - Multiple values can be provided by separating them with commas - + + The AWS IAM managed policies that should be attached to the created users. Multiple values can be provided by separating them with commas. + - - Specifies a template for generating usernames. This field allows customization of how usernames are automatically created. + + The AWS IAM inline policy that should be attached to the created users. Multiple values can be provided by separating them with commas. + - Allowed template variables are + + Specifies a template for generating usernames. This field allows customization of how usernames are automatically created. - - `{{randomUsername}}`: Random username string - - `{{unixTimestamp}}`: Current Unix timestamp - + Allowed template variables are: + - `{{randomUsername}}`: Random username string + - `{{unixTimestamp}}`: Current Unix timestamp + - `{{identity.name}}`: Name of the identity that is generating the secret + - `{{random N}}`: Random string of N characters - - Tags to be added to the created IAM User resource. - + Allowed template functions are: + - `truncate`: Truncates a string to a specified length + - `replace`: Replaces a substring with another value + + + + Tags to be added to the created IAM User resource. + + + + + When **Credential Type** is set to **Temporary Credentials**: + + + No additional configuration parameters are required. The generated credentials will: + - Inherit the permissions of your access key connection + - Include an AWS Session Token + - Be valid for the duration specified in Default TTL + + + + **Duration Limit**: Access Key temporary credentials support up to 12 hours maximum via GetSessionToken. TTL values exceeding this limit will be automatically adjusted. + + + @@ -500,6 +657,18 @@ Replace **\** with your AWS account id and **\** w Once you click the `Submit` button, a new secret lease will be generated and the credentials for it will be shown to you. + **Credentials format depends on your chosen credential type:** + + **IAM User credential type:** + - AWS Username + - AWS Access Key ID + - AWS Secret Access Key + + **Temporary Credentials credential type:** + - AWS Access Key ID + - AWS Secret Access Key + - AWS Session Token + ![Provision Lease](/images/platform/dynamic-secrets/lease-values-aws-iam.png) diff --git a/docs/documentation/platform/gateways/gateway-deployment.mdx b/docs/documentation/platform/gateways/gateway-deployment.mdx new file mode 100644 index 000000000..40b98965a --- /dev/null +++ b/docs/documentation/platform/gateways/gateway-deployment.mdx @@ -0,0 +1,265 @@ +--- +title: "Gateway Deployment" +description: "Complete guide to deploying Infisical Gateways including network configuration and firewall requirements" +--- + +Infisical Gateways enables secure communication between your private resources and the Infisical platform without exposing inbound ports in your network. +This guide covers everything you need to deploy and configure Infisical Gateways. + +## Deployment Steps + +To successfully deploy an Infisical Gateway for use, follow these steps in order. + + + + Create a machine identity with the correct permissions to create and manage gateways. This identity is used by the gateway to authenticate with Infisical and should be provisioned in advance. + The gateway supports several [machine identity auth methods](/documentation/platform/identities/machine-identities), as listed below. Choose the one that best fits your environment and set the corresponding environment variables when deploying the gateway. + + + + Simple and secure authentication using client ID and client secret. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=universal-auth` + - `INFISICAL_UNIVERSAL_AUTH_CLIENT_ID=` + - `INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET=` + + + + Direct authentication using a machine identity access token. + + **Environment Variables:** + - `INFISICAL_TOKEN=` + + + + Authentication using Kubernetes service account tokens. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=kubernetes` + - `INFISICAL_MACHINE_IDENTITY_ID=` + + + + Authentication using AWS IAM roles. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=aws-iam` + - `INFISICAL_MACHINE_IDENTITY_ID=` + + + + Authentication using GCP identity tokens. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=gcp-id-token` + - `INFISICAL_MACHINE_IDENTITY_ID=` + + + + Authentication using GCP service account keys. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=gcp-iam` + - `INFISICAL_MACHINE_IDENTITY_ID=` + - `INFISICAL_GCP_SERVICE_ACCOUNT_KEY_FILE_PATH=` + + + + Authentication using Azure managed identity. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=azure` + - `INFISICAL_MACHINE_IDENTITY_ID=` + + + + Authentication using OIDC identity tokens. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=oidc-auth` + - `INFISICAL_MACHINE_IDENTITY_ID=` + - `INFISICAL_JWT=` + + + + Authentication using JWT tokens. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=jwt-auth` + - `INFISICAL_MACHINE_IDENTITY_ID=` + - `INFISICAL_JWT=` + + + + + Ensure a relay server is running and accessible before you deploy any gateways. You have two options: + - **Managed relay (Infisical Cloud, US/EU only):** Managed relays are only available for Infisical Cloud instances in the US and EU regions. If you are using Infisical Cloud in these regions, you can use the provided managed relay. + - **Self-hosted relay:** For all other cases, including all self-hosted and dedicated enterprise instances of Infisical, you must deploy your own relay server. You can also choose to deploy your own relay server when using Infisical Cloud if you require reduced geographic proximity to your target resources for lower latency or to reduce network congestion. For setup instructions, see the Relay Deployment Guide. + + + Make sure the Infisical CLI is installed on the machine or environment where you plan to deploy the gateway. The CLI is required for gateway installation and management. + + See the [CLI Installation Guide](/cli/overview) for instructions. + + + Ensure your network and firewall settings allow the gateway to connect to all required services. All connections are outbound only; no inbound ports need to be opened. + + | Protocol | Destination | Port | Purpose | + | -------- | ------------------------------------ | ---- | ------------------------------------------ | + | TCP | Relay Server IP/Hostname | 2222 | SSH reverse tunnel establishment | + | TCP | Infisical instance host (US/EU, other) | 443 | API communication and certificate requests | + + For managed relays, allow outbound traffic to the provided relay server IP/hostname. For self-hosted relays, allow outbound traffic to your own relay server address. + + If you are in a corporate environment with strict egress filtering, ensure outbound TCP 2222 to relay servers and outbound HTTPS 443 to Infisical API endpoints are allowed. + + + The Infisical CLI is used to install and start the gateway in your chosen environment. The CLI provides commands for both production and development scenarios, and supports a variety of options/flags to configure your deployment. + + To view all available flags and equivalent environment variables for gateway deployment, see the [Gateway CLI Command Reference](/cli/commands/gateway). + + + For production deployments on Linux servers, install the Gateway as a systemd service so that it runs securely in the background and automatically restarts on failure or system reboot: + ```bash + sudo infisical gateway systemd install --token --domain --name --relay + sudo systemctl start infisical-gateway + ``` + + + + + The systemd install command requires a Linux operating system with root/sudo + privileges. + + + + + For production deployments on Kubernetes clusters, install the Gateway using the Infisical Helm chart: + + #### Install the latest Helm Chart repository + + ```bash + helm repo add infisical-helm-charts 'https://dl.cloudsmith.io/public/infisical/helm-charts/helm/charts/' + helm repo update + ``` + + #### Create a Kubernetes Secret + + The gateway supports all identity authentication methods through environment variables: + + ```bash + kubectl create secret generic infisical-gateway-environment \ + --from-literal=INFISICAL_AUTH_METHOD=universal-auth \ + --from-literal=INFISICAL_UNIVERSAL_AUTH_CLIENT_ID= \ + --from-literal=INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET= \ + --from-literal=INFISICAL_RELAY_NAME= \ + --from-literal=INFISICAL_GATEWAY_NAME= + ``` + + #### Install the Gateway + + ```bash + helm install infisical-gateway infisical-helm-charts/infisical-gateway + ``` + + + + For development or testing environments: + + ```bash + infisical gateway start --token --relay= --name= + ``` + + + + + + After deployment, verify your gateway is working: + + 1. **Check logs** for "Gateway started successfully" message indicating the gateway is running and connected to the relay + + 2. **Verify registration** in the Infisical by visiting the Gateways section of your organization. The new gateway should appear with a recent heartbeat timestamp. + + 3. **Test connectivity** by creating a resource in Infisical that uses the gateway to access a private service. Verify the resource can successfully connect through the gateway. + + + + + + +## Frequently Asked Questions + +No inbound ports need to be opened for gateways. The gateway only makes outbound connections: + +- **Outbound SSH** to relay servers on port 2222 +- **Outbound HTTPS** to Infisical API endpoints on port 443 +- **SSH reverse tunnels** handle all communication - no return traffic configuration needed + +This design maintains security by avoiding the need for inbound firewall rules that could expose your network to external threats. + + + + +Test relay connectivity and outbound API access from the gateway: + +1. Test SSH port to relay: + ```bash + nc -zv 2222 + ``` +2. Test outbound API access (replace with your Infisical domain if different): + ```bash + curl -I https://app.infisical.com + ``` + + + +If the gateway cannot connect to the relay: + +1. Verify the relay server is running and accessible +2. Check firewall rules allow outbound connections on port 2222 +3. Confirm the relay name matches exactly +4. Test SSH port to relay: + ```bash + nc -zv 2222 + ``` + + + +If you encounter authentication failures: + +1. Verify machine identity credentials are correct +2. Check token expiration and renewal +3. Ensure authentication method is properly configured + + + +Check gateway logs for detailed error information: + +- **systemd service:** + ```bash + sudo journalctl -u infisical-gateway -f + ``` +- **Kubernetes:** + ```bash + kubectl logs deployment/infisical-gateway + ``` +- **Local installation:** Logs appear in the terminal where you started the gateway + + + +For systemd-based installations, the gateway's configuration file is stored at `/etc/infisical/gateway.conf`. You may reference or inspect this file for troubleshooting advanced configuration issues. + + + +The gateway is designed to handle network interruptions gracefully: + +- **Automatic reconnection**: The gateway will automatically attempt to reconnect to relay servers if the SSH connection is lost +- **Connection retry logic**: Built-in retry mechanisms handle temporary network outages without manual intervention +- **Persistent SSH tunnels**: SSH connections are automatically re-established when connectivity is restored +- **Certificate rotation**: The gateway handles certificate renewal automatically during reconnection +- **Graceful degradation**: The gateway logs connection issues and continues attempting to restore connectivity + +No manual intervention is typically required during network interruptions. + + diff --git a/docs/documentation/platform/gateways/networking.mdx b/docs/documentation/platform/gateways/networking.mdx deleted file mode 100644 index 2b068a535..000000000 --- a/docs/documentation/platform/gateways/networking.mdx +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: "Networking" -description: "Network configuration and firewall requirements for Infisical Gateway" ---- - -The Infisical Gateway requires outbound network connectivity to establish secure SSH reverse tunnels with relay servers. -This page outlines the required ports, protocols, and firewall configurations needed for optimal gateway usage. - -## Network Architecture - -The gateway uses SSH reverse tunnels to establish secure connections with end-to-end encryption: - -1. **Gateway** connects outbound to **Relay Servers** using SSH over TCP -2. **Infisical platform** establishes mTLS connections with gateways for application traffic -3. **Relay Servers** route the doubly-encrypted traffic (mTLS payload within SSH tunnels) between the platform and gateways -4. **Double encryption** ensures relay servers cannot access application data - only the platform and gateway can decrypt traffic - -## Required Network Connectivity - -### Outbound Connections (Required) - -The gateway requires the following outbound connectivity: - -| Protocol | Destination | Ports | Purpose | -| -------- | ------------------------------------ | ----- | ------------------------------------------ | -| TCP | Relay Servers | 2222 | SSH reverse tunnel establishment | -| TCP | app.infisical.com / eu.infisical.com | 443 | API communication and certificate requests | - -### Relay Server Connectivity - -**For Instance Relays (Infisical Cloud):** Your firewall must allow outbound connectivity to Infisical-managed relay servers. - -**For Organization Relays:** Your firewall must allow outbound connectivity to your own relay server IP addresses or hostnames. - -**For Self-hosted Instance Relays:** Your firewall must allow outbound connectivity to relay servers configured by your instance administrator. - - - - Infisical provides multiple managed relay servers with static IP addresses. - You can whitelist these IPs ahead of time based on which relay server you - choose to connect to. **Firewall requirements:** Allow outbound TCP - connections to the desired relay server IP on port 2222. - - - You control the relay server IP addresses or hostnames when deploying your - own organization relays. **Firewall requirements:** Allow outbound TCP - connections to your relay server IP or hostname on port 2222. For example, - if your relay is at `203.0.113.100` or `relay.example.com`, allow TCP to - `203.0.113.100:2222` or `relay.example.com:2222`. - - - Contact your instance administrator for the relay server IP addresses or - hostnames configured for your deployment. **Firewall requirements:** Allow - outbound TCP connections to instance relay servers on port 2222. - - - -## Protocol Details - -### SSH over TCP - -The gateway uses SSH reverse tunnels for primary communication: - -- **Port 2222**: SSH connection to relay servers -- **Built-in features**: Automatic reconnection, certificate-based authentication, encrypted tunneling -- **Encryption**: SSH with certificate-based authentication and key exchange - -## Firewall Configuration for SSH - -The gateway uses standard SSH over TCP, making firewall configuration straightforward. - -### TCP Connection Handling - -SSH connections over TCP are stateful and handled seamlessly by all modern firewalls: - -- **Established connections** are automatically tracked -- **Return traffic** is allowed for established outbound connections -- **No special configuration** needed for connection tracking -- **Standard SSH protocol** that enterprise firewalls handle well - -### Simplified Firewall Rules - -Since SSH uses TCP, you only need simple outbound rules: - -1. **Allow outbound TCP** to relay servers (IP addresses or hostnames) on port 2222 -2. **Allow outbound HTTPS** to Infisical API endpoints on port 443 -3. **No inbound rules required** - all connections are outbound only - -## Common Network Scenarios - -### Corporate Firewalls - -For corporate environments with strict egress filtering: - -1. **Allow outbound TCP** to relay servers (IP addresses or hostnames) on port 2222 -2. **Allow outbound HTTPS** to the Infisical API server on port 443 -3. **No inbound rules required** - all connections are outbound only -4. **Standard TCP rules** - simple and straightforward configuration - -### Cloud Environments (AWS/GCP/Azure) - -Configure security groups to allow: - -- **Outbound TCP** to relay servers (IP addresses or hostnames) on port 2222 -- **Outbound HTTPS** to app.infisical.com/eu.infisical.com on port 443 -- **No inbound rules required** - SSH reverse tunnels are outbound only - -## Frequently Asked Questions - - -The gateway is designed to handle network interruptions gracefully: - -- **Automatic reconnection**: The gateway will automatically attempt to reconnect to relay servers if the SSH connection is lost -- **Connection retry logic**: Built-in retry mechanisms handle temporary network outages without manual intervention -- **Persistent SSH tunnels**: SSH connections are automatically re-established when connectivity is restored -- **Certificate rotation**: The gateway handles certificate renewal automatically during reconnection -- **Graceful degradation**: The gateway logs connection issues and continues attempting to restore connectivity - -No manual intervention is typically required during network interruptions. - - - - -SSH over TCP provides several advantages for enterprise gateway communication: - -- **Firewall-friendly**: TCP is stateful and handled seamlessly by all enterprise firewalls -- **Standard protocol**: SSH is a well-established protocol that network teams are familiar with -- **Certificate-based security**: Uses SSH certificates for strong authentication without shared secrets -- **Automatic tunneling**: SSH reverse tunnels handle all the complexity of secure communication -- **Enterprise compatibility**: Works reliably across all enterprise network configurations - -TCP's reliability and firewall compatibility make it ideal for enterprise environments where network policies are strictly managed. - - - - -No inbound ports need to be opened. The gateway only makes outbound connections: - -- **Outbound SSH** to relay servers on port 2222 -- **Outbound HTTPS** to Infisical API endpoints on port 443 -- **SSH reverse tunnels** handle all communication - no return traffic configuration needed - -This design maintains security by avoiding the need for inbound firewall rules that could expose your network to external threats. - - - - -If your firewall has strict outbound restrictions: - -1. **Work with your network team** to allow outbound TCP connections on port 2222 to relay servers (IP addresses or hostnames) -2. **Allow standard SSH traffic** - most enterprises already have SSH policies in place -3. **Consider network policy exceptions** for the gateway host if needed -4. **Monitor firewall logs** to identify which specific rules are blocking traffic - - - - -The gateway connects to **one relay server**: - -- **Single SSH connection**: Each gateway establishes one SSH reverse tunnel to its assigned relay server -- **Named relay assignment**: Gateways connect to the specific relay server specified by `--relay` -- **Automatic reconnection**: If the relay connection is lost, the gateway automatically reconnects to the same relay -- **Certificate-based authentication**: Each connection uses SSH certificates issued by Infisical for secure authentication - - - -No, relay servers cannot decrypt any traffic passing through them due to end-to-end encryption: - -- **Client-to-Gateway mTLS (via TLS-pinned tunnel)**: Clients connect via a proxy that establishes a TLS-pinned tunnel to the gateway; mTLS between the client and gateway is negotiated inside this tunnel, encrypting all application traffic -- **SSH tunnel encryption**: The mTLS-encrypted traffic is then transmitted through SSH reverse tunnels to relay servers -- **Double encryption**: Traffic is encrypted twice - once by client mTLS and again by SSH tunnels -- **Relay only routes traffic**: The relay server only routes the doubly-encrypted traffic without access to either encryption layer -- **No data storage**: Relay servers do not store any traffic or sensitive information -- **Certificate isolation**: Each connection uses unique certificates, ensuring complete tenant isolation - -The relay infrastructure is designed as a secure routing mechanism where only the client and gateway can decrypt the actual application traffic. - - diff --git a/docs/documentation/platform/gateways/overview.mdx b/docs/documentation/platform/gateways/overview.mdx index b8ea0102a..c04f2f7d3 100644 --- a/docs/documentation/platform/gateways/overview.mdx +++ b/docs/documentation/platform/gateways/overview.mdx @@ -1,19 +1,14 @@ --- -title: "Gateway" +title: "Gateway Overview" sidebarTitle: "Overview" description: "How to access private network resources from Infisical" --- ![Architecture Overview](../../../images/platform/gateways/gateway-highlevel-diagram.png) -The Infisical Gateway provides secure access to private resources within your network without needing direct inbound connections to your environment. This method keeps your resources fully protected from external access while enabling Infisical to securely interact with resources like databases. - -**Architecture Components:** - -- **Gateway**: Lightweight agent deployed within your VPCs that provides access to private resources -- **Relay**: Infrastructure that routes encrypted traffic (instance-wide or organization-specific) - -Common use cases include generating dynamic credentials or rotating credentials for private databases. +The Infisical Gateway provides secure access to private resources within your network without needing direct inbound connections to your environment. +This is particularly useful when Infisical isn't hosted within the same network as the resources it needs to reach. +This method keeps your resources fully protected from external access while enabling Infisical to securely interact with resources like databases. Gateway is a paid feature available under the Enterprise Tier for Infisical @@ -22,428 +17,62 @@ Common use cases include generating dynamic credentials or rotating credentials license. +## Core Components + +The Gateway system consists of two primary components working together to enable secure network access: + + + + A Gateway is a lightweight service that you deploy within your own network infrastructure to provide secure access to your private resources. Think of it as a secure bridge between Infisical and your internal systems. + + Gateways must be deployed within the same network where your target resources are located, with direct network connectivity to the private resources you want Infisical to access. + For different networks, regions, or isolated environments, you'll need to deploy separate gateways. + + **Core Functions:** + - **Network Placement**: Deployed within your VPCs, data centers, or on-premises infrastructure where your private resources live + - **Connection Model**: Only makes outbound connections to Infisical's relay servers, so no inbound firewall rules are needed + - **Security Method**: Uses SSH reverse tunnels with certificate-based authentication for maximum security + - **Resource Access**: Acts as a proxy to connect Infisical to your private databases, APIs, and other services + + + + A Relay Server is the routing infrastructure that enables secure communication between the Infisical platform and your deployed gateways. It acts as an intermediary that never sees your actual data. + + **Core Functions:** + - **Traffic Routing**: Routes encrypted traffic between the Infisical platform and your gateways without storing or inspecting the data + - **Network Isolation**: Enables secure communication without requiring direct network connections between Infisical and your private infrastructure + - **Authentication Management**: Validates SSH certificates and manages secure routing between authenticated gateways + + **Deployment Options:** + To reduce operational overhead, Infisical Cloud (US/EU) provides managed relay infrastructure, though organizations can also deploy their own relays for reduced latency. + - **Infisical Managed**: Use pre-deployed relays in select regions, shared across all Infisical Cloud organizations. Each organization traffic is isolated and encrypted. + - **Self-Deployed**: Deploy your own dedicated relay servers geographically close to your infrastructure for reduced latency. + + + ## How It Works The Gateway system uses SSH reverse tunnels for secure, firewall-friendly connectivity: 1. **Gateway Registration**: The gateway establishes an outbound SSH reverse tunnel to a relay server using SSH certificates issued by Infisical -2. **Relay Routing**: The relay server routes encrypted traffic between the Infisical platform and gateways -3. **Resource Access**: The Infisical platform connects to your private resources through the established gateway connections - -**Key Benefits:** - -- **No inbound firewall rules needed** - all connections are outbound from your network -- **Firewall-friendly** - uses standard SSH over TCP -- **Certificate-based authentication** provides enhanced security -- **Automatic reconnection** if connections are lost - -## Deployment - -The Infisical Gateway is integrated into the Infisical CLI under the `gateway` command, making it simple to deploy and manage. -You can install the Gateway in all the same ways you install the Infisical CLI—whether via npm, Docker, or a binary. -For detailed installation instructions, refer to the Infisical [CLI Installation instructions](/cli/overview). - -**Prerequisites:** - -1. **Relay Server**: Before deploying gateways, you need a running relay server: - - **Infisical Cloud**: Instance relays are already available - no setup needed - - **Self-hosted**: Instance admin must set up shared instance relays, or organizations can deploy their own -2. **Machine Identity**: Configure a machine identity with appropriate permissions to create and manage gateways - -Once authenticated, the Gateway establishes an SSH reverse tunnel to the specified relay server, allowing secure access to your private resources. - -### Get started - - - - 1. Navigate to **Organization Access Control** in your Infisical dashboard. - 2. Create a dedicated machine identity for your Gateway. - 3. **Best Practice:** Assign a unique identity to each Gateway for better security and management. - ![Create Gateway Identity](../../../images/platform/gateways/create-identity-for-gateway.png) - - - - You'll need to choose an authentication method to initiate communication with Infisical. View the available machine identity authentication methods [here](/documentation/platform/identities/machine-identities). - - - - You have two options for relay infrastructure: - - - - **Infisical Cloud:** Instance relays are already running and available - **no setup required**. You can immediately proceed to deploy gateways using these shared relays. - - **Self-hosted:** If your instance admin has set up shared instance relays, you can use them directly. If not, the instance admin can set them up: - ```bash - # Instance admin sets up shared relay (one-time setup) - export INFISICAL_RELAY_AUTH_SECRET= - infisical relay start --type=instance --ip= --name= - ``` - - - **Available for all users:** Deploy your own dedicated relay infrastructure for enhanced control: - ```bash - # Deploy organization-specific relay - infisical relay start --type=org --ip= --name= --auth-method=universal-auth --client-id= --client-secret= - ``` - - **When to choose this:** - - You need lower latency (deploy closer to your resources) - - Enhanced security requirements - - Compliance needs (data sovereignty, air-gapped environments) - - Custom network policies - - - - - - Use the Infisical CLI to deploy the Gateway. You can run it directly or install it as a systemd service for production: - - - - For production deployments on Linux, install the Gateway as a systemd service: - - - **Gateway v2:** The `infisical gateway systemd install` command deploys the new Gateway v2 component. - - If you are migrating from Gateway v1 (legacy `infisical gateway install` command), this is not in-place. Gateway v2 provisions new gateway instances with new gateway IDs. Update any resources that reference a gateway ID (for example: dynamic secret configs, app connections, or other gateway-bound resources) to use the new Gateway v2 gateway ID. - - - ```bash - sudo infisical gateway systemd install --token --domain --name --relay - sudo systemctl start infisical-gateway - ``` - This will install and start the Gateway as a secure systemd service that: - - Runs with restricted privileges: - - Runs as root user (required for secure token management) - - Restricted access to home directories - - Private temporary directory - - Automatically restarts on failure - - Starts on system boot - - Manages token and domain configuration securely in `/etc/infisical/gateway.conf` - - - The install command requires: - - Linux operating system - - Root/sudo privileges - - Systemd - - - - - - The Gateway can be installed via [Helm](https://helm.sh/). Helm is a package manager for Kubernetes that allows you to define, install, and upgrade Kubernetes applications. - - For production deployments on Kubernetes, install the Gateway using the Infisical Helm chart: - - ### Install the latest Helm Chart repository - ```bash - helm repo add infisical-helm-charts 'https://dl.cloudsmith.io/public/infisical/helm-charts/helm/charts/' - ``` - - ### Update the Helm Chart repository - ```bash - helm repo update - ``` - - ### Create a Kubernetes Secret containing gateway environment variables - - The gateway supports all identity authentication methods through the use of environment variables. - The environment variables must be set in the `infisical-gateway-environment` Kubernetes secret. - - - #### Supported authentication methods - - - - The Universal Auth method is a simple and secure way to authenticate with Infisical. It requires a client ID and a client secret to authenticate with Infisical. - - - - - Your machine identity client ID. - - - Your machine identity client secret. - - - The authentication method to use. Must be `universal-auth` when using Universal Auth. - - - - - ```bash - kubectl create secret generic infisical-gateway-environment \ - --from-literal=INFISICAL_AUTH_METHOD=universal-auth \ - --from-literal=INFISICAL_UNIVERSAL_AUTH_CLIENT_ID= \ - --from-literal=INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET= \ - --from-literal=INFISICAL_RELAY_NAME= \ - --from-literal=INFISICAL_GATEWAY_NAME= - ``` - - - - The Native Kubernetes method is used to authenticate with Infisical when running in a Kubernetes environment. It requires a service account token to authenticate with Infisical. - - - - - Your machine identity ID. - - - Path to the Kubernetes service account token to use. Default: `/var/run/secrets/kubernetes.io/serviceaccount/token`. - - - The authentication method to use. Must be `kubernetes` when using Native Kubernetes. - - - - - - ```bash - kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=kubernetes --from-literal=INFISICAL_MACHINE_IDENTITY_ID= - ``` - - - - The Native Azure method is used to authenticate with Infisical when running in an Azure environment. - - - - - Your machine identity ID. - - - The authentication method to use. Must be `azure` when using Native Azure. - - - - - ```bash - kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=azure --from-literal=INFISICAL_MACHINE_IDENTITY_ID= - ``` - - - The Native GCP ID Token method is used to authenticate with Infisical when running in a GCP environment. - - - - - Your machine identity ID. - - - The authentication method to use. Must be `gcp-id-token` when using Native GCP ID Token. - - - - - ```bash - kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=gcp-id-token --from-literal=INFISICAL_MACHINE_IDENTITY_ID= - ``` - - - - The GCP IAM method is used to authenticate with Infisical with a GCP service account key. - - - - - Your machine identity ID. - - - Path to your GCP service account key file _(Must be in JSON format!)_ - - - The authentication method to use. Must be `gcp-iam` when using GCP IAM. - - - - - ```bash - kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=gcp-iam --from-literal=INFISICAL_MACHINE_IDENTITY_ID= --from-literal=INFISICAL_GCP_SERVICE_ACCOUNT_KEY_FILE_PATH= - ``` - - - - - The AWS IAM method is used to authenticate with Infisical with an AWS IAM role while running in an AWS environment like EC2, Lambda, etc. - - - - - Your machine identity ID. - - - The authentication method to use. Must be `aws-iam` when using Native AWS IAM. - - - - - ```bash - kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=aws-iam --from-literal=INFISICAL_MACHINE_IDENTITY_ID= - ``` - - - - The OIDC Auth method is used to authenticate with Infisical via identity tokens with OIDC. - - - - - Your machine identity ID. - - - The OIDC JWT from the identity provider. - - - The authentication method to use. Must be `oidc-auth` when using OIDC Auth. - - - - - ```bash - kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=oidc-auth --from-literal=INFISICAL_MACHINE_IDENTITY_ID= --from-literal=INFISICAL_JWT= - ``` - - - - The JWT Auth method is used to authenticate with Infisical via a JWT token. - - - - - The JWT token to use for authentication. - - - Your machine identity ID. - - - The authentication method to use. Must be `jwt-auth` when using JWT Auth. - - - - - ```bash - kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=jwt-auth --from-literal=INFISICAL_JWT= --from-literal=INFISICAL_MACHINE_IDENTITY_ID= - ``` - - - You can use the `INFISICAL_TOKEN` environment variable to authenticate with Infisical with a raw machine identity access token. - - - - - The machine identity access token to use for authentication. - - - - - ```bash - kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_TOKEN= - ``` - - - - - #### Required environment variables - - In addition to the authentication method above, you **must** include these required variables: - - - - The name of the relay server that this gateway should connect to. - - - The name of this gateway instance. - - - - **Complete example with required variables:** - ```bash - kubectl create secret generic infisical-gateway-environment \ - --from-literal=INFISICAL_AUTH_METHOD=universal-auth \ - --from-literal=INFISICAL_UNIVERSAL_AUTH_CLIENT_ID= \ - --from-literal=INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET= \ - --from-literal=INFISICAL_RELAY_NAME= \ - --from-literal=INFISICAL_GATEWAY_NAME= - ``` - - #### Other environment variables - - - - The API URL to use for the gateway. By default, `INFISICAL_API_URL` is set to `https://app.infisical.com`. - - - - ### Install the Infisical Gateway Helm Chart - - **Version mapping:** Helm chart versions `>= 1.0.0` contain the new Gateway v2 component. Helm chart versions `<= 0.0.5` contain the legacy Gateway v1 component. - - If you are moving from Gateway v1 (chart `<= 0.0.5`) to Gateway v2 (chart `>= 1.0.0`), this is not in-place. Gateway v2 provisions new gateway instances with new gateway IDs. Update any resources that reference a gateway ID (for example: dynamic secret configs, app connections, or other gateway-bound resources) to use the new Gateway v2 gateway ID. - - - ```bash - helm install infisical-gateway infisical-helm-charts/infisical-gateway - ``` - - ### Check the gateway logs - After installing the gateway, you can check the logs to ensure it's running as expected. - - ```bash - kubectl logs deployment/infisical-gateway - ``` - - You should see the following output which indicates the gateway is running as expected. - ```bash - $ kubectl logs deployment/infisical-gateway - 12:43AM INF Starting gateway - 12:43AM INF Starting gateway certificate renewal goroutine - 12:43AM INF Successfully registered gateway and received certificates - 12:43AM INF Connecting to relay server infisical-start on 152.42.218.156:2222... - 12:43AM INF Relay connection established for gateway - 12:43AM INF Received incoming connection, starting TLS handshake - 12:43AM INF TLS handshake completed successfully - 12:43AM INF Negotiated ALPN protocol: infisical-ping - 12:43AM INF Starting ping handler - 12:43AM INF Ping handler completed - 12:43AM INF Gateway is reachable by Infisical - ``` - - - - - For development or testing, you can run the Gateway directly. Log in with your machine identity and start the Gateway in one command: - ```bash - infisical gateway start --token $(infisical login --method=universal-auth --client-id=<> --client-secret=<> --plain) --relay= --name= - ``` - - Alternatively, if you already have the token, use it directly with the `--token` flag: - ```bash - infisical gateway start --token --relay= --name= - ``` - - Or set it as an environment variable: - ```bash - export INFISICAL_TOKEN= - infisical gateway start --relay= --name= - ``` - - - - For detailed information about the gateway commands and their options, see the [gateway command documentation](/cli/commands/gateway). - - - **Requirements:** - - Ensure the deployed Gateway has network access to the private resources you intend to connect with Infisical - - The gateway must be able to reach the relay server (outbound connection only) - - Replace `` with the name of your relay server and `` with a unique name for this gateway - - - - - - To confirm your Gateway is working, check the deployment status by looking for the message **"Gateway started successfully"** in the Gateway logs. This indicates the Gateway is running properly. Next, verify its registration by opening your Infisical dashboard, navigating to **Organization Access Control**, and selecting the **Gateways** tab. Your newly deployed Gateway should appear in the list. - ![Gateway List](../../../images/platform/gateways/gateway-list.png) - - +2. **Persistent Connection**: The gateway maintains an open TCP connection with the relay server, creating a secure channel for incoming requests +3. **Request Routing**: When Infisical needs to access your resources, requests are routed through the relay server to the already-established gateway connection +4. **Resource Access**: The gateway receives the routed requests and connects to your private resources on behalf of Infisical + +## Getting Started + +Ready to set up your gateway? Follow the guides below. + + + + Deploy and configure your gateway within your network infrastructure. + + + Set up relay servers if using self-deployed infrastructure. + + + + + Learn about the security model and implementation best practices. + + \ No newline at end of file diff --git a/docs/documentation/platform/gateways/relay-deployment.mdx b/docs/documentation/platform/gateways/relay-deployment.mdx new file mode 100644 index 000000000..adf5fdb9d --- /dev/null +++ b/docs/documentation/platform/gateways/relay-deployment.mdx @@ -0,0 +1,243 @@ +--- +title: "Relay Deployment" +description: "How to deploy Infisical Relay Servers" +--- + +Infisical Relay is a secure routing layer that allows Infisical to connect to your private network resources, such as databases or internal APIs, without exposing them to the public internet. +The relay acts as an intermediary, forwarding encrypted traffic between Infisical and your deployed gateways. This ensures that your sensitive data remains protected and never leaves your network unencrypted. +With this architecture, you can achieve secure, firewall-friendly access across network boundaries, making it possible for Infisical to interact with resources even in highly restricted environments. + +Before diving in, it's important to determine whether you actually need to deploy your own relay server or if you can use Infisical's managed infrastructure. + +## Do You Need to Deploy a Relay? + +Not all users need to deploy their own relay servers. Infisical provides managed relay infrastructure in US/EU regions for Infisical Cloud users, which requires no setup or maintenance. You only need to deploy a relay if you: + +- Are self-hosting Infisical +- Have a dedicated enterprise instance of Infisical (managed by Infisical) +- Require closer geographic proximity to target resources than managed relays provide for lower latency and reduced network congestion when accessing resources through the relay +- Need full control over relay infrastructure and traffic routing + +If you are using Infisical Cloud and do not have specific requirements, you can use the managed relays provided by Infisical and skip the rest of this guide. + +## Deployment Steps + +To successfully deploy an Infisical Relay for use, follow these steps in order. + + + + Create a machine identity with the correct permissions to create and manage relays. This identity is used by the relay to authenticate with Infisical and should be provisioned in advance. + The relay supports several [machine identity auth methods](/documentation/platform/identities/machine-identities) for authentication, as listed below. Choose the one that best fits your environment and set the corresponding environment variables when deploying the relay. + + + + Simple and secure authentication using client ID and client secret. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=universal-auth` + - `INFISICAL_UNIVERSAL_AUTH_CLIENT_ID=` + - `INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET=` + + + + Direct authentication using a machine identity access token. + + **Environment Variables:** + - `INFISICAL_TOKEN=` + + + + Authentication using Kubernetes service account tokens. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=kubernetes` + - `INFISICAL_MACHINE_IDENTITY_ID=` + + + + Authentication using AWS IAM roles. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=aws-iam` + - `INFISICAL_MACHINE_IDENTITY_ID=` + + + + Authentication using GCP identity tokens. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=gcp-id-token` + - `INFISICAL_MACHINE_IDENTITY_ID=` + + + + Authentication using GCP service account keys. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=gcp-iam` + - `INFISICAL_MACHINE_IDENTITY_ID=` + - `INFISICAL_GCP_SERVICE_ACCOUNT_KEY_FILE_PATH=` + + + + Authentication using Azure managed identity. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=azure` + - `INFISICAL_MACHINE_IDENTITY_ID=` + + + + Authentication using OIDC identity tokens. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=oidc-auth` + - `INFISICAL_MACHINE_IDENTITY_ID=` + - `INFISICAL_JWT=` + + + + Authentication using JWT tokens. + + **Environment Variables:** + - `INFISICAL_AUTH_METHOD=jwt-auth` + - `INFISICAL_MACHINE_IDENTITY_ID=` + - `INFISICAL_JWT=` + + + + + + Install the Infisical CLI on the server where you plan to deploy the relay. The CLI is required for relay installation and management. + + See the [CLI Installation Guide](/cli/overview) for instructions. + + This server must have a static IP address or DNS name to be identifiable by the Infisical platform. + + + + + Ensure your network and firewall settings allow the server to accept inbound connections and make outbound connections: + + **Inbound Connections Rules:** + | Protocol | Source | Port | Purpose | + | -------- | ------------------ | ---- | -------------------------------- | + | TCP | Gateways | 2222 | SSH reverse tunnel establishment | + | TCP | Infisical instance host (US/EU, other) | 8443 | Platform-to-relay communication | + + **Outbound Connections Rules:** + | Protocol | Destination | Port | Purpose | + | -------- | ------------------------------------ | ---- | ------------------------------------------ | + | TCP | Infisical instance host (US/EU, other) | 443 | API communication and certificate requests | + + + + + The Infisical CLI is used to install and start the relay in your chosen environment. The CLI provides commands for both production and development scenarios, and supports a variety of options/flags to configure your deployment. + + To view all available flags and equivalent environment variables for relay deployment, see the [Relay CLI Command Reference](/cli/commands/relay). + + + For production deployments on Linux servers, install the Relay as a systemd service. This installation method only supports [Token Auth](/documentation/platform/identities/token-auth) at the moment. + + Once you have a [Token Auth](/documentation/platform/identities/token-auth) token, set the following environment variables for relay authentication: + + ```bash + export INFISICAL_TOKEN= + ``` + + + The systemd install command requires a Linux operating system with root/sudo privileges. + + + ```bash + sudo infisical relay systemd install \ + --token \ + --name \ + --domain \ + --host + + # Start the relay service + sudo systemctl start infisical-relay + sudo systemctl enable infisical-relay + ``` + + + + For non-Linux systems or when you need more control over the relay process: + + ```bash + infisical relay start \ + --type= \ + --host= \ + --name= \ + --auth-method= + ``` + + This method supports all [machine identity auth methods](/documentation/platform/identities/machine-identities) and runs in the foreground. Suitable for production use on non-Linux systems or development environments. + Set the appropriate environment variables for your chosen auth method as described in Step 1 before running the relay start command. + + + + + + + +## Frequently Asked Questions + + +No, relay servers cannot decrypt any traffic passing through them due to end-to-end encryption: + +- **Client-to-Gateway mTLS (via TLS-pinned tunnel)**: Clients connect via a proxy that establishes a TLS-pinned tunnel to the gateway; mTLS between the client and gateway is negotiated inside this tunnel, encrypting all application traffic +- **SSH tunnel encryption**: The mTLS-encrypted traffic is then transmitted through SSH reverse tunnels to relay servers +- **Double encryption**: Traffic is encrypted twice - once by client mTLS and again by SSH tunnels +- **Relay only routes traffic**: The relay server only routes the doubly-encrypted traffic without access to either encryption layer + +The relay infrastructure is designed as a secure routing mechanism where only the client and gateway can decrypt the actual application traffic. + + + + +Deploying your own relay provides several advantages: + +- **Dedicated resources**: Full control over relay infrastructure and performance +- **Lower latency**: Deploy closer to your gateways for optimal performance +- **Compliance**: Meet specific data routing and compliance requirements +- **Custom network policies**: Implement organization-specific network configurations +- **Geographic proximity**: Reduce network congestion and improve response times to access resources +- **High availability**: Deploy multiple relays for redundancy and load distribution + +Organization-deployed relays give you complete control over your secure communication infrastructure. + + + + +For detailed troubleshooting: + +**Platform cannot connect to relay:** + +- Check firewall rules allow inbound TCP with TLS on port 8443 +- Test connectivity: `openssl s_client -connect :8443` + +**Test network connectivity:** + +```bash +# Test outbound API access from relay. Replace URL with your Infisical instance if self-hosted +curl -I https://app.infisical.com + +# Test TCP with TLS port from platform +openssl s_client -connect :8443 +``` + + + +Relay server outages affect gateway connectivity: + +- **Gateway reconnection**: Gateways will automatically attempt to reconnect when the relay comes back online +- **Service interruption**: While the relay is down, the Infisical platform cannot reach gateways through that relay. As a result, any secrets or resources accessed via those gateways will be temporarily unavailable until connectivity is restored. +- **Multiple relays**: Deploy multiple relay servers for redundancy and high availability +- **Automatic restart**: Use systemd or container orchestration to automatically restart failed relay services + +For production environments, consider deploying multiple relay servers to avoid single points of failure. + + diff --git a/docs/documentation/platform/gateways/gateway-security.mdx b/docs/documentation/platform/gateways/security.mdx similarity index 91% rename from docs/documentation/platform/gateways/gateway-security.mdx rename to docs/documentation/platform/gateways/security.mdx index 6962c627e..dc70aa36f 100644 --- a/docs/documentation/platform/gateways/gateway-security.mdx +++ b/docs/documentation/platform/gateways/security.mdx @@ -1,13 +1,9 @@ --- -title: "Gateway Security Architecture" -sidebarTitle: "Architecture" -description: "Understand the security model and tenant isolation of Infisical's Gateway" +title: "Security Architecture" +description: "Security model, tenant isolation, and best practices for Infisical Gateways and Relays" --- -# Gateway Security Architecture - The Infisical Gateway enables secure access to private resources using SSH reverse tunnels, certificate-based authentication, and a comprehensive PKI (Public Key Infrastructure) system. The architecture provides end-to-end encryption and complete tenant isolation through multiple certificate authorities. -This document explains the internal security architecture and how tenant isolation is maintained. ## Security Model Overview @@ -82,16 +78,16 @@ The platform establishes secure direct connections with gateways through a **TLS 2. **Connection Flow**: ``` - Platform ←→ [SSH Reverse Tunnel] ←→ Gateway + Platform ←→ [TCP with TLS] ←→ Relay ←→ [SSH Reverse Tunnel] ←→ Gateway ``` - Gateway maintains persistent outbound SSH tunnel to relay server - - Platform connects directly to gateway through this tunnel - - TLS handshake occurs over the SSH tunnel, establishing mTLS connection - - Application traffic flows through the TLS-pinned tunnel + - Platform connects to relay server using TCP with TLS + - Relay routes encrypted traffic between platform and gateway + - TLS handshake occurs between platform and gateway through the relay + - Application traffic flows through the TLS-pinned tunnel via relay routing 3. **Security Benefits**: - - **No inbound connections**: Gateway never needs to accept incoming connections - **Certificate-based authentication**: Uses Organization Gateway certificates for mutual TLS - **Double encryption**: TLS traffic within SSH tunnel provides layered security @@ -132,7 +128,6 @@ The architecture provides tenant isolation through multiple certificate authorit - Ephemeral certificate validation ensures time-bound access 2. **Network Isolation**: - - Each organization's traffic flows through isolated certificate-authenticated channels - Relay servers route traffic based on certificate validation without content access - Gateway validates all incoming connections against Organization Gateway Client CA diff --git a/docs/documentation/platform/identities/ldap-auth/general.mdx b/docs/documentation/platform/identities/ldap-auth/general.mdx index 01395b68c..f49643474 100644 --- a/docs/documentation/platform/identities/ldap-auth/general.mdx +++ b/docs/documentation/platform/identities/ldap-auth/general.mdx @@ -34,24 +34,33 @@ To create and manage LDAP auth templates, see our [Machine Identity Auth Templat To configure LDAP auth for your identity, press the **Add Auth Method** button on the identity's page. ![Add auth method](/images/platform/identities/ldap/identities-org-add-auth-method.png) - + Now select **LDAP Auth** from the list of available auth methods for the identity. ![Select LDAP auth](/images/platform/identities/ldap/identities-org-add-auth-method-modal.png) - - + + After selecting **LDAP Auth**, you'll see the form you need to fill out to configure LDAP auth for your identity. The following fields are available: + **Configuration Tab** - `URL`: The LDAP server to connect to such as `ldap://ldap.your-org.com`, `ldaps://ldap.myorg.com:636` _(for connection over SSL/TLS)_, etc. - `Bind DN`: The DN to bind to the LDAP server with. - `Bind Pass`: The password to bind to the LDAP server with. - `Search Base / DN`: Base DN under which to perform user search such as `ou=Users,dc=acme,dc=com`. - `User Search Filter`: Template used to construct the LDAP user search filter such as `(uid={{username}})`; use literal `{{username}}` to have the given username used in the search. The default is `(uid={{username}})` which is compatible with several common directory schemas. - `Required Attributes`: A key/value pair of attributes that must be present in the LDAP user entry for them to be authenticated. As an example, if you set key `uid` to value `user1,user2,user3`, then only users with `uid` of `user1`, `user2`, or `user3` will be able to login with this identity. Each value is a comma separated list of attributes. - - `CA Certificate`: The CA certificate to use when verifying the LDAP server certificate. This field is optional but recommended. - `Access Token TTL` _(default is 2592000 equivalent to 30 days)_: The lifetime for an access token in seconds. This value will be referenced at renewal time. - `Access Token Max TTL` _(default is 2592000 equivalent to 30 days)_: The maximum lifetime for an access token in seconds. This value will be referenced at renewal time. - `Access Token Max Number of Uses` _(default is 0)_: The maximum number of times that an access token can be used; a value of 0 implies infinite number of uses. + + **Lockout Tab** + - `Lockout` _(enabled by default)_: The lockout feature will temporarily block login attempts after X consecutive login failures. + - `Lockout Threshold` _(default is 3)_: The amount of times login must fail before locking the identity auth method. + - `Lockout Duration` _(default is 5 minutes)_: How long an identity auth method lockout lasts. + - `Lockout Counter Reset` _(default is 30 seconds)_: How long to wait from the most recent failed login until resetting the lockout counter. + + **Advanced Tab** + - `CA Certificate`: The CA certificate to use when verifying the LDAP server certificate. This field is optional but recommended. - `Access Token Trusted IPs`: The IPs or CIDR ranges that access tokens can be used from. By default, each token is given the 0.0.0.0/0, allowing usage from any network address. Once you've filled out the form, press **Add** to save your changes. @@ -91,3 +100,13 @@ To create and manage LDAP auth templates, see our [Machine Identity Auth Templat + +**FAQ** + + + + You can reset (remove) all lockouts for an identity auth method by clicking into the auth method and pressing **Reset All Lockouts**. + + ![ldap reset lockouts](/images/platform/identities/ldap-reset-lockouts.png) + + diff --git a/docs/documentation/platform/identities/machine-identities.mdx b/docs/documentation/platform/identities/machine-identities.mdx index b4a18708c..7e40f85f9 100644 --- a/docs/documentation/platform/identities/machine-identities.mdx +++ b/docs/documentation/platform/identities/machine-identities.mdx @@ -38,6 +38,12 @@ To interact with various resources in Infisical, Machine Identities can authenti - [GCP Auth](/documentation/platform/identities/gcp-auth): A GCP-native authentication method for GCP resources (e.g. Compute Engine, App Engine, Cloud Run, Google Kubernetes Engine, IAM service accounts, etc.). - [OIDC Auth](/documentation/platform/identities/oidc-auth): A platform-agnostic, JWT-based authentication method for workloads using an OpenID Connect identity provider. +## Identity Lockout + +Lockout is a feature that prevents brute-force attacks on identity login endpoints. Auth methods that support lockout include: [Universal Auth](/documentation/platform/identities/universal-auth), [LDAP Auth](/documentation/platform/identities/ldap-auth/general). + +Supported auth methods have lockout enabled by default. If triggered, lockout temporarily disables the login endpoint for 5 minutes after 3 consecutive failed login attempts within a 30-second window. Lockout can be configured and disabled in the identity auth method settings. + ## FAQ @@ -51,15 +57,15 @@ You can learn more about how to do this in the CLI quickstart [here](/cli/usage) A service token is a project-level authentication method that is being deprecated in favor of identities. The service token method will be removed in the future in accordance with the deprecation notice and timeline stated [here](https://infisical.com/blog/deprecating-api-keys). - + Amongst many differences, identities provide broader access over the Infisical API, utilizes the same permission system as user identities, and come with a significantly larger number of configurable authentication and security features. - + If you're looking for a simple authentication method, similar to service tokens, that can be bound onto an identity, we recommend checking out [Token Auth](/documentation/platform/identities/token-auth). There are a few reasons for why this might happen: - + - You have insufficient organization permissions to create, read, update, delete identities. - The identity you are trying to read, update, or delete is more privileged than yourself. - The role you are trying to create an identity for or update an identity to is more privileged than yours. diff --git a/docs/documentation/platform/identities/universal-auth.mdx b/docs/documentation/platform/identities/universal-auth.mdx index 51721f7bf..3a87f6da9 100644 --- a/docs/documentation/platform/identities/universal-auth.mdx +++ b/docs/documentation/platform/identities/universal-auth.mdx @@ -4,7 +4,7 @@ description: "Learn how to authenticate to Infisical from any platform or enviro --- **Universal Auth** is a platform-agnostic authentication method that can be configured for a [machine identity](/documentation/platform/identities/machine-identities) to authenticate from any platform/environment using a Client ID and Client Secret. -This authentication method supports setting token periods, which can help [overcome secret zero](#solving-secret-zero-with-periodic-tokens). +This authentication method supports setting token periods, which can help [overcome secret zero](#solving-secret-zero-with-periodic-tokens). ## Diagram @@ -65,17 +65,32 @@ using the Universal Auth authentication method. By default, the identity has been configured with Universal Auth. If you wish, you can edit the Universal Auth configuration details by pressing to edit the **Authentication** section. + Here's some guidance on each field: + + **Configuration Tab** + ![identities organization create universal auth method 1](/images/platform/identities/identities-org-create-universal-auth-method-1.png) + + - Access Token TTL (default is `2592000` equivalent to 30 days): The lifetime for an access token in seconds. This value will be referenced at renewal time. + - Access Token Max TTL (default is `2592000` equivalent to 30 days): The maximum lifetime for an access token in seconds. This value will be referenced at renewal time. + - Access Token Max Number of Uses (default is `0`): The maximum number of times that an access token can be used; a value of `0` implies infinite number of uses. + - Access Token Period (optional, default is `0`): If set, the access token becomes a renewable, non-expiring token for the specified period (in seconds). TTL and Max TTL are ignored when this is set. This is ideal for "secret zero" scenarios, where a workload needs to bootstrap itself securely without hard-coded static secrets. + + **Lockout Tab** + ![identities organization create universal auth method 2](/images/platform/identities/identities-org-create-universal-auth-method-2.png) - Here's some more guidance on each field: + - Lockout (enabled by default): The lockout feature will temporarily block login attempts after X consecutive login failures. + - Lockout Threshold (default is `3`): The amount of times login must fail before locking the identity auth method. + - Lockout Duration (default is `5 minutes`): How long an identity auth method lockout lasts. + - Lockout Counter Reset (default is `30 seconds`): How long to wait from the most recent failed login until resetting the lockout counter. + + **Advanced Tab** + + ![identities organization create universal auth method 3](/images/platform/identities/identities-org-create-universal-auth-method-3.png) - - Access Token TTL (default is `2592000` equivalent to 30 days): The lifetime for an acccess token in seconds. This value will be referenced at renewal time. - - Access Token Max TTL (default is `2592000` equivalent to 30 days): The maximum lifetime for an acccess token in seconds. This value will be referenced at renewal time. - - Access Token Max Number of Uses (default is `0`): The maximum number of times that an access token can be used; a value of `0` implies infinite number of uses. - Client Secret Trusted IPs: The IPs or CIDR ranges that the **Client Secret** can be used from together with the **Client ID** to get back an access token. By default, **Client Secrets** are given the `0.0.0.0/0`, allowing usage from any network address. - Access Token Trusted IPs: The IPs or CIDR ranges that access tokens can be used from. By default, each token is given the `0.0.0.0/0`, allowing usage from any network address. - - Access Token Period (optional, default is `0`): If set, the access token becomes a renewable, non-expiring token for the specified period (in seconds). TTL and Max TTL are ignored when this is set. This is ideal for "secret zero" scenarios, where a workload needs to bootstrap itself securely without hard-coded static secrets. Restricting **Client Secret** and access token usage to specific trusted IPs is a paid feature. @@ -202,6 +217,10 @@ This approach allows your workload to securely bootstrap and maintain access to A token can be renewed any number of times where each call to renew it can extend the token's lifetime by increments of the access token's TTL. Regardless of how frequently an access token is renewed, its lifespan remains bound to the maximum TTL determined at its creation. + + + You can reset (remove) all lockouts for an identity auth method by clicking into the auth method and pressing **Reset All Lockouts**. + ![ua reset lockouts](/images/platform/identities/ua-reset-lockouts.png) diff --git a/docs/images/app-connections/general/add-connection.png b/docs/images/app-connections/general/add-connection.png index ad9d54716c3d3d4b9482ba9c12b564808c1e61d4..b6dce69ac1a6044d2b6080812340e27defc55993 100644 GIT binary patch literal 952486 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

D?lA$8% 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

RSUsf+N|cH>LeNB<+bp>O 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 z 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

!S9g61rOqA~yMf2g@Juf}@f*-$7{dEF# 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%0Axeq`jK@f#&9c{PF*f^!0k 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

  • $A~-@f+Nc6L0Kbji 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%0AS8}X`~g;K_wN=8y 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 $T(a`yqi@YoPz#T*>!{{&|w1 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

    ^8EpCEpU@7i6P{kMw6o)xBe6{ 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

    3F*~ z>dStlw&cV|CcLBUWA<@Yn|Zq}!D~LLkaKk-cF*`rfT0=^+#kk!vu&Y+$>L z;5T7h+n)I&Kr0}B_}zsKgxWs5LdCidc!>}Hv3v$o3m|a^I=_jPLnyHF}WtWK%J;S2G~s$xZMv*>T3bRAy0FDc>O6{Wdiyb#n2I zb2Y|%;^w&4nbVo?QpMbf*3>!L$3??0Z%(tV)YcU{#Y!T*YN*{hrx`%0l){Y4v_ETb z2b7xnYZosl$+4Q>VR1go*kZUmlm+VyRn2W{QJ*9k&zrs{lh(f84VKFbdS~5CzHuC< zQNN~?GoLtgE)l#}USF{Qc}k{`;P9@!d5KfwG=xWYd$`o-P}!7V#f4MZ}{1xO_VP z*Brfbs7T)4fp%N7XXrwq7xCVPru z<(T}GZ0gTRd)i8jIR#Vlvj2rJ% z zuFVBCeI<h)MCT^8DMR+^!w=t$wH#tWBvD$-sRr0Db^>ro?TNqt#u z8u9-w5OMqnea;}Z`$C@Z?HhuDA}`IND9PqnYwxe+%j!k*WaK*@Jnw;BqcUX0L&S6X z;z+stOlQH&Hf|$mL`EfpkOp@Hv|em~=~~!+2d4}d>_Rtqnttb@NSJ!W8`wsSwFOwq!$G>+4UNC_W`Xp78?gzN_eOXG%TfO zffi}a5^%naMiZoLYpRPjt--tvZ3B0m@%Yi-6H9Za3CQ^BT;s!xAoD1p)CuqjbpP-V z0MGEqvr*7-ZQ)UGxP4VK-47@~3e_kNiQ~j4G1@Hvf;u(eRK0d6%w-RLed!AoOM_wZ zoU2P+7yNfpyV#}DoSEabtp75Zj_$gzZUL5EvZ(N2Gc<90521z2ZHtd(_asn_#bwuU z>9WrL?lYrv9!O73wk(PApa?U8J0BRHWE?2unNV>0Jp^R(?+>nsT3>YDmG)0Z^nVPC z({hfO3FWYP1{xjlVyR))+8sQvObi`}pKx0bd`3j?^BM&@d<+xmOh@z5o3(-*cX3f=fa2NDQ%#C8R59_9 z<2=UZzb=0q_&J{7g#Pl}Ej&R2uP+%G>}M{rmu^~O_%Nxh6n+8~_pk@SD@h?M-hGTN zlR@>^`A6S|65d1>&vnN_8=OBukU1*#V2zy?bPQTq6_-CZXdRf~;&_bRWa6i@ySl$V zuk-KmIuYwP-@UbmR-!$Krr(Y7tRiDt5Ed`s8Hnl+`@r`D)5-SrpNjs>ZD;kjjpOl4 zx~emmgTZlJy<$(CfiLYfwURW>BH;X+YyCs#h5>gN8^%KF{D`$ZPFP)x8{MhE(CrqN zE0NQ4am;6OkMi&lS~Q%<;m>k^x0y-rl?ZDh)|E5z!Bout?3@b`l;y zcHeCmE5rj%n{g&h*`73d!nvUVstz8P+U^f)-7+s16&(&wj9@^RW)&Uvj*kQ$D1HJH{AF zwF(u)3*3=}F~Q*!2%u%)MNy;5IKx@$PA40B;e`*_f~Q_vEs{C;%cNG@bLpCQ#2?*t zV|!sFKL8^Fi7#2YquafLs_iexKIpb3<|KFl{QO9CLG2dnQ(|{B5ZhX`DK|i9=RU>a z+bTO2lN}Ap)hr1%?B?t(q_E!3OU8)I&wag=D)?hMRP@SjoVSYh-%4%dz{uO`l1n9K z=ZgTPXQ>4Sy_5eJIz3TppWYhrCQvW+>y}4N0TX17)3j?-`QSyd- zo&C>zat+~@k6LdqcFun9;rHHb(gu>D1QV)yCWZB4Z7;KIPEf-A?V}up94LwPdk(Rt%&yd~ICJUgJXtDJAbUQbCr}d}`2M z2!-jXA{5+StA4Y2BmOJ-H=dVzX3XtyQhe=h}tcQEW zkYM&I@k)9~JXISywykPz?z4PKGT`a-4&I*Tk~{G0?jMC3PwvO6Aom%I8z1Ejd{>$3 zaRh(a{X7KxP`@*q^n5_l;uH&vNa7Xu&;a-;c`*FxdeFo!NQ$dMb=@OBmTsybaso)( zk_}8sdkBmRmCHOl;6Ct#VLrR+ddOLE+{63-2@3M2b#eH#b|1|Wxq%)jou1)fOt7J$ zTxussiebh78d=SimAz{z)s}{URG~`(V;=3ofRGELMH~RGAOU#C%5aR?xdC74r69E^ zLB9%fIy+#Sw!h&4hJOBPV_73(s|o%hO+TaVe1|%&j}BP0Bgd!wMj4) z>_(YmXtKB(5cLM6JieD+nWdf{wAaq2+3Q}P(Rh0yD%btnHwk=$wB{D|yWHOAkGg%a z-1zCaeNE$+66~);CYTm8fXDglZ<>VY?k%SKdcO(y(Di5RVv1FOo^|g{hr~ednGA5p z(vWI|WKNScW=g1xv%pzX@2k;%!Qd_Yk7V+?EN}fgXT%|28$61~g`HahPdTifay#LH zwE4YJ7mDe)ezd)&O}?w%cSQk;_YbyK-BvFG*1s50c>SiJH-)idYjEivER9g7pVk!k zY;Grv%lotFHYnHM#OUjl?)5lND`Qby%RkgW#*^vG`V0~D7E+#H?nYIRrwIGC6~<~- zWldv8#>yXW%|EU(6m|*E9DZHmwkA6(yY4rsu`Ia76g6}_;vA4rQF4E=Un9ro@R-R* zmBa;t^wH~I^MxbqOe{C2Kxsgyx;b#GhSMqCe+madaUwI|^*N&2-2z>1)I#gu$srR! zEh{D_+V2@fZO*y3Vx@JHuUjeH_s!$NBR|n{$=~~~nkIE%&9e{tb*64U@tBD}^VPN?CcjeV`tx3DFUh;#g(%LN@@J5oH$@=xGWn^Fe&An# z$vcps(Ur{@Wkh)XvO51|JLmc57Xfu5Y{3I|(7!w%SwuHbG_d@RECElT_&(;_e51a{ zMuI}ajmvBLq&#hN>ny^ngxBG7sC4P3<0N_#b^iNmt`W4@Qq|I@6;fG@Pew}*?N z-zv|A4>BfCWAU@fz{jJ{9r8dLXGPaRGlsTQ++*OeS&fTzO?R{C@5wjiO#YC;mFJL8 z<8SrM`>%o)gG}7k7$_UQuyzFGSYo`()g<#k z4NO?K7^S`3}ciLP%kZp#aXp2SjzRhgYFop z86Dh64@W$Yin7x4d17c_Q*UBBzCe}XCCQav`E*y~bbRpl4L>SEqUQ@`M4;3SA9$+h z-GbWAiNfG~v*2DIfV2AhU2!0MEQk4 z9Obujp86Td0m@}t#3Sl3FtdsEu$1)Gsqfv#PFCQtHhA2Sd%Xr$t{_(MTD%0l?Ya5A zS90xq5mkcCe%t!{a4%4M`91Ha&d-D2C})7aGh@{6#TiNoNm9ctiGyK*oNH!b2n2#x z<~nWck^lnq)R;m* zv-gz|TTRbbqh?*Fl}A3+-RX0N>KXDa#fgPr<(z4lsi^4L_h{=`LozwauZgdis!Ea8 z&aX|VOWpbDp);#dHU#Mfu@Fo(?X=_?Zq>pQ%6Lok#nvRXTB2Ic^5%KsFWaxb*5ycZ zez6PHia-IC8Cjbr&QZUjqf(OG-XUex)sHt{xpIbs)1j$Lb_3CK_&yhAp|R21$?C`| z3>V(d{D_b_?O0HeCG1}7)t1{a_6-yD$s4c>yayLG70C528xyAYvCFFX|D&X~U~&Z?iwCiyj;TLXf8Q8Y83VjVRsV4APd! z90*T=#+Ca1jYA=EwwCc8Ff3l8Hkvbc(AptsS8u3hQH%82QB3sz3=8j!uz!9eiDNrY zL^KXB>4K3fo0o(3vhlon&uU&URF@rrfZg?;B#}#Ieoy#vv%cBtQ5n=HE!n}$lL0Tt zq}a{cgv%k}pF8Kk-Y{vvI<4RwpCj2?^V>ybqu?VeP(@nLnSOBg!x^>#_7u5Hto<>z zkvLAU+@#1%*z6i6;i5KsACvhTirnRXB2aSEggUfGg*pW|kdR!U0yfuVivPELL@>q1 zpTrK2SwgeG{(Ot*#@<}r#wz(G>_nzhhlooes09ilrb%PJxc`hyz9Ik^S&&`bC#O9% zF;cG-*=TGy4Ub}_1ZoQ9*W6anI_-wk@e|H`uclrw`|x*GWi|N~D@c&`p3wOq&ZWP@ z{x++jfdW;tnw}i%RtyYvo|`ABsiHy^4myK1sn;jmetK^5 zxXl{<7m>{)ULh*r}Ap*Ocp{U25ya!vq^BASaBO5g&Sse9jybL zST~vE97b|JiDj8>7zL?+A11LmRl@EuIMn#9{nFg2)1*i2YQ!zSKx}?Y^?&%`dg4)f zmc4az#0u;JE01_T6pMGn%ayeMI8Sw*T)Z#CAO|4mhgo=mK6FYD(&Y z|Nc^HbGS#F<96ia(|6Nj1#jr=m{~6f_m(uePN-0~UO6G^nJ&3Qk~oQchr6-T_?;*c zJIVMu;>b*o`QgDUMGiRgQyc5LGE{1>w{9>9OAZ#Q=W&P-fS>pbBRLEEDPPy)Sy;wD z+wpS^z+8sIe3k5vQ>^P64Q1#di_iGqO1Fsh0$(a z&v{gR)e+;5!^ykT#aYrpo69f7k4DnF7M+S%%`2tM&qqH^7`}~VwV%KKg;lE8%5N8T zt0^*ec-C4&plpEuJaBZe~4U z!v2ySIVPVN{32^7bkzvdrhd&StHhp{7%J!`sbzYnQ>=oD$tSf~R{5hG^t$e^F?PM%*kM3SDYC)MUm4 z9byy?9-SApE6b{ggr)6i?b*ZRpXRV;MxLpAM*d>QeTAL)eSWjbdKa2A&Ml|~y{yMT zD(J@5@T;iQ@4fu`dZA#`ziRP$5l}6LUgTEeFtP$tO@7et+PBMD>25 zCkVdJy-E`;y6lA8lwbVYsNyCuB#8-@!kugnIFGI6d0d{~3bwb0dVi4lw4>Kz=Pc7% zdvmXkWYy$mENd^pO4@^E`MPbAn5UAk0Rx6IaST~;w(=TZ5P8e|WU#pLaWg0Q{_mh` z##EhCnV}yn9vguTb>fxze%V~(Q|Uao*d2Df>R)y}WacdD_R&ndqq{J8ifMGkPDx(QuE_s4uw!~A14*vr<9Om-*7JR-Ouu5Gz-79j z@Mb(|jp^(6tz0(iTJiqE&1EAhg0tE$#)YbU{0#YvJ)%MJDr9l~-PTr~%~*LgxbgFz z73;fkRRg`ni}sv#Ve|u&i)KTA*Ss#diQ>nu{UIT=cm;D^?o0bxPG{ZB$_Ud_MCy!AeQEge=g#{gz zxwK0+kLJ&m^7>dy*O2@5iE4|%p7Dz4$!|zGJH1dXy-==txK~})*-LTm6|s7T2Kl9G zpw7YIN4bovZ>XR36=O&)ZiF`lcYFEzppLyR2KS^}?sDjX)~t-;@&mF2wwjdhm7V=p z;3cf5?Fg0)Yhw1aM;~Y392w81O;Bcquw=vVnCLw=sj0>R1P;7j_(&y%tvuW0}#<2eA7 zEboHG|0toQ#8lO1%mh9#qAxjLa-SdStwtF?|Wsf#`yV%WG*>AQ+{D{!n9T| zMQ^lTJj-8JWj~+tBN93O2?iFK7ob3=I}FBaxdQvu>+DCLDO=0H*wG`_WA^>%u9dmr zr#QQ|w0tNn$BJ3+xbIbc1`{T9Gx-Mg$q<;z3TkKpcx-0?~GID zD!*Ut;qQYBg$1J*nsh)pN!eqniMG-mX_zm*MUh?%uc0a{#Y?&xoaUpIg#4sp3z}iSmp+hTDUMMwYQ4 zLZ=AF{)KGxe7So-hMWf*QLmXClk!?FUuoeLHt2**aw*vHGM&@&Y|2h6S$_2(J>l?L zwk%0s^Wi6nh0ou(qF^p>HGjSi2-r}a30*2&YC7=H`2AH>6n<-m7jRcaEH@bUz z$vU=O(bmeF_hLYjhcu4n)mh&Y zI3dGV-TMQa0eZ5$rVJB;Rowx;Kq^Y-7AFRHLVa~~Ge--}HAaSidMaPK`=rb~&>Hw$ z;6VdejE6EIWz`*fF2>R06H5DsL`dMC;Ijq7JYs|<@CuVM10j3@B|(m}P|tl9u?I&f z!Pt}y-5i3K-+A6y{v?0XqK?`5Z^rK_poN)aM##C6!i_e8ESXQOfy<=9+5)qb8eGjF zg?q?TVfpWiet#mBwlyrh46K-6P)EOGiY>6ud}8F<^=+zW^NbwIkVBc%@;V%80TU>p zfPx3(L@jk>2Uan95U{seaPN#(lgBt#S6DJZKYsJtcT5EaOtXlsWZ*LE9|D;%S|NfR zvn;vXCAf54xeBOXo0uQ-V|!w+84Yk(EFArWGk?ZtIaIjTi(2}4ddG_2sfzdm{jJ@p<{xi^Kl^hA>InCVLKK@c#`<&H!wOuMkz+8D)UJFHxt__&^ctdi?{oj-OT_|4 zha95R<4|mItZ?bC0)sOK(KK<_5x;!LWyQSOXzQCMC`9D+Ov&m|+cVnb<&8UKphrGz z|04u}K+Y1mL!ECZG;O&;t0ItT?oRuSx_6ywMcv#h`)so*(lXl1nCL82HQ&$xgH@{JmAth%s>u?a|29nZa$c4d`V+$@jV5E~AeUb>jt+yj`HdGC6CNr^vdot_FqR=>gSEv6^w>>qgloIYTLSJsi# zlDu_@Gb)w5o3RK1{c?(awhQmPcBhP7edm+Ubm%N^W6S=a_cY^pH2c_!WsvcXQ`FD) zZi8KDs{z8uVsijR=}yG&yTh-DK+a=8oMC(^p2$iR_S4YqnmR@zvix@_CGfh|k1-#F z;3IEcMnk;+u196M3C&l^JQI4=@QTaBe^=dj?i4fU4_v>*I2!<@-P!g@cYa`&&g4FW zgW)O&_ZY&TL5>{V3_>X@kwh92a+JWQl+%tH+3RNzT9gIGv=E<`XGo62P*sF^k}!3< z+SlK(8SI(;NCbDA!j;o)0AHMnO!YUDUgn$};y9`-aPflD_{Rgc)eqaWp{6(4AUnR& zPKeEHfY0>7!~LK2l(MJ)4kG%l-n5`%ovz(ymw#W~xIelrs%7G))M|B$t>p|}M9}gr z>t*c!kZ$5axo|a@-T7ed{T~lY59)cgB9w64K-hezpU_;pK8Rs!Cy8f7vU5j&V*s?L zG9rvH+O9YwnS`7(Ue&f^I#8w^6T z3YG-o>ZHcei;E^Tw{IYGmphztDa<)ZmL<cQb*2Yl>b2CSnd&0tri0B2$u_vwUyW;d9I5z zc?B;ED!c=o8h{$waSNzt2Bx3%vE7{Kgrj;^SH9VjX9W78^Wqb7QZgabt4sBXzL9uQ zEz+Vm<7CgVRbY&&S3ce2{QO2aY6B`BpX@HfOiYX?jWcKGEXxg=Y}bQg$I=Qwv_~J`w>EVuT9^u(n`P?E zU1TG?C(6%+2dw}~;8Cw)FoBBYi{%d{Eu6;`{n@DF0>}I%oi|0ps8C}TKMeiFh!o>_W_A*h;3Wk|HIl>g+<}D`-*~y2na~0k^(YxGbjj1w{%N)=YWKC zcY`3^-3;9@(p^J$=P<*W|F`!(H|OR&-?y*kk_T98*89u1i`(c!@g34i$WF5Wnr<=s z^6FV>?dJ5-)TuB>2Bdj{iamf7I%ebUKjDx42<4^qgfT3sJ9Db1Xa{h=tF*`yCRju7Jj|{tGf_`D%MKs{Iyq?_$%_V(8n*1G zzBGd7G}LCG87uXkV}w^!_n;CqA2(jUSlmp} zDRy4a(J&Ei#z_-i_#JLb)~vwq!Fx3$DV+K>Dk#xs^mr#t!s%Fksx?6QneKE&g-pFX z=Fe(QLG~Zsfw~>OPVPY%nAaC!CKTKo6XO^!d0Q1+#6UnZbuiu0ZTT+Gr=Pc%N6-7t zT)PC)ukk~TM_RNSi_))8OX~Hqto!KVJ5#>f^Jy}=h;_xoO#fwt$%ujv+3IR{b-5uA zRMAexU1_EpJ?ZiKDK-1$Z3$wPV?#;vFONX8ArxWEhpk_`pKb96QfD@NN(BbhH7e~U zdH>CBC>;~59!ptrz18R@ZY~JdFAGWF{NeYkt}}WWyJV1LphW`n-bPu%2uzy7kil4B z;--F-;+%3^fFS4eft3)fik#jp=Q)zjFMq-4SY1864}sZ$UHkPX@35@VkQO_YWTPR5 z=QJpf3JFM3vX$)i-_9~L;k~k#Bb#kP5=x87U_A_vkHLU9DBAJibXC=2&&I38eloXJ z=^8s`Y}#Ktu(e5&4V>?s3`hc~C^s)Tb3JxLbT-A0*kb1lf;BJ23fLtXq1_!DL1ZH~ zjVs?Pz=(&7^#GitH5hyifJ`}#Sd<6j)O6ru@h-0S4;V)SzXPwjaFTEqsj%D1oL5vT zFD0^vp34%*kr)(wV%>zz6OI{s^hS`e;6`7rb3s*vHBql}RQjM+xX*YQ@UnhE_pe=gVa_`c^e@i}p1e?|HwDyX8Ntk?;@fRJ%UN%>~3k zy_?ZDegsk`e7orQH-6lAckVcHUYxuUU8DH*KeSM}3RjBFT9KC6nUF6&>96anfDEvS z3d=F`^o1(`lk`9`7yi z4FFCE(r=^=h-5Fivn&*u?B6#HL3RtU8XcFMoa+|sG><7hIi6O%*QfYUMdjDtE^G(% zy1DXMnWq1@z!&v%edp&oOa1k>`d6r28$^+v8xKsRh#42yCGSj5lK&~kI_dq{nh8#( z7VdyIqOy@j{>_!1eNO~iu}bOnVAiTNRWWxK?{3zc^5*_q(`<$Z9k-QwYqRgIo88YvBS-FVsb63_Ot@}9`z|_P;3SE_YTXhriCE{u73LB*2hIVrW~>#& zue{#>Y$gvoL=D`1&Kp&L%bT~L*q@(Ud42N~^k9J6Nfo8kbC^AE@f@81nWO2G$E^Yl zyt2Z)et+M!&NbE0;bW~hx>?pnwNtNjqXd5ib!9r1XQvP1$B2$K{L9R|tOru02>!1Bh6opLq=E!rFrhh^c~<+4kDH#@F#I{9StHHr)N zDuwY_ZLG|?O7e`__G?nr5IW}-54_#9X)*dHDeMf$Gjm*w`AIiJ&0N$W<+V%u@~xxEA1NgAcT9z1;0#va)x!=Wt|kROza>`C~FeQm5Y1$}??>`R@4$JFjPfzh#b(XM+5`fwBrG`4ebx;0PV`=%7kY#Ffcx4>l{=9+Qi zW@N`g;SpHMcs~Erox`F@B(rE(vPO(UXX1IXolxN-jngtDYPl`x)2WEO;N1Fp_KgGM zDY(gsO{^|{>7Ra&jRGnipgP~!GJRpl8>Dfxd}mOgVkbxn-A8+Mwk;Dg+m3Rodt!(4 zXq{B^d~WLq86c&*oCngNH_Z*SVL^h@dy{=`r!A0m23)exIR?J6qT zu3L*^7NYqmn~p3?dsOwf^;%T{+5v<>Cr;VSh4PsfO&uSaN3zcudO!s`=O;H4?U1~nve5{=dqSJx-|}@`7MJ~MUMd=?VOp}EaiH$xa44N!Xk;1lbm61>k&ot+Cl?bTY>Ru_)!s}zp> z3U}}N*qOkUf?xODxk`kr^D*62j}i+sDX$qurJ6h065?T@ z70!ObSZyI05}rg%Xb%%TEn%dNPNTZaIItd|#nx7%r=&Q*7WJXhJQA<(;Ex!?Z{?m^ zvC!i!#Y!ERv>z2N&(lSJm>7uSDkhMuTdew4=8`9@MyPmb5~LS{Hu4~0QmbGVzn)J! zI@27-m;+dplvmHevFyL}He@ly+%i(|x6$5?`u0Z3 z3n4h?9=F+HiINBM_1UT`X8WA+o6jH?#z~8qvT9<0t`Ochbp1B<A&U&6VE2hDJjx68~x7@3?@yTXpxE77J$1Vm<3T_UJj7U&f9cyv4w?qB!z%;OmHonu!~HFAGsRrU;Vz=qlr$Cqy*KGi};l3_`$ANcm-R%D%>vYrn) zp^tt10L1GR`t~-wBNlUJO+pl5e}g_I?;!p9cYxV@AYnYrTf6tPaNxel{vWw5d_*Tj zJ93jKP)}tMRuXwrlXTj6{s7&6cbawJr19#(YGLmOdcjSAYnqp2^kTRxX!Dw);l@{Q!EQZBki+l0g z0y3%8{wo)=VB5ZNs+X&7jzA4cR9%PTdZKdEpL|D20^wB6FSLc>GWa!6gqLa|5oSzr>ElI z5#!cJ{5~%!eRTUVSif!)T34CGZC8+c&q`b!Oaq%b7T*hCCx}e?@n+m9N(t6r)fe?ARykPKsWY~^AKFy4hwAsIPyjy`I>2o?y#Uxq<#5eRC{D9 z`^MR8V((A8_s#tUvVf?;`w>5z5l7^zN_XUPD4M+3L0``WdO*6FWG0kHUa#8-e7c7u zEBHQ4-Q1@BgFbpeiiZlKVurOlZGX$Prw7#Wi|&G`^RxhfEuXn$J`RF+gQsFopq^#e z0=p33G{v+K85u7#BZC#1!(HwLEF+JlZ{wln#D?3W_iD>zf|CWTUdPLfX+d)HD@J?y z6U@nZynkfIU)GwlJF65DEJ4mmS7~1H%a(OCAl7Y$;Ge0=(ewXR@?d6$Z!Nr9&o3Qh zm*1%~>0yT^MOaVVR{yt_hip}-$Ra&1u8~~Uox-K;bdty+Ch8b3@KSU{ZmX0V3RN|? zt0dnSI168M8HrD}khBqG74O@;v{i2fQsEoaN2cd3X=*B>T0`c}rYN}!lm8tm^#4{% zb`r=@yQ$V(cQybCF>RZ@2}ucQS?vDIq0fhqH=W)Mb&__rvF9DWHDKceuu?&UUvhj3 z!r^B4u9EK86b*d%=CR&|KAg&FW-Xb2I2`?mBcgiJv>A1AWF}Io1G=6;1F&tlBR8@> zq9vdo^%dkv-VWE#0qd8|1wZM!t+;F_R=SIO+>hve_qhx9Eoys$`|A0?+*XwlXE=zQ zWn(~lMq_f)qxqEMgN4>nLfCY*MtiY|m50}C@o|`j*(sk|lRZ~t?Vl;$UTkT?M*TbT zyv->mcI$TeMG)mUYR`D}9Z3AVJGnA);H~Q=ad}CT^kIVw74~>`ShEAm9_|wVp$EiE z@4n*{o^?^a_VB4A{kwDf4?sGo?lJpmP9ag`v8OQ!c~y{m?&X&OYGZC!cjp(~L>)Pg z<)=Qz_fe;JQI0ce1GwGMw{5#3iN2R3U>zS=qtC!;<@p2kR>4F6+ywx4fZJ003^zJvgqX+Q&T%^bqy> z0_Qh&GfZ2gYki{?RPN6o_*|u%trPuF0Z;xS>EaiWxc=!zR@7e}0lBpgIJaz?F zHBZ_uR}dG&#?c~rtU8_8g2Cl*dyfN^>;ph++mQ+269BY7m#A&mUcdf`RBL?h{Z5}c z{FBv?%Ag3-spnkg&E#aeQgkA|H`7PFbVj$p?ryU;>)5o*Bmu*oLX3auDr9)xf~xp3 zNF!gF53qrj3_m=#mkiyr&K^XOI1mqy2I>sT*}!S!SBmrWz-LYae_mM{E(pK)Gqi(7 z@%rr0ChtZKGppxc%-*K&>45iK+2&0*F3y$? zvWis0{$l+$M2LqOb9nJCNt94po+aa^WD)Kka((farw~Roy^w=DAWQNw4UQGM|As#V zULdg9+8vFwt`iQfF+-xzzQ16o^>1?-gHXiP#IHra@nWOHxhSMiXVa&v*-sPkGCh&; zF>Sm@Ed66$F9gMyEsGD*F47b>%lWFcuF<30w4h%no3T;D>(b*?oHadHsR#Zkv*71o zKvAIN**}A?>~qYY-3ZmD;0wNnULw!8AgxK*OoKh8gV{D5fAd~w8{WUWZ!7KdA7EBYj($larXM%4Mb6XqCyNx4hyc`S2&J*YMeh2fZS^6-?}`hA$v))^=(`B zk)0L#UXu5ar+X0Ll&fY9g(s`#n}|%>et}#%vh>d5Yx|VLW#bc91KIw3iG*2`j0&sN z_MZuwFxcA;jTNY|19w5r%WI&t+X>MtnHEmFMdp^3D4EUc9T$k~TQbQRw%G1N{U

    A~(HN)zDSg*m)-FZcxVxQNeI?KmgXR|6WgGQ$_L;RCOxf?(ll z|0p5Jb`J&M@ABEeV?hh}QMyk>hQPJE$4sf78sfnhF1Ouaw)R~Q9$Crqgm8NT-ET37 zSloWJ^Ja3a1&8%T)KP?!7*;U0YMWh!<2(t-T0gWa%thbSbd!Z{BnGCXpphXn@8<7* zEcrNUO4GgY&9Cc&+YjN=W{%VR+Uw1WR+&7 z^}73u=Gx1tim(NH1AF|m)*^-M_m-q}Lk~Cun zY1^Rxd4Kt8=05U)Q{;%Xz{ z3yMm^_gPd$#6=+UK_)fi#s8Mq;(vw&9VOI*C}~98ul!jaqt2Rn+YLUV*+N)c`EcZS z?_B0YQ|GP80|)d3pGVp#N%6K2G2PYJ{6n5UurzgWi}$S?xVr6e8*urVs-8&sq4Nj0=QiYmnDAcxCKMp^jqM~jmech z8<-<=-eYqKl@BGm$boQ^aH)KMX!|I&c02m%PC+OOpw&=YAm*<#lV!`IBT+7g{tUIt zdcrLPf_9*K+JbbxS_>-o3N3qdJ9TzODD*-17YAN6Mi0_JzkVmqz6pcovx_iJzez8c zdo{OA`T7zz<(c1cCk|kp)AO=vKCEaRK7CrHx*PdwHlFp-_uLPBmKk?eGlA4sOy^EW zvJULMV76N3Jr!D1u=#;FEKQ~&x zJvO1^U1j9-`bE`aTe>ws5ul+08Zq~wsrm_W>3E^C`BksgLZ?_d9IfW3uFJ)*T4hTE z!2xbLFE4R!CF6)f;h7^t-EIZ10%SeNJ-M;QqTKG|9l6%jVCW_(^(okIZP2L>r_mmW zmF*VzEge#)TYu8Dg<|u%=eQTAOqLH?w`+5EZ=@#A@SkP9nA1L=6#Y0XvJqw>Ty$(^ z;VP5wA+aU<*#{+Wx^z#+kV(KD?YY5ktXiGD2x^>WMjese&(=Ri38zYU<8K&q~Pa#JU-F;&pU- za$(j$Hf7T&T-vrL4q&SEx#mq$Z@);~ChOQZ9O*#x1=dEc|n@-&n|@wBOcuW zeFtX-?BGU&>syWY{(m!vo8&fGa?ukrSX~usnmX3`32cCkecF?(qQ3dv$3)97x4K+82tyeR;dGD;F)|Gpw)I zU7?}SkUWy*JjU&VNmJ`8Ldi6j(N>Tl$q4K!?};rr1E&IxZqz3 zJw#?6fCE^(I#kzMnJjRWRAZ zUk3-Ker0PfBvRllyH!n2+I)*6EwT9bS5oWC@GZ_oq`JmTt&XHEvwf8;0D&84asmbI zrag938iaQd0Z8LW&$*}SlK%t2`EzSvHsSbDbHP@h>*5eZPC>-|W(&oe z-C11NTq%Kbvt)<*z_mJZYxYYQ48{C5$L(@ z`QVr6>U4`PdX0Wu;K0+kpUrgt61j_Gkz`QIJD7H{;Fv!s+16`GuZY{WyuG&kY!$*B zkepB;NXzZD-yAYh6A3n}U*X66VOj?#TG;!$%9`dG`afTP{|>(DOb+{uBrE}U>))z> zH8n62j_V*v%fA{-;Xowsg%g5Xd#-~b{Knce6GN#bbgEa{ApK*qBcvY9NECQ>_Pb|$ zCp}9~?;f+8=CI7Ne+>Ci=p+E24cypZ*yT+>`9QH{BAE?lf?N(DA+kAiH73g;l3lUhb0* zOLsw}`^54)8)95i;}rs`{TuPgo#r1e0_3MEZk+|lS{njT3oic#I7*`H&)W!#wvrs6 z-A)kxC~+D1L#~`|VW$l42uaN`KP@eXRp$*n(&b(5jwfU8LSWXZhWt+b6{Wg8c}R0= z2)vKQI+EG`YF^1o5W4yIHljV@-Is`83%j4_T{i{1@9g<~j+zp)H$P4jn>d~MjI+%Y zh#Y22TY=DT(}eE@=9l47QhIGvN_E0RcVa?4}Dm^TSEN@!iTJiE${#ed?W2PfR~T%i9&&b%nK# zk%?SPv>u87X&qj03Oa@TdyaoY}VJ8`M}#2}x+2=STa{Ks6i zuly*SpX5s$Qq~$k->QkP<5!(Iu}L$*%fD$t_a?_RcJtkPd&Qm$h=U)OTf$ikAyru4 zEIS%uAt1;C7yi6D`QtIcisb+uS@^WErjR4l1;^&rjBrpuu6hYqk5Rz&NQ2+fm#+m0 zF~0cPW!F;F-T6<&(gcspxJLK-trj`)waH(4a2^)QkS1(m(t>@@Zl8SaSCO2> zO|CY5of+V-E|POb+=8F%L^Od{zi|?M@1haa?Wh*uPxU{mb1eEt>zLBZ@iIO{P!-g< zDU%(+Rlxg|?FB;HNT(VJYz3a#*w)w9HL_bI+|xaH-l2_j(-fUsfdgVY&DXpy$AAk% z@#+AgJ$}vPSO$1ru7=1(;0<9IE9dHt(^GD)R)?vCmWtqAjehvM&9pHe{1tzyZ05+) zzFyyW^=0v~8;MFZr%mDndUzd93HuO~A=}RS56B};P;jG#Rz%XU@jh;L*Q|kesUme| z)b8_jI{F$hvQmQLZs_lSTquDYT$gc!Wkz6h6CIr-r9X@b%I641@~Vq?B<&@GEsfM{ zv@L~Ceomg=;Tbwn7fuduSnq~9uqytGTRmv% zQC?B%_P>9Z`2myltpDD<_YpXprhEvmLh2+Uh$qFpwp<7;PpxCF&d|rA+(>& zjuGOy!#Q$2r>j1mDPlFZ6LS31d6X6B78()}T&hCpxflD7qxlYGf3d~AEe`N>K$g?P zycy_p1lyi*^P8eoo$U4PkYv5-K3$@(XSShXX_&JpG=^f{jOZh3GU!kNo$L8+(JL;= zSP+;qX5_>|HkwIlnU&etXosR8TP%(*)vWacgS4ejdi7uXII`1QWbtS!DLDIaPDDxX zVKUi~P`&M$9|hRn*RYY55`wf?BfrKUA&GO~4Z)EB9N?hEf;A67NVhII@s`AndQt5X zVKi@ZmHin1v~VebW#=(+$`L!5DAF_|lZCEw(#iEip_3kU`)LWe07HP~@5SYaa5HXq zPg1$_ozLtU|NCPXELMaCmG^2O5lI~<^~w*)@d^BF?^PT_OI}A4*mBmT7eVwP$D#GooOV$e~y(}3C`SU~)$`oB1j~eDv8V!OecO9*Y+T zspCYZeL`oSi#*>-q*M!DQw2{?#OFsa2@=!#%R6}ES@A^Q6xo^z$Z;99I-V^s(iEfr z?$hlO_ukmwde)wnXeFS$zkat>B?$dGDIL~`;Hrn4^ncAD2?e7PXm;!^_vbT4e8Ze} zFW6*=*rkoZoo=+#7r2?vD|Shr<#IXTs-7uSpek-I-*F=i4fl1wB zf?WRZbnpx}Dj?9<2($BQpZc)2V2Zn{e}`UHLTn>E;V~D#ip?_wC{(b{kS95 z=Zp$cM=^2v@*DM2Cty2ljFFJVzNZ#1%`0mfH|sOGvZblaM1o+MnU{o|!KkN!a{B7_ zeVv3B>q@0f^`0hEckDLu=v#stwFi)fww}Ml za+myjJCxp7d*f`{U(>Xi0?(s<(yYJY`%gc#IiFYO#;G-RrT*Y5|Jj>C?!FT+A{_$nlnuGFZ&;`u8fe(Bau!Di zm1r;s+>zgeRL)N?aO@e?oR`(3e)nJtCb%xyylcNjz__qOr6)%{MXy=U$b+Y~-V!FG zvWsC)Gs#Mcz75wjQY@Ov;hDVLKKoddlaS329IckZsK)<%XUru3zzy-a(WrB7FZx^Z zwvBJ9k17sDSJ=a|OLj_v5ZJ^69dMTE3sTCGG-p&Fwp{C=c+Xz!b$i0zoF^4eAJ`7N!-8j;?QT^NUFDPu9{+PP_t8>I%ZYYrWW(in~!=AU6}_&Y(zw-L=M&-kIOS z4h*mTsil+ZzCrwik8V|P5LKf=|IARk%bH8ypSSr9R>#M;hFzlB$1l*d-9n}JX8L86`xTNx0UnEu z3U&gByG?7?G>+{T0>@WV7Vrlwma?1QT%i6p5BWky0Mk2(G;E91A z3sHVhHp&n0KPVzSMT?R{Xo5dDg&8fV6|eq1cK%4_*y;~L|04X(HJ z6g3Gfk|?dGvS9=_K0)-&5KPWk)*Y*9+N)CaX`nI%b)YU3y#cog^U-vN-3y6=^CU;f~SQMl8RF4<>fl zjEN&&it@^Y+0RmrBXXA**Iom14MbIdspyg=8wRyIV?|bT71JHMf}WRSy!=Z0@6&`V zYRrYt*2TD-_Y_Hi-o!4avyo{$RuWd12 zcd<3Z!P>H%UWhdF<+L_;kHzK7?B~3|`I9BwxGgO!$Cvz7SQqRgtiGP6aH^0|US09jX(IXLQ-uV*|lYm;MhxhJS=TpKP6%@{tD)UP-2k^ecO@j)|AQey}#IQbLHF{Z#^lP(*s4) zxwrh3VfWlhj{dX4zh9*f_Q?gipX15DP5bb0+5xMOk8kZZtu>V+sg1Xo|4UKa(xSzr zjC^FG=`Ygs-BzyaocH5Gk~h9b>D{$sZc;vvD$MXCwb`;%&p&HL5{c%$Rfcu9$v1>J zNd1(t1@0=ZI*dM?RcEu5G%oTaL^|qj2&SpVR_o02MW7)W`gDF0OW~!@KQK_d7EHh~ zWU7Y(#^z*QFgpa_i9p7f##ls1?yl$*X1zlNIoKE3fZsX+DKetb&n>pbKH}$Y) ziMF-BXWq*m40y%P+8Lmm#(gn8K%Jm1IPqYvQURY{HYXeY$RQ9mw~e%kLp@%GtSU)T ziD{7Cne$P0LRLdF%4Sk`Mb$p4W~Xsm5yE5fPm%J$QxSPqV%1Z`aG>j#L6k~9Jya3g zMxRhTVU$XtPZOC$%>Chl9I0u%dW`xU-e=S>ca%(PBgHI0^Y5yOH-Pi^eTDQq8F(d8 z1Q)+WP}6*=_6v#V{T=E)JC(Vp%g$(UnORRqQw({HwSb) zW&B_kAGYe>oV7bu%WK%YY`bRQ(|RXQfg;(7YmZ9)AAb0i;*Ij@1}Ug)UNksF0(UwxA2JwHt_PL&^Oy zxUo;#UiC4!qoJ4el0(4=2hURO)Sf`)Ba@W)a&d54VpxXmgSId{9 zIZ@gG`}&~PA0mN>ruP?ZmYNp|b%sX2X{sEOngBLbgNVQc&$?guT=WWAqNVEP1&yno z>G*t$-;C0*Fa4Y;C2M;8?=j8iblnOJGhR)G#&hPh$CO&N-_L4uSwLyiMu%9wMG*6z z=vponM5-Eb==0hxf4kfnE5re&3>&2McxVazWVG!mFm3Bo3)_K?iDWAZ?)Tysm6S-c z$fxsU-d;+0?&l}(BN0bT$CSKqB7UMCp6sSmS4M8i-|VNOLg#fqbW}(Jm)&ZHfb(7_ z27AE1KW4`WfnSG&)9(1E`DC{5%y2dtWj_l{_ziEeQ_X@N+9l19{dAF14bK{Q@594c z&$duz1sJqiXCPwNu`f|lQ8B(pvw*yrM91JKpNxnbx0Z|H(hIV*2b?|0xu<=FjIwE# zyrmK~X41h>?qEvCS8$|ql+Tdu9X8PO{G}E?aw)vYF;czA;5i2}J+{3%snXOyz^N*t zLZyX0uW}?J$$q_-?ZU&PaNT?FJVYmAsr)6V`^a#C@%2h(_3W{$}Pk z8@9f^HYdRb^+(#l0SNQ)5B7TFo^5j}@;-+3jCIqy#JmHmznpEOZkzEY?B`+T`>$n5 z-HL~$^B>M5(0ZrEHnAiM9JMh?ll|>t%KkW6btY+;aQyGxLlVE2o{AokQZLQ z^%;Qsw4ss$G?G7AN5?SOpcK$AM7()JnNi#2)5ZgAMqFR0iHDd%j<5PmxzZ@(1IDdI z6FoN){zxhLGK*HuxNa+xPh|B@68$hs}Ov zrGhU#L3QTmAGDgx-!o*F7xL?1y~Hq|KSjbGDfH6>y-RV2PoWf z2D05n@w`kOMe*a(3`)_}ufEV#FzMMJg>JXG#Y`vR6vf@Ku;z8$hsbz>HFQYQ!qgw) z&r(-J^>-|}XDL0la2?KPwe2E9rHfjoij-c+yKj6YS@2-W^r3_xW_dB=5)>2BF%-W+ z#l-wa)=oR(qkuaaQWv7n2%i?r=0uBzyLdBKOe<#g5S&v495d>MQ=k-5+8P!Ksbnm=6aJ0p*ADXYkq_6qIdfX}&;=dH*lzhPv2osr73Goh|TE(&hPKdL7FjMl<8#OirW9~eBl zD6e+y#q-*4SA$D&)y~aE3AG?z{41`D7GJ-_;Q_;Ge~XG_{8-gSJP@rCNy;R$!N}3- zU*0oUK9=wO#$h+k{Ir3^zUH%3?!0Fh>@-t@gP~Ee4N>A!-LEkPt*ck+jc^)Zqn4C| zf^Sl3={%m!mdSW+746(#tax9_p-D-1j^0qP9Jk-wEEsGMGAbozzBxE^xL;CdBA+I-5jYTQFp~4X|kqHjN5oAsu|z^I zo9@cMGiN_w>We9~ z=!1&BfXash#o%{DVsojuSWhERLjryKXQVxR5mBZtq!A?*!>B0l`}eEIe^4~_69|5)KKlRVUX zq74m;nD1wc%b|pB^MQ1$t4%RGgQE3Lyoq66C&B4;!K}1`}uiu^1p(d7vC6SCCa@?>a_UtR@;U-E-`kOqg3&-~x z1bCSd(P%vp7a!q6PmpS`zU%}RyOqj~gW7jvNO70s%Op=WLhiBUwud!;f*Bw#D=u@= z;vbK!R3iiq57*wJZeG}nut>#;hTW{#3hva&rCy-G@a%DDSpz_9DQuUe-z!a7N2xD3 zUR)o{gjaMt;GA=k54q1F&ILRl_RaWym%gWPnO3?gxAPIhD@)_Ck#<|X<`sCXqA`aD zUB~^z-F@R^s88*1_;{-K*=g52vCPhAlgxQm(<}^i7CA6rpQs6g(~8#99gru(Sh`4d{A=`y z{laW|DQRMn*f~pVn8&TITjAMD`QoH*88`LLiLvgh{xQ1PM?*&Y0Qo8_ zRTG!_9~@lVsz*P$g8FC$pM~|zSfr`Ce$n>5v=VkuPg z{e?*?7ocGQHSXnsld@K;>#=!qrd#fmyog#H$s~cEf$urAug-LgG!1C{l6&Jv#6;fh zpWi(}cubbWppQLSOvr#LKv<4lfjUT@-^SBsz1P{OkSD^Yo~< zrT9yFPP)JfmaFiQT_5h`|18g z{pPSFI)!`AAP9bFHc_5Y^y7|vKuTja=EwD$xP&G{a>#)j;Es|3yi9L(jr{L~+u*K` z0QDc@RvhvEa$j|!XQQ1U2~?9+y0vAi?}qT?9n>Ft_XEKoaJ8BtupZ2 z3)Mv>r+Rj{14Q^v+Ic4-_JT!1)PkzU88W>&%Ju3cb~IZ}@sXsa;C?yp8nic8n-(R{ zCY{H5Cslv*N2y4tEWQ1SW}Q7Qh1+9jop?#l`IXR0HeYIyT{iGv(3wKjUQ{`yiD+5L z*i#(LEhhe=S`TWe96c57^Jsj+hLN8s==K|Qv%v8B1OM@&Rb`~(w*(mC761*C;dSKx zwCc1xzWKGb^`u4SOteN0SWuUDemTh#rlc}_ISb(2z{{3a=PUl3PtE&3|tf-wgjY?~pThG|-(GT5R-)NGkdK-YM9^#PqIP2wR~L#}gfw zb71Z#_BrzTvxJBJ^mwP&*l~Xf=oHX-WaIq6< z9BfXOo39YCQyC*^7ZR(d%J!8jGxu!6S;3S&Y!*BtcBZH z_L~(SXCGbm7SZA)u*@TWAQAnJ^j91q##;`CbQn@C!^2PXbUu}*;9D@8fYSL_pM1#e z5(`q~T%9xTJQ3W@$|h;th1bvZ|8? zQ67uGLBT}D zA0VsUa2JrO-8cJ2_&cn#F%e21jktuIsAl^XXqLLS7AIdB*5c+$^I_=^eu!zBaU{xe2dxE;_1CyOM zO5zwR{k5{h@+zn4>|G!s6rGA|sDMu`TNcozef0+5#7@FfPimnizq;yX6lKi4x@u9M ze|N+?Xn=43THnkP8=08{mBN!go7nUHe_YL?Q!W4h=>quwqM;g0k=Ha|R-EjHc)&QG zkniwanm0rwiqs6-sP@BGdwX>?ebWVVqHbAzka&;rox{BU$i3=_kUatXQgVvD-#ATzCwouXt>iJBP3`I%6zT%zA>bGODVi3Q#J2$kY@TYvDJ?OHOy%KjdkP z%*E+0*_C8YSg?<~-n&#M{k9Z|U^85`$9RWljxp2v!;~WUr)tXEVGPMPKPkLU@P)KE^F(zQOUR%$+;!4D<9 z)2uahikp&b$}bp88%CrGdA$C8Fh0-QFYSmInBHhEG1Klj)dBMf#n+R6>s6TPT0;9# z7||P_L7VTz(A{%G`xwX73SjAon@)N$pNGa_-}!mbG~MQp6{mV%b9O1Np}oxf9VQ`5 zg7i1!3qhF52@#6-0o`x2{2ug=T6R$<=|O{xJ660i#U#wmu6p~;dl>z@>KaQ;mNn7N z#)ZBuLPjssbqVAapY#Ly2VH^`0CK*O*YcSEHSmO$H}+97Nm96Fd{+~7so%}^iqiAB zCurHt^4h?Y^an^=N_by2BkSSLysV zPEh1EYQN@VQ}7wS20DrW6{e0g`{f?)jW%;m9XQhJcRr&lF@f|gk@W)VjeCvRt`p!H)FP63^Su;pK=fz5vY98 zKkBY~_46R}d>@yfI`-lnUQl>@UplvDSbZ{kR%bL7TAb*Q;#l7J_k306<53i zrt_m3c#B?F{2$idvMbIgT@!``2|)wFT>`-!3U{~QL4v!xySux)YjA?QI|K_FAXuQV z6jJa$={fIA_w+fRrhh=KRkc>_y|4SSJE85FffG5*8`eI|MsGiJ{ZT$FtfZ-Dzd@3WY#8Y}= z^JXxtFqzUp7?**!*j_;533qqqohPLOtGDMU48}(JA(s2204nd>Tibg@q8SqG? z*^Yy#rvc)44br-ULe`{?!)1V*Rk7kLpe7LUzC2xf%-$A!;Tb;)u2i*LC>duVV;sOr z*%w4RRgYrs$s=%gStUZhsbQaG!TpeC9LJ+QJ*1~F!-lh*?l+Act@g!T?|a=B+l(@$ z{6y{VbEt;Rn9U_UR;+iOd8K>57dliEsH~Q&u%TC9^~HP2vJ3fsOWXHCTW$2`()GL| z>5b3H>7;+*3wSBrhY!70TYWeZA}!mvXwO|KUP$7MJC35SEAnku!NOdhOZero>8PLR zPuQ`(kU~p3N8Gk85-$K2M`*h_!Y`Qrn0bW&1B`4vHROSqv$12lK_eWqI=!F1!9981 zomdK}c*>^S8?|R4?$9XYO~oU7k2!N$^rh|(=<*tKh&3Heaj}DqVHRySQ`9npn$M0g z3fhx1Fwj#J;L`|3*~=*J!Cp&c3fUid>^8qqm_vqVyLTP|yO2>)64llLm_u%5mfvji zfsVSeI0(T=tYFi{ol32n`Dd+=iWX5zW!RD)j6f8=efy#3X}p?`%9Bg_ahy_bc#S@d z%m};B^XoMTq;FMx`1r+dxTFE|Ga-z&wN+rHUuBfcT^^$ZYYX>(MD>7`GO(5+qm>8> z9*2cyMxPMabuE?Z#eN-5KZO3v04r8a=9GGSk}+K-a4Di%}7H=FSA(5Se4gz zz#ymvnNIS@uog>;3nz&UGfp57?^~C!At?oV-U=4}((n%%cy}q^>2@sNUFH1_Q<_>a zOIpc+vskOi-1$Q(XGk|jc}P^%eCO?{c%D|(tPG(-7DpQEr4_dOdO>m4#Azx$P+p{F zoh4w610X}=oGvzrm0mzca6R4(9p*qt#HEQrcN_yrsyf0Ws`D?`8_gLw-eRzc@QWpW zG(|&P2~vqExcQ%HCJu=v7KuewK_xWO%E5A_K=<6AGk
    kV>R=-v0EEjnM=3Hw@zrY`N*;_S)Ees)#X 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 >^JI0-8wY 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

    pTPGW;O58RGpLwtH9m{CROL;Su$u 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%0DY)A1NVZKyAg?zl=Ug%U)_5K6?D`~ek8(+7^sL< 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%0AuXeBg6_)%vSH{u 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%0D}zXrYBmMZqbvAUu528>?t9y{Lk;Gp~T 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

  • sA3zT`ejQ^TT=ey3Rjjcfaz8Px(k?A$<*$Eo8um2$+r?VC>5fm$LSMD> zX8C`dU6_#?^RJd%kV?B&QE@pB@@rr&(pc<8oSnAB5SR~ry~ch|g;=sMEH(I8(xp+GtZ zh|Rnbt>nQ0!Qh;{=S00@GNh&`#jH7?zKQrc;48{e8jl
  • z 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

    gk$v{zX48fy<#XeQ$l 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

  • HoEDmf>Xrj3Xs-ZCvu-z4Ee{cShw2RzS6 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%0AyW2iCGfA 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 z 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