@decaf-ts/integrations 0.11.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +164 -0
- package/dist/integrations.cjs +1 -1
- package/dist/integrations.cjs.map +1 -1
- package/dist/integrations.js +1 -1
- package/dist/integrations.js.map +1 -1
- package/docker/mailpit-compose.yml +17 -0
- package/docker/postgres-compose.yml +26 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +12 -23
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs +26 -25
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +12 -23
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +11 -16
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -1
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +14 -16
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -1
- package/lib/cjs/calendar/environment.cjs +48 -0
- package/lib/cjs/calendar/environment.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +338 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/index.cjs +20 -0
- package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
- package/lib/cjs/comms/discord/DiscordService.cjs +318 -0
- package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
- package/lib/cjs/comms/discord/index.cjs +19 -0
- package/lib/cjs/comms/discord/index.cjs.map +1 -0
- package/lib/cjs/comms/email/EmailService.cjs +376 -0
- package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
- package/lib/cjs/comms/email/index.cjs +29 -0
- package/lib/cjs/comms/email/index.cjs.map +1 -0
- package/lib/cjs/comms/email/mime.cjs +225 -0
- package/lib/cjs/comms/email/mime.cjs.map +1 -0
- package/lib/cjs/comms/email/smtp.cjs +204 -0
- package/lib/cjs/comms/email/smtp.cjs.map +1 -0
- package/lib/cjs/comms/environment.cjs +79 -0
- package/lib/cjs/comms/environment.cjs.map +1 -0
- package/lib/cjs/comms/gmail/GmailService.cjs +235 -0
- package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
- package/lib/cjs/comms/gmail/index.cjs +24 -0
- package/lib/cjs/comms/gmail/index.cjs.map +1 -0
- package/lib/cjs/comms/index.cjs +34 -0
- package/lib/cjs/comms/index.cjs.map +1 -0
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +325 -0
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
- package/lib/cjs/comms/outlook/index.cjs +19 -0
- package/lib/cjs/comms/outlook/index.cjs.map +1 -0
- package/lib/cjs/comms/slack/SlackService.cjs +264 -0
- package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
- package/lib/cjs/comms/slack/index.cjs +24 -0
- package/lib/cjs/comms/slack/index.cjs.map +1 -0
- package/lib/cjs/comms/teams/TeamsService.cjs +212 -0
- package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
- package/lib/cjs/comms/teams/index.cjs +24 -0
- package/lib/cjs/comms/teams/index.cjs.map +1 -0
- package/lib/cjs/comms/telegram/TelegramService.cjs +196 -0
- package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
- package/lib/cjs/comms/telegram/index.cjs +24 -0
- package/lib/cjs/comms/telegram/index.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +274 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/index.cjs +19 -0
- package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
- package/lib/cjs/devops/environment.cjs +43 -0
- package/lib/cjs/devops/environment.cjs.map +1 -0
- package/lib/cjs/devops/github/GithubService.cjs +302 -0
- package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
- package/lib/cjs/devops/github/index.cjs +24 -0
- package/lib/cjs/devops/github/index.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/GitlabService.cjs +282 -0
- package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/index.cjs +24 -0
- package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
- package/lib/cjs/devops/index.cjs +28 -0
- package/lib/cjs/devops/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -1
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -1
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/io/airtable/AirtableService.cjs +266 -0
- package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
- package/lib/cjs/io/airtable/index.cjs +24 -0
- package/lib/cjs/io/airtable/index.cjs.map +1 -0
- package/lib/cjs/io/confluence/ConfluenceService.cjs +317 -0
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
- package/lib/cjs/io/confluence/index.cjs +19 -0
- package/lib/cjs/io/confluence/index.cjs.map +1 -0
- package/lib/cjs/io/environment.cjs +74 -0
- package/lib/cjs/io/environment.cjs.map +1 -0
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +275 -0
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
- package/lib/cjs/io/google-docs/index.cjs +19 -0
- package/lib/cjs/io/google-docs/index.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +288 -0
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/index.cjs +24 -0
- package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
- package/lib/cjs/io/graphql/GraphqlService.cjs +143 -0
- package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
- package/lib/cjs/io/graphql/index.cjs +24 -0
- package/lib/cjs/io/graphql/index.cjs.map +1 -0
- package/lib/cjs/io/index.cjs +35 -0
- package/lib/cjs/io/index.cjs.map +1 -0
- package/lib/cjs/io/jira/JiraService.cjs +354 -0
- package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
- package/lib/cjs/io/jira/index.cjs +19 -0
- package/lib/cjs/io/jira/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +253 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/index.cjs +19 -0
- package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +261 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +19 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +205 -0
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/index.cjs +25 -0
- package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
- package/lib/cjs/namespaces/index.cjs +1 -0
- package/lib/cjs/namespaces/index.cjs.map +1 -1
- package/lib/cjs/namespaces/models/credential.model.cjs +115 -0
- package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/group.model.cjs +2 -0
- package/lib/cjs/namespaces/models/group.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/index.cjs +1 -0
- package/lib/cjs/namespaces/models/index.cjs.map +1 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -0
- package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -0
- package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/role.model.cjs +2 -0
- package/lib/cjs/namespaces/models/role.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -1
- package/lib/cjs/namespaces/models/user.model.cjs +2 -0
- package/lib/cjs/namespaces/models/user.model.cjs.map +1 -1
- package/lib/cjs/namespaces/rls/index.cjs +28 -0
- package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/principal-resolver.cjs +66 -0
- package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +269 -0
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.constants.cjs +79 -0
- package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.template.cjs +719 -0
- package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.types.cjs +4 -0
- package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/session-binding.cjs +70 -0
- package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
- package/lib/cjs/namespaces/services/credential.service.cjs +327 -0
- package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/index.cjs +1 -0
- package/lib/cjs/namespaces/services/index.cjs.map +1 -1
- package/lib/cjs/namespaces/types.cjs +6 -1
- package/lib/cjs/namespaces/types.cjs.map +1 -1
- package/lib/cjs/redis/adapter.cjs +7 -1
- package/lib/cjs/redis/adapter.cjs.map +1 -1
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +80 -0
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -15
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -16
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -1
- package/lib/cjs/secrets/core/SecretReference.cjs +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -1
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +28 -0
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretService.cjs +420 -0
- package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +25 -0
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/fs/index.cjs +27 -0
- package/lib/cjs/secrets/fs/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -16
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -1
- package/lib/cjs/secrets/index.cjs +2 -0
- package/lib/cjs/secrets/index.cjs.map +1 -1
- package/lib/cjs/secrets/model/ModelSecretService.cjs +335 -43
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -1
- package/lib/cjs/secrets/model/Secret.cjs +83 -5
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -16
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -1
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -16
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -1
- package/lib/cjs/shared/environmentValue.cjs +24 -0
- package/lib/cjs/shared/environmentValue.cjs.map +1 -1
- package/lib/cjs/shared/http/HttpApiService.cjs +190 -0
- package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
- package/lib/cjs/shared/http/hermeticBoot.cjs +150 -0
- package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
- package/lib/cjs/shared/http/index.cjs +28 -0
- package/lib/cjs/shared/http/index.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js +13 -21
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +26 -25
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +13 -21
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +12 -14
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +14 -16
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -1
- package/lib/esm/calendar/environment.js +44 -0
- package/lib/esm/calendar/environment.js.map +1 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +333 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
- package/lib/esm/calendar/google-calendar/index.js +3 -0
- package/lib/esm/calendar/google-calendar/index.js.map +1 -0
- package/lib/esm/comms/discord/DiscordService.js +313 -0
- package/lib/esm/comms/discord/DiscordService.js.map +1 -0
- package/lib/esm/comms/discord/index.js +2 -0
- package/lib/esm/comms/discord/index.js.map +1 -0
- package/lib/esm/comms/email/EmailService.js +338 -0
- package/lib/esm/comms/email/EmailService.js.map +1 -0
- package/lib/esm/comms/email/index.js +12 -0
- package/lib/esm/comms/email/index.js.map +1 -0
- package/lib/esm/comms/email/mime.js +218 -0
- package/lib/esm/comms/email/mime.js.map +1 -0
- package/lib/esm/comms/email/smtp.js +166 -0
- package/lib/esm/comms/email/smtp.js.map +1 -0
- package/lib/esm/comms/environment.js +75 -0
- package/lib/esm/comms/environment.js.map +1 -0
- package/lib/esm/comms/gmail/GmailService.js +230 -0
- package/lib/esm/comms/gmail/GmailService.js.map +1 -0
- package/lib/esm/comms/gmail/index.js +7 -0
- package/lib/esm/comms/gmail/index.js.map +1 -0
- package/lib/esm/comms/index.js +17 -0
- package/lib/esm/comms/index.js.map +1 -0
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +320 -0
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
- package/lib/esm/comms/outlook/index.js +2 -0
- package/lib/esm/comms/outlook/index.js.map +1 -0
- package/lib/esm/comms/slack/SlackService.js +259 -0
- package/lib/esm/comms/slack/SlackService.js.map +1 -0
- package/lib/esm/comms/slack/index.js +7 -0
- package/lib/esm/comms/slack/index.js.map +1 -0
- package/lib/esm/comms/teams/TeamsService.js +204 -0
- package/lib/esm/comms/teams/TeamsService.js.map +1 -0
- package/lib/esm/comms/teams/index.js +7 -0
- package/lib/esm/comms/teams/index.js.map +1 -0
- package/lib/esm/comms/telegram/TelegramService.js +191 -0
- package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
- package/lib/esm/comms/telegram/index.js +7 -0
- package/lib/esm/comms/telegram/index.js.map +1 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js +269 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
- package/lib/esm/comms/whatsapp/index.js +2 -0
- package/lib/esm/comms/whatsapp/index.js.map +1 -0
- package/lib/esm/devops/environment.js +39 -0
- package/lib/esm/devops/environment.js.map +1 -0
- package/lib/esm/devops/github/GithubService.js +297 -0
- package/lib/esm/devops/github/GithubService.js.map +1 -0
- package/lib/esm/devops/github/index.js +7 -0
- package/lib/esm/devops/github/index.js.map +1 -0
- package/lib/esm/devops/gitlab/GitlabService.js +277 -0
- package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
- package/lib/esm/devops/gitlab/index.js +7 -0
- package/lib/esm/devops/gitlab/index.js.map +1 -0
- package/lib/esm/devops/index.js +11 -0
- package/lib/esm/devops/index.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +2 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +2 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/io/airtable/AirtableService.js +261 -0
- package/lib/esm/io/airtable/AirtableService.js.map +1 -0
- package/lib/esm/io/airtable/index.js +7 -0
- package/lib/esm/io/airtable/index.js.map +1 -0
- package/lib/esm/io/confluence/ConfluenceService.js +312 -0
- package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
- package/lib/esm/io/confluence/index.js +2 -0
- package/lib/esm/io/confluence/index.js.map +1 -0
- package/lib/esm/io/environment.js +70 -0
- package/lib/esm/io/environment.js.map +1 -0
- package/lib/esm/io/google-docs/GoogleDocsService.js +270 -0
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
- package/lib/esm/io/google-docs/index.js +2 -0
- package/lib/esm/io/google-docs/index.js.map +1 -0
- package/lib/esm/io/google-sheets/GoogleSheetsService.js +283 -0
- package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
- package/lib/esm/io/google-sheets/index.js +7 -0
- package/lib/esm/io/google-sheets/index.js.map +1 -0
- package/lib/esm/io/graphql/GraphqlService.js +138 -0
- package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
- package/lib/esm/io/graphql/index.js +7 -0
- package/lib/esm/io/graphql/index.js.map +1 -0
- package/lib/esm/io/index.js +18 -0
- package/lib/esm/io/index.js.map +1 -0
- package/lib/esm/io/jira/JiraService.js +349 -0
- package/lib/esm/io/jira/JiraService.js.map +1 -0
- package/lib/esm/io/jira/index.js +2 -0
- package/lib/esm/io/jira/index.js.map +1 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +248 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
- package/lib/esm/io/microsoft-excel/index.js +2 -0
- package/lib/esm/io/microsoft-excel/index.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +256 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/index.js +2 -0
- package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
- package/lib/esm/io/spreadsheet/SpreadsheetService.js +200 -0
- package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
- package/lib/esm/io/spreadsheet/index.js +8 -0
- package/lib/esm/io/spreadsheet/index.js.map +1 -0
- package/lib/esm/namespaces/index.js +1 -0
- package/lib/esm/namespaces/index.js.map +1 -1
- package/lib/esm/namespaces/models/credential.model.js +106 -0
- package/lib/esm/namespaces/models/credential.model.js.map +1 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +2 -0
- package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js +2 -0
- package/lib/esm/namespaces/models/group-membership.model.js.map +1 -1
- package/lib/esm/namespaces/models/group.model.js +2 -0
- package/lib/esm/namespaces/models/group.model.js.map +1 -1
- package/lib/esm/namespaces/models/index.js +1 -0
- package/lib/esm/namespaces/models/index.js.map +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js +2 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js +2 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js +2 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js +2 -0
- package/lib/esm/namespaces/models/org-unit.model.js.map +1 -1
- package/lib/esm/namespaces/models/permission.model.js +2 -0
- package/lib/esm/namespaces/models/permission.model.js.map +1 -1
- package/lib/esm/namespaces/models/principal.model.js +2 -0
- package/lib/esm/namespaces/models/principal.model.js.map +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js +2 -0
- package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js +2 -0
- package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js +2 -0
- package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js +2 -0
- package/lib/esm/namespaces/models/role-permission.model.js.map +1 -1
- package/lib/esm/namespaces/models/role.model.js +2 -0
- package/lib/esm/namespaces/models/role.model.js.map +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js +2 -0
- package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js +2 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js +2 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -1
- package/lib/esm/namespaces/models/tenant.model.js +2 -0
- package/lib/esm/namespaces/models/tenant.model.js.map +1 -1
- package/lib/esm/namespaces/models/user.model.js +2 -0
- package/lib/esm/namespaces/models/user.model.js.map +1 -1
- package/lib/esm/namespaces/rls/index.js +11 -0
- package/lib/esm/namespaces/rls/index.js.map +1 -0
- package/lib/esm/namespaces/rls/principal-resolver.js +61 -0
- package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js +261 -0
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.constants.js +75 -0
- package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.template.js +711 -0
- package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.types.js +9 -0
- package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
- package/lib/esm/namespaces/rls/session-binding.js +65 -0
- package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
- package/lib/esm/namespaces/services/credential.service.js +322 -0
- package/lib/esm/namespaces/services/credential.service.js.map +1 -0
- package/lib/esm/namespaces/services/index.js +1 -0
- package/lib/esm/namespaces/services/index.js.map +1 -1
- package/lib/esm/namespaces/types.js +6 -0
- package/lib/esm/namespaces/types.js.map +1 -1
- package/lib/esm/redis/adapter.js +7 -1
- package/lib/esm/redis/adapter.js.map +1 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js +74 -0
- package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +3 -13
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +2 -13
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -1
- package/lib/esm/secrets/core/SecretReference.js +1 -0
- package/lib/esm/secrets/core/SecretReference.js.map +1 -1
- package/lib/esm/secrets/fs/FsSecretEnvironment.js +24 -0
- package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretService.js +412 -0
- package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js +21 -0
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/fs/index.js +10 -0
- package/lib/esm/secrets/fs/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +2 -13
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -1
- package/lib/esm/secrets/index.js +2 -0
- package/lib/esm/secrets/index.js.map +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +337 -42
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -1
- package/lib/esm/secrets/model/Secret.js +86 -7
- package/lib/esm/secrets/model/Secret.js.map +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +2 -13
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +2 -13
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -1
- package/lib/esm/shared/environmentValue.js +24 -0
- package/lib/esm/shared/environmentValue.js.map +1 -1
- package/lib/esm/shared/http/HttpApiService.js +181 -0
- package/lib/esm/shared/http/HttpApiService.js.map +1 -0
- package/lib/esm/shared/http/hermeticBoot.js +146 -0
- package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
- package/lib/esm/shared/http/index.js +11 -0
- package/lib/esm/shared/http/index.js.map +1 -0
- package/lib/types/blob/azure/AzureBlobStoreService.d.cts +7 -7
- package/lib/types/blob/azure/AzureBlobStoreService.d.mts +7 -7
- package/lib/types/blob/core/BlobStoreService.d.cts +28 -27
- package/lib/types/blob/core/BlobStoreService.d.mts +28 -27
- package/lib/types/blob/gcp/GcsBlobStoreService.d.cts +7 -7
- package/lib/types/blob/gcp/GcsBlobStoreService.d.mts +7 -7
- package/lib/types/blob/s3/S3BlobStoreService.d.cts +9 -1
- package/lib/types/blob/s3/S3BlobStoreService.d.mts +9 -1
- package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.cts +11 -15
- package/lib/types/blob/s3/S3CompatibleBlobStoreService.d.mts +11 -15
- package/lib/types/calendar/environment.d.cts +48 -0
- package/lib/types/calendar/environment.d.mts +48 -0
- package/lib/types/calendar/google-calendar/GoogleCalendarService.d.cts +316 -0
- package/lib/types/calendar/google-calendar/GoogleCalendarService.d.mts +316 -0
- package/lib/types/calendar/google-calendar/index.d.cts +2 -0
- package/lib/types/calendar/google-calendar/index.d.mts +2 -0
- package/lib/types/comms/discord/DiscordService.d.cts +285 -0
- package/lib/types/comms/discord/DiscordService.d.mts +285 -0
- package/lib/types/comms/discord/index.d.cts +1 -0
- package/lib/types/comms/discord/index.d.mts +1 -0
- package/lib/types/comms/email/EmailService.d.cts +184 -0
- package/lib/types/comms/email/EmailService.d.mts +184 -0
- package/lib/types/comms/email/index.d.cts +11 -0
- package/lib/types/comms/email/index.d.mts +11 -0
- package/lib/types/comms/email/mime.d.cts +84 -0
- package/lib/types/comms/email/mime.d.mts +84 -0
- package/lib/types/comms/email/smtp.d.cts +107 -0
- package/lib/types/comms/email/smtp.d.mts +107 -0
- package/lib/types/comms/environment.d.cts +110 -0
- package/lib/types/comms/environment.d.mts +110 -0
- package/lib/types/comms/gmail/GmailService.d.cts +190 -0
- package/lib/types/comms/gmail/GmailService.d.mts +190 -0
- package/lib/types/comms/gmail/index.d.cts +6 -0
- package/lib/types/comms/gmail/index.d.mts +6 -0
- package/lib/types/comms/index.d.cts +16 -0
- package/lib/types/comms/index.d.mts +16 -0
- package/lib/types/comms/outlook/MicrosoftOutlookService.d.cts +282 -0
- package/lib/types/comms/outlook/MicrosoftOutlookService.d.mts +282 -0
- package/lib/types/comms/outlook/index.d.cts +1 -0
- package/lib/types/comms/outlook/index.d.mts +1 -0
- package/lib/types/comms/slack/SlackService.d.cts +259 -0
- package/lib/types/comms/slack/SlackService.d.mts +259 -0
- package/lib/types/comms/slack/index.d.cts +6 -0
- package/lib/types/comms/slack/index.d.mts +6 -0
- package/lib/types/comms/teams/TeamsService.d.cts +172 -0
- package/lib/types/comms/teams/TeamsService.d.mts +172 -0
- package/lib/types/comms/teams/index.d.cts +6 -0
- package/lib/types/comms/teams/index.d.mts +6 -0
- package/lib/types/comms/telegram/TelegramService.d.cts +202 -0
- package/lib/types/comms/telegram/TelegramService.d.mts +202 -0
- package/lib/types/comms/telegram/index.d.cts +6 -0
- package/lib/types/comms/telegram/index.d.mts +6 -0
- package/lib/types/comms/whatsapp/WhatsAppService.d.cts +258 -0
- package/lib/types/comms/whatsapp/WhatsAppService.d.mts +258 -0
- package/lib/types/comms/whatsapp/index.d.cts +1 -0
- package/lib/types/comms/whatsapp/index.d.mts +1 -0
- package/lib/types/devops/environment.d.cts +62 -0
- package/lib/types/devops/environment.d.mts +62 -0
- package/lib/types/devops/github/GithubService.d.cts +287 -0
- package/lib/types/devops/github/GithubService.d.mts +287 -0
- package/lib/types/devops/github/index.d.cts +6 -0
- package/lib/types/devops/github/index.d.mts +6 -0
- package/lib/types/devops/gitlab/GitlabService.d.cts +277 -0
- package/lib/types/devops/gitlab/GitlabService.d.mts +277 -0
- package/lib/types/devops/gitlab/index.d.cts +6 -0
- package/lib/types/devops/gitlab/index.d.mts +6 -0
- package/lib/types/devops/index.d.cts +10 -0
- package/lib/types/devops/index.d.mts +10 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/io/airtable/AirtableService.d.cts +268 -0
- package/lib/types/io/airtable/AirtableService.d.mts +268 -0
- package/lib/types/io/airtable/index.d.cts +6 -0
- package/lib/types/io/airtable/index.d.mts +6 -0
- package/lib/types/io/confluence/ConfluenceService.d.cts +250 -0
- package/lib/types/io/confluence/ConfluenceService.d.mts +250 -0
- package/lib/types/io/confluence/index.d.cts +1 -0
- package/lib/types/io/confluence/index.d.mts +1 -0
- package/lib/types/io/environment.d.cts +107 -0
- package/lib/types/io/environment.d.mts +107 -0
- package/lib/types/io/google-docs/GoogleDocsService.d.cts +188 -0
- package/lib/types/io/google-docs/GoogleDocsService.d.mts +188 -0
- package/lib/types/io/google-docs/index.d.cts +1 -0
- package/lib/types/io/google-docs/index.d.mts +1 -0
- package/lib/types/io/google-sheets/GoogleSheetsService.d.cts +204 -0
- package/lib/types/io/google-sheets/GoogleSheetsService.d.mts +204 -0
- package/lib/types/io/google-sheets/index.d.cts +6 -0
- package/lib/types/io/google-sheets/index.d.mts +6 -0
- package/lib/types/io/graphql/GraphqlService.d.cts +173 -0
- package/lib/types/io/graphql/GraphqlService.d.mts +173 -0
- package/lib/types/io/graphql/index.d.cts +6 -0
- package/lib/types/io/graphql/index.d.mts +6 -0
- package/lib/types/io/index.d.cts +17 -0
- package/lib/types/io/index.d.mts +17 -0
- package/lib/types/io/jira/JiraService.d.cts +300 -0
- package/lib/types/io/jira/JiraService.d.mts +300 -0
- package/lib/types/io/jira/index.d.cts +1 -0
- package/lib/types/io/jira/index.d.mts +1 -0
- package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.cts +230 -0
- package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.mts +230 -0
- package/lib/types/io/microsoft-excel/index.d.cts +1 -0
- package/lib/types/io/microsoft-excel/index.d.mts +1 -0
- package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.cts +226 -0
- package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.mts +226 -0
- package/lib/types/io/microsoft-sharepoint/index.d.cts +1 -0
- package/lib/types/io/microsoft-sharepoint/index.d.mts +1 -0
- package/lib/types/io/spreadsheet/SpreadsheetService.d.cts +144 -0
- package/lib/types/io/spreadsheet/SpreadsheetService.d.mts +144 -0
- package/lib/types/io/spreadsheet/index.d.cts +7 -0
- package/lib/types/io/spreadsheet/index.d.mts +7 -0
- package/lib/types/namespaces/index.d.cts +1 -0
- package/lib/types/namespaces/index.d.mts +1 -0
- package/lib/types/namespaces/models/credential.model.d.cts +23 -0
- package/lib/types/namespaces/models/credential.model.d.mts +23 -0
- package/lib/types/namespaces/models/index.d.cts +1 -0
- package/lib/types/namespaces/models/index.d.mts +1 -0
- package/lib/types/namespaces/rls/index.d.cts +10 -0
- package/lib/types/namespaces/rls/index.d.mts +10 -0
- package/lib/types/namespaces/rls/principal-resolver.d.cts +47 -0
- package/lib/types/namespaces/rls/principal-resolver.d.mts +47 -0
- package/lib/types/namespaces/rls/rls-bootstrap.service.d.cts +157 -0
- package/lib/types/namespaces/rls/rls-bootstrap.service.d.mts +157 -0
- package/lib/types/namespaces/rls/rls.constants.d.cts +52 -0
- package/lib/types/namespaces/rls/rls.constants.d.mts +52 -0
- package/lib/types/namespaces/rls/rls.template.d.cts +42 -0
- package/lib/types/namespaces/rls/rls.template.d.mts +42 -0
- package/lib/types/namespaces/rls/rls.types.d.cts +77 -0
- package/lib/types/namespaces/rls/rls.types.d.mts +77 -0
- package/lib/types/namespaces/rls/session-binding.d.cts +87 -0
- package/lib/types/namespaces/rls/session-binding.d.mts +87 -0
- package/lib/types/namespaces/services/credential.service.d.cts +175 -0
- package/lib/types/namespaces/services/credential.service.d.mts +175 -0
- package/lib/types/namespaces/services/index.d.cts +1 -0
- package/lib/types/namespaces/services/index.d.mts +1 -0
- package/lib/types/namespaces/types.d.cts +37 -0
- package/lib/types/namespaces/types.d.mts +37 -0
- package/lib/types/redis/adapter.d.cts +2 -0
- package/lib/types/redis/adapter.d.mts +2 -0
- package/lib/types/redis/types.d.cts +27 -2
- package/lib/types/redis/types.d.mts +27 -2
- package/lib/types/secrets/InfraCredentialBootstrap.d.cts +100 -0
- package/lib/types/secrets/InfraCredentialBootstrap.d.mts +100 -0
- package/lib/types/secrets/core/SecretTypes.d.cts +15 -1
- package/lib/types/secrets/core/SecretTypes.d.mts +15 -1
- package/lib/types/secrets/fs/FsSecretEnvironment.d.cts +42 -0
- package/lib/types/secrets/fs/FsSecretEnvironment.d.mts +42 -0
- package/lib/types/secrets/fs/FsSecretService.d.cts +207 -0
- package/lib/types/secrets/fs/FsSecretService.d.mts +207 -0
- package/lib/types/secrets/fs/FsSecretServiceConfig.d.cts +37 -0
- package/lib/types/secrets/fs/FsSecretServiceConfig.d.mts +37 -0
- package/lib/types/secrets/fs/index.d.cts +9 -0
- package/lib/types/secrets/fs/index.d.mts +9 -0
- package/lib/types/secrets/index.d.cts +2 -0
- package/lib/types/secrets/index.d.mts +2 -0
- package/lib/types/secrets/model/ModelSecretService.d.cts +190 -1
- package/lib/types/secrets/model/ModelSecretService.d.mts +190 -1
- package/lib/types/secrets/model/Secret.d.cts +44 -3
- package/lib/types/secrets/model/Secret.d.mts +44 -3
- package/lib/types/shared/environmentValue.d.cts +24 -0
- package/lib/types/shared/environmentValue.d.mts +24 -0
- package/lib/types/shared/http/HttpApiService.d.cts +193 -0
- package/lib/types/shared/http/HttpApiService.d.mts +193 -0
- package/lib/types/shared/http/hermeticBoot.d.cts +84 -0
- package/lib/types/shared/http/hermeticBoot.d.mts +84 -0
- package/lib/types/shared/http/index.d.cts +10 -0
- package/lib/types/shared/http/index.d.mts +10 -0
- package/package.json +279 -6
- package/sql/002_rls.sql +660 -15
- package/sql/004_credentials.sql +46 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/principal.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAiB;AAC/D,OAAO,EAAE,YAAY,EAAE,sBAAiB;AACxC,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,cAAc,EAAE,mCAAgC;AACzD,OAAO,EAAE,aAAa,EAAE,kCAA+B;
|
|
1
|
+
{"version":3,"file":"principal.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/principal.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAiB;AAC/D,OAAO,EAAE,YAAY,EAAE,sBAAiB;AACxC,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,cAAc,EAAE,mCAAgC;AACzD,OAAO,EAAE,aAAa,EAAE,kCAA+B;AAKhD,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,kBAAkB;IAC/C,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAYF,CAAA;AAV+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;qCAAa;AAG1C;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,CAAC;IAC/E,QAAQ,EAAE;;yCACc;AAC2C;IAAnE,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,CAAC,oBAAoB,CAAC;IAAE,MAAM,EAAE;;uCAAsB;AACnD;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;4CAAoB;AACH;IAArD,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC;;kDAA+C;AAC/C;IAApD,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC;;iDAA6C;AACpF;IAAZ,SAAS,EAAE;8BAAa,IAAI;4CAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;4CAAC;AAdnB,SAAS;IAHrB,WAAW,CAAC,sFAAsF,CAAC;IACnG,KAAK,CAAC,YAAY,CAAC;IACnB,KAAK,EAAE;;GACK,SAAS,CAerB"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, manyToOne, oneToMany, pk, table, updatedAt, uuid } from "@decaf-ts/core";
|
|
11
12
|
import { model, option, required, type as typeOf } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { REL_NULLIFY, REL_RESTRICT } from "./../utils.js";
|
|
@@ -82,6 +83,7 @@ __decorate([
|
|
|
82
83
|
__metadata("design:type", Date)
|
|
83
84
|
], ProtectedResource.prototype, "updatedAt", void 0);
|
|
84
85
|
ProtectedResource = __decorate([
|
|
86
|
+
description("Resource registered for authorization and visibility decisions"),
|
|
85
87
|
table("protected_resources"),
|
|
86
88
|
model(),
|
|
87
89
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protected-resource.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/protected-resource.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,sBAAiB;AACrD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,sBAAiB;AACzE,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,OAAO,EAAE,4BAAyB;AAC3C,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,aAAa,EAAE,kCAA+B;
|
|
1
|
+
{"version":3,"file":"protected-resource.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/protected-resource.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,sBAAiB;AACrD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,sBAAiB;AACzE,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,OAAO,EAAE,4BAAyB;AAC3C,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,aAAa,EAAE,kCAA+B;AAKhD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,kBAAkB;IACvD,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAmBF,CAAA;AAjB+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;6CAAa;AAG1C;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,CAAC;IACxF,QAAQ,EAAE;;iDACc;AAGzB;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,iCAAiC,CAAC;IAC3F,QAAQ,EAAE;;kDACgB;AACW;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;uDAAuB;AACtB;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;qDAAqB;AACe;IAAxE,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,CAAC,yBAAyB,CAAC;IAAE,MAAM,EAAE;;qDAAiC;AAEzG;IADC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,8BAA8B,CAAC;;gDAC/D;AACD;IAAzB,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;sDAAsB;AACrB;IAAzB,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;mDAAoC;AACR;IAApD,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC;;iDAAqC;AAC5E;IAAZ,SAAS,EAAE;8BAAa,IAAI;oDAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;oDAAC;AArBnB,iBAAiB;IAH7B,WAAW,CAAC,gEAAgE,CAAC;IAC7E,KAAK,CAAC,qBAAqB,CAAC;IAC5B,KAAK,EAAE;;GACK,iBAAiB,CAsB7B"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, manyToOne, pk, table, updatedAt, uuid } from "@decaf-ts/core";
|
|
11
12
|
import { model, required, type as typeOf } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { REL_CASCADE_DEPENDENT, REL_RESTRICT } from "./../utils.js";
|
|
@@ -71,6 +72,7 @@ __decorate([
|
|
|
71
72
|
__metadata("design:type", Date)
|
|
72
73
|
], ResourceGrant.prototype, "updatedAt", void 0);
|
|
73
74
|
ResourceGrant = __decorate([
|
|
75
|
+
description("Permission grant on a protected resource for a principal"),
|
|
74
76
|
table("resource_grants"),
|
|
75
77
|
model(),
|
|
76
78
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-grant.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/resource-grant.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,sBAAiB;AAC/D,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,iBAAiB,EAAE,sCAAmC;
|
|
1
|
+
{"version":3,"file":"resource-grant.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/resource-grant.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,sBAAiB;AAC/D,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,iBAAiB,EAAE,sCAAmC;AAKxD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,kBAAkB;IACnD,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAoBF,CAAA;AAlB+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;yCAAa;AAG1C;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,2BAA2B,CAAC;IAC7F,QAAQ,EAAE;;6CACc;AAGzB;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,6BAA6B,CAAC;IAC1G,QAAQ,EAAE;;+CAC2B;AAGtC;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,8BAA8B,CAAC;IACnG,QAAQ,EAAE;;gDACoB;AACO;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;oDAAwB;AACnD;IAAT,MAAM,EAAE;8BAAY,IAAI;+CAAC;AAChB;IAAT,MAAM,EAAE;8BAAa,IAAI;gDAAC;AACD;IAAzB,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;iDAAsC;AAE/D;IADC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,CAAC;;gDAC7D;AAClB;IAAZ,SAAS,EAAE;8BAAa,IAAI;gDAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;gDAAC;AAtBnB,aAAa;IAHzB,WAAW,CAAC,0DAA0D,CAAC;IACvE,KAAK,CAAC,iBAAiB,CAAC;IACxB,KAAK,EAAE;;GACK,aAAa,CAuBzB"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, manyToOne, pk, table, updatedAt, uuid } from "@decaf-ts/core";
|
|
11
12
|
import { model, option, required, type as typeOf } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { ScopeKind, ScopeKindOptions } from "./../types.js";
|
|
@@ -81,6 +82,7 @@ __decorate([
|
|
|
81
82
|
__metadata("design:type", Date)
|
|
82
83
|
], RoleAssignment.prototype, "updatedAt", void 0);
|
|
83
84
|
RoleAssignment = __decorate([
|
|
85
|
+
description("Role assigned to a principal within a scope"),
|
|
84
86
|
table("role_assignments"),
|
|
85
87
|
model(),
|
|
86
88
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-assignment.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/role-assignment.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,sBAAiB;AACvD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,sBAAiB;AAC/D,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,IAAI,EAAE,wBAAqB;
|
|
1
|
+
{"version":3,"file":"role-assignment.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/role-assignment.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,sBAAiB;AACvD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,sBAAiB;AAC/D,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,IAAI,EAAE,wBAAqB;AAK7B,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,kBAAkB;IACpD,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAoBF,CAAA;AAlB+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;0CAAa;AAG1C;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,4BAA4B,CAAC;IAC9F,QAAQ,EAAE;;8CACc;AAGzB;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,CAAC;IACpG,QAAQ,EAAE;;iDACoB;AAG/B;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,0BAA0B,CAAC;IACjF,QAAQ,EAAE;;4CACU;AAC2C;IAA/D,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,CAAC,gBAAgB,CAAC;IAAE,MAAM,EAAE;;iDAAuB;AAChD;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;+CAAkB;AAChB;IAAtC,QAAQ,EAAE;IAAE,MAAM,CAAC,OAAO,CAAC;IAAE,MAAM,EAAE;;mDAAuB;AACnD;IAAT,MAAM,EAAE;8BAAY,IAAI;gDAAC;AAChB;IAAT,MAAM,EAAE;8BAAa,IAAI;iDAAC;AACD;IAAzB,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;kDAAsC;AAClD;IAAZ,SAAS,EAAE;8BAAa,IAAI;iDAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;iDAAC;AAtBnB,cAAc;IAH1B,WAAW,CAAC,6CAA6C,CAAC;IAC1D,KAAK,CAAC,kBAAkB,CAAC;IACzB,KAAK,EAAE;;GACK,cAAc,CAuB1B"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { createdAt, manyToOne, pk, table, uuid } from "@decaf-ts/core";
|
|
11
12
|
import { model, required } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { REL_CASCADE_DEPENDENT } from "./../utils.js";
|
|
@@ -38,6 +39,7 @@ __decorate([
|
|
|
38
39
|
__metadata("design:type", Date)
|
|
39
40
|
], RolePermission.prototype, "createdAt", void 0);
|
|
40
41
|
RolePermission = __decorate([
|
|
42
|
+
description("Link between a role and a permission"),
|
|
41
43
|
table("role_permissions"),
|
|
42
44
|
model(),
|
|
43
45
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-permission.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/role-permission.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,sBAAiB;AACjD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,IAAI,EAAE,wBAAqB;AACpC,OAAO,EAAE,UAAU,EAAE,8BAA2B;
|
|
1
|
+
{"version":3,"file":"role-permission.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/role-permission.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,sBAAiB;AACjD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,IAAI,EAAE,wBAAqB;AACpC,OAAO,EAAE,UAAU,EAAE,8BAA2B;AAKzC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,kBAAkB;IACpD,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAUF,CAAA;AAR+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;0CAAa;AAG1C;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,0BAA0B,CAAC;IAC1F,QAAQ,EAAE;;4CACU;AAGrB;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,gCAAgC,CAAC;IACtG,QAAQ,EAAE;;kDACsB;AACpB;IAAZ,SAAS,EAAE;8BAAa,IAAI;iDAAC;AAZnB,cAAc;IAH1B,WAAW,CAAC,sCAAsC,CAAC;IACnD,KAAK,CAAC,kBAAkB,CAAC;IACzB,KAAK,EAAE;;GACK,cAAc,CAa1B"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, manyToOne, oneToMany, pk, table, updatedAt, uuid } from "@decaf-ts/core";
|
|
11
12
|
import { model, required, type as typeOf } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { REL_NULLIFY, REL_RESTRICT } from "./../utils.js";
|
|
@@ -67,6 +68,7 @@ __decorate([
|
|
|
67
68
|
__metadata("design:type", Date)
|
|
68
69
|
], Role.prototype, "updatedAt", void 0);
|
|
69
70
|
Role = __decorate([
|
|
71
|
+
description("Named role grouping permissions"),
|
|
70
72
|
table("roles"),
|
|
71
73
|
model(),
|
|
72
74
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/role.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,sBAAiB;AACrD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,cAAc,EAAE,mCAAgC;AACzD,OAAO,EAAE,cAAc,EAAE,mCAAgC;
|
|
1
|
+
{"version":3,"file":"role.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/role.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,sBAAiB;AACrD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,cAAc,EAAE,mCAAgC;AACzD,OAAO,EAAE,cAAc,EAAE,mCAAgC;AAKlD,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,kBAAkB;IAC1C,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAaF,CAAA;AAX+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;gCAAa;AAE1C;IADC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC;;oCACjD;AACa;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;iCAAc;AACb;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;kCAAe;AAC1B;IAAzB,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;yCAAsB;AACrB;IAAzB,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;sCAAoC;AACP;IAArD,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC;;6CAA+C;AAC9C;IAArD,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC;;yCAA2C;AACnF;IAAZ,SAAS,EAAE;8BAAa,IAAI;uCAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;uCAAC;AAfnB,IAAI;IAHhB,WAAW,CAAC,iCAAiC,CAAC;IAC9C,KAAK,CAAC,OAAO,CAAC;IACd,KAAK,EAAE;;GACK,IAAI,CAgBhB"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, manyToOne, pk, table, updatedAt, uuid } from "@decaf-ts/core";
|
|
11
12
|
import { model, option, required, type as typeOf } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { StorageBindingKind, StorageBindingKindOptions, StorageKind, StorageKindOptions } from "./../types.js";
|
|
@@ -68,6 +69,7 @@ __decorate([
|
|
|
68
69
|
__metadata("design:type", Date)
|
|
69
70
|
], StorageBinding.prototype, "updatedAt", void 0);
|
|
70
71
|
StorageBinding = __decorate([
|
|
72
|
+
description("Storage backend binding configured for a tenant"),
|
|
71
73
|
table("storage_bindings"),
|
|
72
74
|
model(),
|
|
73
75
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-binding.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/storage-binding.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAiB;AAC1G,OAAO,EAAE,qBAAqB,EAAE,sBAAiB;AACjD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;
|
|
1
|
+
{"version":3,"file":"storage-binding.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/storage-binding.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAiB;AAC1G,OAAO,EAAE,qBAAqB,EAAE,sBAAiB;AACjD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AAKjC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,kBAAkB;IACpD,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAaF,CAAA;AAX+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;0CAAa;AAG1C;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,4BAA4B,CAAC;IAC9F,QAAQ,EAAE;;8CACc;AACyC;IAAjE,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,CAAC,kBAAkB,CAAC;IAAE,MAAM,EAAE;;mDAA2B;AACnB;IAAxE,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,CAAC,yBAAyB,CAAC;IAAE,MAAM,EAAE;;mDAAkC;AACpE;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;kDAAqB;AACpB;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;8CAAiB;AAC5B;IAAzB,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;8CAAkC;AAC9C;IAAZ,SAAS,EAAE;8BAAa,IAAI;iDAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;iDAAC;AAfnB,cAAc;IAH1B,WAAW,CAAC,iDAAiD,CAAC;IAC9D,KAAK,CAAC,kBAAkB,CAAC;IACzB,KAAK,EAAE;;GACK,cAAc,CAgB1B"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, manyToOne, pk, table, updatedAt, uuid } from "@decaf-ts/core";
|
|
11
12
|
import { model, option, required, type as typeOf } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { MembershipStatus, MembershipStatusOptions } from "./../types.js";
|
|
@@ -50,6 +51,7 @@ __decorate([
|
|
|
50
51
|
__metadata("design:type", Date)
|
|
51
52
|
], TenantMembership.prototype, "updatedAt", void 0);
|
|
52
53
|
TenantMembership = __decorate([
|
|
54
|
+
description("Membership linking a user to a tenant"),
|
|
53
55
|
table("tenant_memberships"),
|
|
54
56
|
model(),
|
|
55
57
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-membership.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/tenant-membership.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAiB;AACrE,OAAO,EAAE,qBAAqB,EAAE,sBAAiB;AACjD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,IAAI,EAAE,wBAAqB;
|
|
1
|
+
{"version":3,"file":"tenant-membership.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/tenant-membership.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAiB;AACrE,OAAO,EAAE,qBAAqB,EAAE,sBAAiB;AACjD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AACxC,OAAO,EAAE,IAAI,EAAE,wBAAqB;AAK7B,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,kBAAkB;IACtD,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAYF,CAAA;AAV+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;4CAAa;AAG1C;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,8BAA8B,CAAC;IAChG,QAAQ,EAAE;;gDACc;AAGzB;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,4BAA4B,CAAC;IAC5F,QAAQ,EAAE;;8CACU;AACkD;IAAtE,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,CAAC,uBAAuB,CAAC;IAAE,MAAM,EAAE;;gDAA2B;AACpF;IAAZ,SAAS,EAAE;8BAAa,IAAI;mDAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;mDAAC;AAdnB,gBAAgB;IAH5B,WAAW,CAAC,uCAAuC,CAAC;IACpD,KAAK,CAAC,oBAAoB,CAAC;IAC3B,KAAK,EAAE;;GACK,gBAAgB,CAe5B"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, manyToOne, pk, table, updatedAt, uuid } from "@decaf-ts/core";
|
|
11
12
|
import { model, required, type as typeOf } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { REL_CASCADE_DEPENDENT } from "./../utils.js";
|
|
@@ -47,6 +48,7 @@ __decorate([
|
|
|
47
48
|
__metadata("design:type", Date)
|
|
48
49
|
], TenantProfile.prototype, "updatedAt", void 0);
|
|
49
50
|
TenantProfile = __decorate([
|
|
51
|
+
description("Profile metadata attached to a tenant"),
|
|
50
52
|
table("tenant_profiles"),
|
|
51
53
|
model(),
|
|
52
54
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-profile.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/tenant-profile.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAiB;AACjD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;
|
|
1
|
+
{"version":3,"file":"tenant-profile.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/tenant-profile.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAiB;AACjD,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,MAAM,EAAE,0BAAuB;AAKjC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,kBAAkB;IACnD,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAUF,CAAA;AAR+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;yCAAa;AAG1C;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,2BAA2B,CAAC;IAC7F,QAAQ,EAAE;;6CACc;AACa;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;iDAAqB;AAChC;IAAzB,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;+CAAoC;AAChD;IAAZ,SAAS,EAAE;8BAAa,IAAI;gDAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;gDAAC;AAZnB,aAAa;IAHzB,WAAW,CAAC,uCAAuC,CAAC;IACpD,KAAK,CAAC,iBAAiB,CAAC;IACxB,KAAK,EAAE;;GACK,aAAa,CAazB"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, oneToMany, pk, table, unique, updatedAt, uuid, } from "@decaf-ts/core";
|
|
11
12
|
import { model, option, required, type as typeOf, } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { IsolationTier, IsolationTierOptions } from "./../types.js";
|
|
@@ -71,6 +72,7 @@ __decorate([
|
|
|
71
72
|
__metadata("design:type", Date)
|
|
72
73
|
], Tenant.prototype, "updatedAt", void 0);
|
|
73
74
|
Tenant = __decorate([
|
|
75
|
+
description("Top-level tenant (organization) namespace"),
|
|
74
76
|
table("tenants"),
|
|
75
77
|
model(),
|
|
76
78
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/tenant.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,EAAE,EACF,KAAK,EACL,MAAM,EACN,SAAS,EACT,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,EACL,MAAM,EACN,QAAQ,EACR,IAAI,IAAI,MAAM,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAiB;AAC/D,OAAO,EAAE,YAAY,EAAE,sBAAiB;AACxC,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,OAAO,EAAE,4BAAyB;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qCAAkC;AAC7D,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,cAAc,EAAE,mCAAgC;
|
|
1
|
+
{"version":3,"file":"tenant.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/tenant.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,EAAE,EACF,KAAK,EACL,MAAM,EACN,SAAS,EACT,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,EACL,MAAM,EACN,QAAQ,EACR,IAAI,IAAI,MAAM,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAiB;AAC/D,OAAO,EAAE,YAAY,EAAE,sBAAiB;AACxC,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,OAAO,EAAE,4BAAyB;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qCAAkC;AAC7D,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,cAAc,EAAE,mCAAgC;AAKlD,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,kBAAkB;IAC5C,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CAwBF,CAAA;AAtB+B;IAA7B,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAE,IAAI,EAAE;;kCAAa;AACM;IAA/C,MAAM,EAAE;IAAE,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;oCAAe;AACxB;IAArC,QAAQ,EAAE;IAAE,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE;;oCAAe;AAKpD;IAJC,QAAQ,EAAE;IACV,MAAM,CAAC,MAAM,CAAC;IACd,MAAM,CAAC,oBAAoB,CAAC;IAC5B,MAAM,EAAE;;6CACqB;AACiB;IAA9C,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC;;wCAEjC;AAC2C;IAAvD,SAAS,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC;;2CAE1C;AACoC;IAAhD,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC;;0CAEnC;AACyC;IAArD,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC;;+CAExC;AACA;IAAZ,SAAS,EAAE;8BAAa,IAAI;yCAAC;AACjB;IAAZ,SAAS,EAAE;8BAAa,IAAI;yCAAC;AA1BnB,MAAM;IAHlB,WAAW,CAAC,2CAA2C,CAAC;IACxD,KAAK,CAAC,SAAS,CAAC;IAChB,KAAK,EAAE;;GACK,MAAM,CA2BlB"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { description } from "@decaf-ts/decoration";
|
|
10
11
|
import { column, createdAt, oneToMany, pk, table, unique, updatedAt, uuid, } from "@decaf-ts/core";
|
|
11
12
|
import { model, required, type } from "@decaf-ts/decorator-validation";
|
|
12
13
|
import { REL_RESTRICT } from "./../utils.js";
|
|
@@ -58,6 +59,7 @@ __decorate([
|
|
|
58
59
|
__metadata("design:type", Date)
|
|
59
60
|
], User.prototype, "updatedAt", void 0);
|
|
60
61
|
User = __decorate([
|
|
62
|
+
description("User identity within the authorization namespace"),
|
|
61
63
|
table("users"),
|
|
62
64
|
model(),
|
|
63
65
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/user.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,EAAE,EACF,KAAK,EACL,MAAM,EACN,SAAS,EACT,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,sBAAiB;AACxC,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,gBAAgB,EAAE,qCAAkC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,uCAAoC;
|
|
1
|
+
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../../../src/namespaces/models/user.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,EAAE,EACF,KAAK,EACL,MAAM,EACN,SAAS,EACT,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,sBAAiB;AACxC,OAAO,EAAE,kBAAkB,EAAE,iCAA8B;AAC3D,OAAO,EAAE,gBAAgB,EAAE,qCAAkC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,uCAAoC;AAKzD,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,kBAAkB;IAgC1C,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CACF,CAAA;AAhCC;IAFC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE;;gCACK;AAKZ;IAHC,MAAM,EAAE;IACR,IAAI,CAAC,MAAM,CAAC;IACZ,MAAM,EAAE;;mCACM;AAKf;IAHC,MAAM,EAAE;IACR,IAAI,CAAC,MAAM,CAAC;IACZ,MAAM,EAAE;;mCACM;AAKf;IAHC,QAAQ,EAAE;IACV,IAAI,CAAC,MAAM,CAAC;IACZ,MAAM,EAAE;;yCACY;AAGrB;IADC,SAAS,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC;;+CACL;AAGlD;IADC,SAAS,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,CAAC;;gDACJ;AAGpD;IADC,SAAS,EAAE;8BACA,IAAI;uCAAC;AAGjB;IADC,SAAS,EAAE;8BACA,IAAI;uCAAC;AA9BN,IAAI;IAHhB,WAAW,CAAC,kDAAkD,CAAC;IAC/D,KAAK,CAAC,OAAO,CAAC;IACd,KAAK,EAAE;;GACK,IAAI,CAmChB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/namespaces/rls
|
|
3
|
+
* @summary Namespace row-level-security template, bootstrap service, and session helpers.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./rls.constants.js";
|
|
6
|
+
export * from "./rls.types.js";
|
|
7
|
+
export * from "./rls.template.js";
|
|
8
|
+
export * from "./rls-bootstrap.service.js";
|
|
9
|
+
export * from "./principal-resolver.js";
|
|
10
|
+
export * from "./session-binding.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/namespaces/rls/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,mCAAgC;AAChC,+BAA4B;AAC5B,kCAA+B;AAC/B,2CAAwC;AACxC,wCAAqC;AACrC,qCAAkC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/namespaces/rls/principal-resolver
|
|
3
|
+
* @summary Resolves a decaf `principals.id` UUID from an authenticated subject through the RLS `SECURITY DEFINER` helper.
|
|
4
|
+
* @description Exposes {@link resolvePrincipalForSubject}, a fail-closed,
|
|
5
|
+
* fully parameterized lookup that maps an authenticated subject id (and
|
|
6
|
+
* optional tenant) to the single matching principal UUID via the
|
|
7
|
+
* `app_rls_principal_for_subject(text, uuid)` SQL helper installed by the
|
|
8
|
+
* namespace RLS template. Intended for privileged infrastructure code (auth
|
|
9
|
+
* prime / service role) that must translate a login identity into the
|
|
10
|
+
* principal UUID the TypeORM adapter binds transaction-locally to
|
|
11
|
+
* `app.principal_id`; it is not meant to run on an RLS-restricted application
|
|
12
|
+
* session.
|
|
13
|
+
*/
|
|
14
|
+
import { ValidationError } from "@decaf-ts/db-decorators";
|
|
15
|
+
/**
|
|
16
|
+
* @description Pattern enforcing UUID shape on resolved principals and tenant ids
|
|
17
|
+
* @summary Used to validate the optional `tenantId` argument and to fail
|
|
18
|
+
* closed on driver results that are not UUID-shaped strings.
|
|
19
|
+
* @const PRINCIPAL_UUID_PATTERN
|
|
20
|
+
*/
|
|
21
|
+
export const PRINCIPAL_UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
22
|
+
/**
|
|
23
|
+
* @description Resolves the principal UUID for an authenticated subject
|
|
24
|
+
* @summary Calls the `SECURITY DEFINER` helper
|
|
25
|
+
* `app_rls_principal_for_subject(text, uuid)` through the given privileged
|
|
26
|
+
* client with fully parameterized SQL. Fails closed: an empty subject, an
|
|
27
|
+
* ambiguous subject (the helper returns `NULL` unless exactly one principal
|
|
28
|
+
* matches), and driver results that are not UUID-shaped strings all resolve to
|
|
29
|
+
* `undefined` rather than throwing, so callers handle "no principal" uniformly
|
|
30
|
+
* by denying. Requires a privileged auth-prime/service-role client; this
|
|
31
|
+
* resolver must never be invoked with an application session client.
|
|
32
|
+
* @function resolvePrincipalForSubject
|
|
33
|
+
* @param {PrincipalSubjectQueryClient} client - Privileged client used to run the helper query.
|
|
34
|
+
* @param {string} subject - The authenticated subject id (`principals.subject_id`).
|
|
35
|
+
* @param {string} [tenantId] - Optional tenant UUID scoping the lookup.
|
|
36
|
+
* @returns {Promise<string | undefined>} The principal UUID, or `undefined` when none can be resolved.
|
|
37
|
+
* @throws {ValidationError} When the client is not query-capable, or `tenantId` is provided but not a UUID.
|
|
38
|
+
* @example
|
|
39
|
+
* const principalId = await resolvePrincipalForSubject(pgClient, authSubject, tenantId);
|
|
40
|
+
* if (!principalId)
|
|
41
|
+
* throw new Error("No principal for subject"); // fail closed
|
|
42
|
+
*/
|
|
43
|
+
export async function resolvePrincipalForSubject(client, subject, tenantId) {
|
|
44
|
+
if (!client || typeof client.query !== "function")
|
|
45
|
+
throw new ValidationError("resolvePrincipalForSubject requires a privileged auth-prime/service-role client, not the application session");
|
|
46
|
+
const normalizedSubject = typeof subject === "string" ? subject.trim() : "";
|
|
47
|
+
if (!normalizedSubject)
|
|
48
|
+
return undefined;
|
|
49
|
+
if (tenantId !== undefined && tenantId !== null) {
|
|
50
|
+
if (typeof tenantId !== "string" || !PRINCIPAL_UUID_PATTERN.test(tenantId))
|
|
51
|
+
throw new ValidationError("resolvePrincipalForSubject tenantId must be a UUID when provided");
|
|
52
|
+
}
|
|
53
|
+
const result = (await client.query("SELECT app_rls_principal_for_subject($1, $2) AS principal_id", [normalizedSubject, tenantId ?? null]));
|
|
54
|
+
const rows = Array.isArray(result) ? result : result?.rows;
|
|
55
|
+
const principalId = Array.isArray(rows) ? rows[0]?.principal_id : undefined;
|
|
56
|
+
if (typeof principalId !== "string")
|
|
57
|
+
return undefined;
|
|
58
|
+
const normalized = principalId.trim();
|
|
59
|
+
return PRINCIPAL_UUID_PATTERN.test(normalized) ? normalized : undefined;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=principal-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principal-resolver.js","sourceRoot":"","sources":["../../../../src/namespaces/rls/principal-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAqB1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,iEAAiE,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAmC,EACnC,OAAe,EACf,QAAiB;IAEjB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU;QAC/C,MAAM,IAAI,eAAe,CACvB,8GAA8G,CAC/G,CAAC;IACJ,MAAM,iBAAiB,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,IAAI,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACxE,MAAM,IAAI,eAAe,CACvB,kEAAkE,CACnE,CAAC;IACN,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAChC,8DAA8D,EAC9D,CAAC,iBAAiB,EAAE,QAAQ,IAAI,IAAI,CAAC,CACtC,CAAQ,CAAC;IACV,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;IAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/namespaces/rls/bootstrap
|
|
3
|
+
* @summary Bootstrap service that applies the namespace row-level-security template.
|
|
4
|
+
* @description Wires the SQL template into a query executor (for example a
|
|
5
|
+
* `pg.Client`) so deployments apply the policies through application bootstrap
|
|
6
|
+
* or a migration runner instead of hand-running SQL. Also exposes helpers
|
|
7
|
+
* that bind `app.principal_id` transaction-locally for request-scoped access.
|
|
8
|
+
*/
|
|
9
|
+
import { ClientBasedService } from "@decaf-ts/core";
|
|
10
|
+
import { InternalError, ValidationError } from "@decaf-ts/db-decorators";
|
|
11
|
+
import { RLS_FUNCTION_STATEMENTS, rlsBootstrapStatements, rlsPolicyStatements, } from "./rls.template.js";
|
|
12
|
+
import { RLS_FUNCTION_OWNER_QUERY, RLS_SETTINGS } from "./rls.constants.js";
|
|
13
|
+
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
14
|
+
/**
|
|
15
|
+
* @description Thrown when the executor role cannot safely own the RLS helper functions.
|
|
16
|
+
* @summary Raised by
|
|
17
|
+
* `RlsBootstrapService.assertFunctionOwnerPrivileges()` when the current
|
|
18
|
+
* database role is neither `SUPERUSER` nor `BYPASSRLS` (or when its
|
|
19
|
+
* privileges cannot be determined). Extends
|
|
20
|
+
* `{@link InternalError}` so callers can catch it generically, while
|
|
21
|
+
* carrying the distinctive `RlsFunctionOwnerError` name for
|
|
22
|
+
* fail-closed matching.
|
|
23
|
+
* @class RlsFunctionOwnerError
|
|
24
|
+
* @category Namespaces
|
|
25
|
+
*/
|
|
26
|
+
export class RlsFunctionOwnerError extends InternalError {
|
|
27
|
+
constructor(message) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = "RlsFunctionOwnerError";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function assertTransactionLocalBinding(method, options) {
|
|
33
|
+
if (options && options.local !== undefined && options.local !== true) {
|
|
34
|
+
throw new ValidationError(`${method} only supports transaction-local binding: session-wide binding is not allowed`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @description Validates a principal identifier before binding it to the
|
|
39
|
+
* `app.principal_id` RLS setting.
|
|
40
|
+
* @summary Fail-closed shape guard shared by the binding helpers: the value
|
|
41
|
+
* must be a non-empty UUID string. On failure it throws a `ValidationError`
|
|
42
|
+
* with a fixed message that never echoes the rejected value, so invalid input
|
|
43
|
+
* cannot leak into error surfaces or logs.
|
|
44
|
+
* @function assertPrincipalId
|
|
45
|
+
* @param {string} principalId - Candidate principal (or tenant) UUID to validate.
|
|
46
|
+
* @returns {void}
|
|
47
|
+
* @throws {ValidationError} When the value is empty or not UUID-shaped; the message does not include the rejected value.
|
|
48
|
+
*/
|
|
49
|
+
export function assertPrincipalId(principalId) {
|
|
50
|
+
if (!principalId || !UUID_PATTERN.test(principalId)) {
|
|
51
|
+
throw new ValidationError("Invalid RLS principal id");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @description Applies the namespace RLS template through a SQL executor.
|
|
56
|
+
* @summary The service boots with a SQL executor (`pg.Client`, `pg.Pool`, or a
|
|
57
|
+
* compatible wrapper) and applies the namespace row-level-security template:
|
|
58
|
+
* function plus policy DDL executed sequentially. It is the deployment-side
|
|
59
|
+
* entry point for the RLS template, meant to run during application bootstrap
|
|
60
|
+
* or a migration runner instead of hand-running SQL. The template is
|
|
61
|
+
* idempotent and may run on every deployment.
|
|
62
|
+
* @class RlsBootstrapService
|
|
63
|
+
* @category Namespaces
|
|
64
|
+
*/
|
|
65
|
+
export class RlsBootstrapService extends ClientBasedService {
|
|
66
|
+
constructor() {
|
|
67
|
+
super();
|
|
68
|
+
}
|
|
69
|
+
async initialize(...args) {
|
|
70
|
+
const client = args[0];
|
|
71
|
+
if (!client || typeof client.query !== "function") {
|
|
72
|
+
throw new ValidationError("RlsBootstrapService requires a query executor as its first argument");
|
|
73
|
+
}
|
|
74
|
+
const config = args[1] ?? {};
|
|
75
|
+
return { config, client };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @description Applies the configured (or bundled) RLS statement list.
|
|
79
|
+
* @summary The service is booted with an executor (`pg.Client`, `pg.Pool`, or a
|
|
80
|
+
* compatible wrapper) and applies function plus policy DDL sequentially. The
|
|
81
|
+
* template is idempotent and may run on every deployment. Before any DDL is
|
|
82
|
+
* sent, `assertFunctionOwnerPrivileges()` verifies that the current
|
|
83
|
+
* executor role is `SUPERUSER` or `BYPASSRLS` and fails closed otherwise,
|
|
84
|
+
* so `SECURITY DEFINER` helper functions are never created with an owner
|
|
85
|
+
* that would recurse under `FORCE ROW LEVEL SECURITY`.
|
|
86
|
+
* @return {Promise<{applied: number}>} The number of statements executed.
|
|
87
|
+
* @throws {RlsFunctionOwnerError} When the executor role is neither `SUPERUSER` nor `BYPASSRLS`, or its privileges cannot be determined.
|
|
88
|
+
* @throws {InternalError} When the resolved statement list is empty.
|
|
89
|
+
*/
|
|
90
|
+
async apply(...args) {
|
|
91
|
+
const { log } = (await this.logCtx(args, "apply", true)).for(this.apply);
|
|
92
|
+
const statements = this.statements();
|
|
93
|
+
if (!statements.length) {
|
|
94
|
+
throw new InternalError("No RLS statements to apply");
|
|
95
|
+
}
|
|
96
|
+
await this.assertFunctionOwnerPrivileges(...args);
|
|
97
|
+
log.verbose(`Applying ${statements.length} RLS statements`);
|
|
98
|
+
for (const statement of statements) {
|
|
99
|
+
await this.client.query(statement);
|
|
100
|
+
}
|
|
101
|
+
log.info(`Applied namespace RLS template (${statements.length} statements)`);
|
|
102
|
+
return { applied: statements.length };
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @description Verifies that the current executor role can own the RLS helper functions.
|
|
106
|
+
* @summary Runs `RLS_FUNCTION_OWNER_QUERY` through the configured executor
|
|
107
|
+
* and reads the current role's `rolsuper`/`rolbypassrls` flags from
|
|
108
|
+
* `pg_roles`. Fails closed: when the row is missing or the flags are not
|
|
109
|
+
* booleans, it throws `RlsFunctionOwnerError` with the same
|
|
110
|
+
* fail-closed semantics as an explicit privilege failure. Called
|
|
111
|
+
* automatically by `apply()` before any DDL is executed.
|
|
112
|
+
* @param args - Optional trailing decaf `Context` arguments forwarded to the log context.
|
|
113
|
+
* @return Resolves when the current role is `SUPERUSER` or `BYPASSRLS`.
|
|
114
|
+
* @throws {RlsFunctionOwnerError} When the executor role is neither `SUPERUSER` nor `BYPASSRLS`, or when its privileges cannot be determined from `pg_roles`.
|
|
115
|
+
*/
|
|
116
|
+
async assertFunctionOwnerPrivileges(...args) {
|
|
117
|
+
const { log } = (await this.logCtx(args, "assertFunctionOwnerPrivileges", true)).for(this.assertFunctionOwnerPrivileges);
|
|
118
|
+
const result = await this.client.query(RLS_FUNCTION_OWNER_QUERY);
|
|
119
|
+
const row = (result.rows?.[0] ?? undefined);
|
|
120
|
+
const roleName = row?.rolname
|
|
121
|
+
? JSON.stringify(row.rolname)
|
|
122
|
+
: "current_user";
|
|
123
|
+
if (typeof row?.rolsuper !== "boolean" ||
|
|
124
|
+
typeof row?.rolbypassrls !== "boolean") {
|
|
125
|
+
throw new RlsFunctionOwnerError(`Cannot apply the namespace RLS template: could not determine the privileges of ${roleName}. ` +
|
|
126
|
+
"The SECURITY DEFINER helper functions require a SUPERUSER or BYPASSRLS owner; refusing to " +
|
|
127
|
+
"apply policies that would recurse under FORCE ROW LEVEL SECURITY.");
|
|
128
|
+
}
|
|
129
|
+
if (!row.rolsuper && !row.rolbypassrls) {
|
|
130
|
+
throw new RlsFunctionOwnerError(`Cannot apply the namespace RLS template as ${roleName}: the executor role is neither SUPERUSER ` +
|
|
131
|
+
"nor BYPASSRLS. The SECURITY DEFINER helper functions must be owned by a role that bypasses RLS, " +
|
|
132
|
+
"otherwise every policy evaluation recurses under FORCE ROW LEVEL SECURITY and fails. Connect as " +
|
|
133
|
+
"the database owner/BYPASSRLS migration role, or create the helper functions with a dedicated " +
|
|
134
|
+
"BYPASSRLS owner.");
|
|
135
|
+
}
|
|
136
|
+
log.verbose(`Verified RLS function owner privileges for ${roleName}`);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @description Resolves the statement list for the active configuration.
|
|
140
|
+
*/
|
|
141
|
+
statements() {
|
|
142
|
+
const config = this._config ?? {};
|
|
143
|
+
if (config.statements)
|
|
144
|
+
return [...config.statements];
|
|
145
|
+
if (config.policies) {
|
|
146
|
+
return [
|
|
147
|
+
...RLS_FUNCTION_STATEMENTS,
|
|
148
|
+
...rlsPolicyStatements(config.policies),
|
|
149
|
+
];
|
|
150
|
+
}
|
|
151
|
+
return rlsBootstrapStatements();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* @description Binds the acting principal for the current transaction.
|
|
155
|
+
* @summary Issues parameterized `SELECT set_config($1, $2, true)` after
|
|
156
|
+
* validation, so the binding lives only for the current transaction and is
|
|
157
|
+
* discarded on commit/rollback — safe on pooled connections. A session-wide
|
|
158
|
+
* binding request fails with `ValidationError` before any SQL is sent, and
|
|
159
|
+
* the verbose log records only that a binding happened, never the principal
|
|
160
|
+
* id.
|
|
161
|
+
* @param principalId Principal UUID stored in `app.principal_id`.
|
|
162
|
+
* @param options Only `local: true` (the default) is accepted; the binding is
|
|
163
|
+
* always transaction-local and is discarded on commit/rollback.
|
|
164
|
+
* @returns {Promise<void>} Resolves once the setting is bound transaction-locally.
|
|
165
|
+
* @throws {ValidationError} When the principal id is invalid or a session-wide binding is requested.
|
|
166
|
+
*/
|
|
167
|
+
async setPrincipal(principalId, options = {}, ...args) {
|
|
168
|
+
const { log } = (await this.logCtx(args, "setPrincipal", true)).for(this.setPrincipal);
|
|
169
|
+
assertPrincipalId(principalId);
|
|
170
|
+
assertTransactionLocalBinding("setPrincipal", options);
|
|
171
|
+
await this.client.query("SELECT set_config($1, $2, true)", [
|
|
172
|
+
RLS_SETTINGS.Principal,
|
|
173
|
+
principalId,
|
|
174
|
+
]);
|
|
175
|
+
log.verbose("Bound RLS principal (transaction-local)");
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* @description Binds the acting tenant for the current transaction.
|
|
179
|
+
* @summary Issues parameterized `SELECT set_config($1, $2, true)` after
|
|
180
|
+
* validation, so the binding lives only for the current transaction and is
|
|
181
|
+
* discarded on commit/rollback — safe on pooled connections. A session-wide
|
|
182
|
+
* binding request fails with `ValidationError` before any SQL is sent, and
|
|
183
|
+
* the verbose log records only that a binding happened, never the tenant
|
|
184
|
+
* id.
|
|
185
|
+
* @param tenantId Tenant UUID stored in `app.tenant_id`.
|
|
186
|
+
* @param options Only `local: true` (the default) is accepted; the binding is
|
|
187
|
+
* always transaction-local and is discarded on commit/rollback.
|
|
188
|
+
* @returns {Promise<void>} Resolves once the setting is bound transaction-locally.
|
|
189
|
+
* @throws {ValidationError} When the tenant id is invalid or a session-wide binding is requested.
|
|
190
|
+
*/
|
|
191
|
+
async setTenant(tenantId, options = {}, ...args) {
|
|
192
|
+
const { log } = (await this.logCtx(args, "setTenant", true)).for(this.setTenant);
|
|
193
|
+
assertPrincipalId(tenantId);
|
|
194
|
+
assertTransactionLocalBinding("setTenant", options);
|
|
195
|
+
await this.client.query("SELECT set_config($1, $2, true)", [
|
|
196
|
+
RLS_SETTINGS.Tenant,
|
|
197
|
+
tenantId,
|
|
198
|
+
]);
|
|
199
|
+
log.verbose("Bound RLS tenant (transaction-local)");
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* @description Clears the acting principal for the current transaction.
|
|
203
|
+
* @summary Resets `app.principal_id` to the empty string with
|
|
204
|
+
* `SELECT set_config($1, $2, true)`, so the clear is also transaction-local
|
|
205
|
+
* and never reaches the pooled session. A session-wide clear request fails
|
|
206
|
+
* with `ValidationError` before any SQL is sent.
|
|
207
|
+
* @param options Only `local: true` (the default) is accepted; the clear is
|
|
208
|
+
* always transaction-local and does not reach the pooled session.
|
|
209
|
+
* @returns {Promise<void>} Resolves once the setting is cleared transaction-locally.
|
|
210
|
+
* @throws {ValidationError} When a session-wide clear is requested.
|
|
211
|
+
*/
|
|
212
|
+
async clearPrincipal(options = {}, ...args) {
|
|
213
|
+
const { log } = (await this.logCtx(args, "clearPrincipal", true)).for(this.clearPrincipal);
|
|
214
|
+
assertTransactionLocalBinding("clearPrincipal", options);
|
|
215
|
+
await this.client.query("SELECT set_config($1, $2, true)", [
|
|
216
|
+
RLS_SETTINGS.Principal,
|
|
217
|
+
"",
|
|
218
|
+
]);
|
|
219
|
+
log.verbose("Cleared RLS principal (transaction-local)");
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* @description Returns the principal currently bound to the connection.
|
|
223
|
+
*/
|
|
224
|
+
async currentPrincipal(...args) {
|
|
225
|
+
const { log } = (await this.logCtx(args, "currentPrincipal", true)).for(this.currentPrincipal);
|
|
226
|
+
log.verbose("Reading current RLS principal");
|
|
227
|
+
const result = await this.client.query("SELECT app_rls_principal_id() AS principal_id");
|
|
228
|
+
const row = (result.rows?.[0] ?? {});
|
|
229
|
+
return row.principal_id ?? null;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* @description Runs a callback inside a transaction with the RLS principal bound.
|
|
234
|
+
* @summary The executor must be a single connection (`pg.Client`), not a pool,
|
|
235
|
+
* because the transaction and the `app.principal_id` setting are
|
|
236
|
+
* connection-scoped. By default the transaction is rolled back, keeping
|
|
237
|
+
* integration-test mutations isolated; pass `{ commit: true }` for real writes.
|
|
238
|
+
*/
|
|
239
|
+
export async function runAsPrincipal(executor, principalId, run, options = {}) {
|
|
240
|
+
assertPrincipalId(principalId);
|
|
241
|
+
await executor.query("BEGIN");
|
|
242
|
+
try {
|
|
243
|
+
await executor.query("SELECT set_config($1, $2, true)", [
|
|
244
|
+
RLS_SETTINGS.Principal,
|
|
245
|
+
principalId,
|
|
246
|
+
]);
|
|
247
|
+
const result = await run(executor);
|
|
248
|
+
await executor.query(options.commit ? "COMMIT" : "ROLLBACK");
|
|
249
|
+
return result;
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
try {
|
|
253
|
+
await executor.query("ROLLBACK");
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
// preserve the original failure
|
|
257
|
+
}
|
|
258
|
+
throw error;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=rls-bootstrap.service.js.map
|