@decaf-ts/integrations 0.1.1
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/.dockerignore +0 -0
- package/.gitlab-ci.yml +197 -0
- package/.prettierrc +9 -0
- package/.snyk +12 -0
- package/LICENSE.md +21 -0
- package/README.md +22 -0
- package/dist/integrations.cjs +2 -0
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.js +2 -0
- package/dist/integrations.js.map +1 -0
- package/docker/1password-compose.yml +24 -0
- package/docker/aws-compose.yml +24 -0
- package/docker/azure-compose.yml +23 -0
- package/docker/compose.integration.yml +164 -0
- package/docker/gcp-compose.yml +16 -0
- package/docker/keycloak-compose.yml +24 -0
- package/docker/kibana-compose.yml +67 -0
- package/docker/vault-compose.yml +25 -0
- package/eslint.config.js +32 -0
- package/jest.config.cjs +48 -0
- package/lib/cjs/docker/DockerComposeService.cjs +152 -0
- package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
- package/lib/cjs/docker/index.cjs +24 -0
- package/lib/cjs/docker/index.cjs.map +1 -0
- package/lib/cjs/index.cjs +29 -0
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/keycloak/index.cjs +26 -0
- package/lib/cjs/keycloak/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +189 -0
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +245 -0
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +234 -0
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +202 -0
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +249 -0
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakService.cjs +225 -0
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +279 -0
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/index.cjs +30 -0
- package/lib/cjs/keycloak/services/index.cjs.map +1 -0
- package/lib/cjs/keycloak/types.cjs +4 -0
- package/lib/cjs/keycloak/types.cjs.map +1 -0
- package/lib/cjs/kibana/helpers.cjs +62 -0
- package/lib/cjs/kibana/helpers.cjs.map +1 -0
- package/lib/cjs/kibana/index.cjs +27 -0
- package/lib/cjs/kibana/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +148 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +228 -0
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +216 -0
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +184 -0
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaService.cjs +167 -0
- package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +179 -0
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaUserService.cjs +198 -0
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
- package/lib/cjs/kibana/services/index.cjs +24 -0
- package/lib/cjs/kibana/services/index.cjs.map +1 -0
- package/lib/cjs/kibana/types.cjs +4 -0
- package/lib/cjs/kibana/types.cjs.map +1 -0
- package/lib/cjs/nest/authService.cjs +37 -0
- package/lib/cjs/nest/authService.cjs.map +1 -0
- package/lib/cjs/nest/index.cjs +29 -0
- package/lib/cjs/nest/index.cjs.map +1 -0
- package/lib/cjs/nest/keycloakAuthHandler.cjs +44 -0
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
- package/lib/cjs/nest/keycloakModule.cjs +25 -0
- package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
- package/lib/cjs/nest/types.cjs +4 -0
- package/lib/cjs/nest/types.cjs.map +1 -0
- package/lib/cjs/nest/utils.cjs +68 -0
- package/lib/cjs/nest/utils.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +307 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/aws/index.cjs +25 -0
- package/lib/cjs/secrets/aws/index.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +245 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/azure/index.cjs +25 -0
- package/lib/cjs/secrets/azure/index.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretErrors.cjs +70 -0
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretName.cjs +54 -0
- package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs +51 -0
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretSerialization.cjs +52 -0
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretService.cjs +19 -0
- package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretTypes.cjs +4 -0
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
- package/lib/cjs/secrets/core/index.cjs +29 -0
- package/lib/cjs/secrets/core/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +332 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/index.cjs +25 -0
- package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
- package/lib/cjs/secrets/index.cjs +25 -0
- package/lib/cjs/secrets/index.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +80 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretService.cjs +271 -0
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/model/Secret.cjs +49 -0
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
- package/lib/cjs/secrets/model/index.cjs +26 -0
- package/lib/cjs/secrets/model/index.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +402 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/index.cjs +25 -0
- package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +318 -0
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/vault/index.cjs +25 -0
- package/lib/cjs/secrets/vault/index.cjs.map +1 -0
- package/lib/cjs/utils.cjs +43 -0
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/esm/docker/DockerComposeService.js +140 -0
- package/lib/esm/docker/DockerComposeService.js.map +1 -0
- package/lib/esm/docker/index.js +7 -0
- package/lib/esm/docker/index.js.map +1 -0
- package/lib/esm/index.js +11 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/keycloak/index.js +9 -0
- package/lib/esm/keycloak/index.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakAuthService.js +148 -0
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakClientService.js +204 -0
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +193 -0
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRealmService.js +161 -0
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRoleService.js +208 -0
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakService.js +180 -0
- package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakUserService.js +238 -0
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
- package/lib/esm/keycloak/services/index.js +13 -0
- package/lib/esm/keycloak/services/index.js.map +1 -0
- package/lib/esm/keycloak/types.js +2 -0
- package/lib/esm/keycloak/types.js.map +1 -0
- package/lib/esm/kibana/helpers.js +56 -0
- package/lib/esm/kibana/helpers.js.map +1 -0
- package/lib/esm/kibana/index.js +10 -0
- package/lib/esm/kibana/index.js.map +1 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +107 -0
- package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDashboardService.js +182 -0
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDataViewService.js +170 -0
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaRoleService.js +138 -0
- package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaService.js +126 -0
- package/lib/esm/kibana/services/KibanaService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaSpaceService.js +133 -0
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaUserService.js +152 -0
- package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
- package/lib/esm/kibana/services/index.js +13 -0
- package/lib/esm/kibana/services/index.js.map +1 -0
- package/lib/esm/kibana/types.js +2 -0
- package/lib/esm/kibana/types.js.map +1 -0
- package/lib/esm/nest/authService.js +32 -0
- package/lib/esm/nest/authService.js.map +1 -0
- package/lib/esm/nest/index.js +12 -0
- package/lib/esm/nest/index.js.map +1 -0
- package/lib/esm/nest/keycloakAuthHandler.js +39 -0
- package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
- package/lib/esm/nest/keycloakModule.js +19 -0
- package/lib/esm/nest/keycloakModule.js.map +1 -0
- package/lib/esm/nest/types.js +2 -0
- package/lib/esm/nest/types.js.map +1 -0
- package/lib/esm/nest/utils.js +60 -0
- package/lib/esm/nest/utils.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +302 -0
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +2 -0
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/aws/index.js +8 -0
- package/lib/esm/secrets/aws/index.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +240 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +2 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/azure/index.js +8 -0
- package/lib/esm/secrets/azure/index.js.map +1 -0
- package/lib/esm/secrets/core/SecretErrors.js +61 -0
- package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
- package/lib/esm/secrets/core/SecretName.js +49 -0
- package/lib/esm/secrets/core/SecretName.js.map +1 -0
- package/lib/esm/secrets/core/SecretReference.js +45 -0
- package/lib/esm/secrets/core/SecretReference.js.map +1 -0
- package/lib/esm/secrets/core/SecretSerialization.js +47 -0
- package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
- package/lib/esm/secrets/core/SecretService.js +14 -0
- package/lib/esm/secrets/core/SecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretTypes.js +2 -0
- package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
- package/lib/esm/secrets/core/index.js +12 -0
- package/lib/esm/secrets/core/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +294 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +2 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
- package/lib/esm/secrets/gcp/index.js +8 -0
- package/lib/esm/secrets/gcp/index.js.map +1 -0
- package/lib/esm/secrets/index.js +8 -0
- package/lib/esm/secrets/index.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +73 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretService.js +266 -0
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +2 -0
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/model/Secret.js +39 -0
- package/lib/esm/secrets/model/Secret.js.map +1 -0
- package/lib/esm/secrets/model/index.js +9 -0
- package/lib/esm/secrets/model/index.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +397 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +2 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/onepassword/index.js +8 -0
- package/lib/esm/secrets/onepassword/index.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretService.js +312 -0
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +2 -0
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/vault/index.js +8 -0
- package/lib/esm/secrets/vault/index.js.map +1 -0
- package/lib/esm/utils.js +39 -0
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/docker/DockerComposeService.d.cts +53 -0
- package/lib/types/docker/DockerComposeService.d.mts +53 -0
- package/lib/types/docker/index.d.cts +6 -0
- package/lib/types/docker/index.d.mts +6 -0
- package/lib/types/index.d.cts +10 -0
- package/lib/types/index.d.mts +10 -0
- package/lib/types/keycloak/index.d.cts +8 -0
- package/lib/types/keycloak/index.d.mts +8 -0
- package/lib/types/keycloak/services/KeycloakAuthService.d.cts +20 -0
- package/lib/types/keycloak/services/KeycloakAuthService.d.mts +20 -0
- package/lib/types/keycloak/services/KeycloakClientService.d.cts +25 -0
- package/lib/types/keycloak/services/KeycloakClientService.d.mts +25 -0
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.cts +23 -0
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.mts +23 -0
- package/lib/types/keycloak/services/KeycloakRealmService.d.cts +31 -0
- package/lib/types/keycloak/services/KeycloakRealmService.d.mts +31 -0
- package/lib/types/keycloak/services/KeycloakRoleService.d.cts +29 -0
- package/lib/types/keycloak/services/KeycloakRoleService.d.mts +29 -0
- package/lib/types/keycloak/services/KeycloakService.d.cts +38 -0
- package/lib/types/keycloak/services/KeycloakService.d.mts +38 -0
- package/lib/types/keycloak/services/KeycloakUserService.d.cts +46 -0
- package/lib/types/keycloak/services/KeycloakUserService.d.mts +46 -0
- package/lib/types/keycloak/services/index.d.cts +12 -0
- package/lib/types/keycloak/services/index.d.mts +12 -0
- package/lib/types/keycloak/types.d.cts +103 -0
- package/lib/types/keycloak/types.d.mts +103 -0
- package/lib/types/kibana/helpers.d.cts +9 -0
- package/lib/types/kibana/helpers.d.mts +9 -0
- package/lib/types/kibana/index.d.cts +9 -0
- package/lib/types/kibana/index.d.mts +9 -0
- package/lib/types/kibana/services/KibanaAuthService.d.cts +16 -0
- package/lib/types/kibana/services/KibanaAuthService.d.mts +16 -0
- package/lib/types/kibana/services/KibanaDashboardService.d.cts +31 -0
- package/lib/types/kibana/services/KibanaDashboardService.d.mts +31 -0
- package/lib/types/kibana/services/KibanaDataViewService.d.cts +23 -0
- package/lib/types/kibana/services/KibanaDataViewService.d.mts +23 -0
- package/lib/types/kibana/services/KibanaRoleService.d.cts +19 -0
- package/lib/types/kibana/services/KibanaRoleService.d.mts +19 -0
- package/lib/types/kibana/services/KibanaService.d.cts +55 -0
- package/lib/types/kibana/services/KibanaService.d.mts +55 -0
- package/lib/types/kibana/services/KibanaSpaceService.d.cts +20 -0
- package/lib/types/kibana/services/KibanaSpaceService.d.mts +20 -0
- package/lib/types/kibana/services/KibanaUserService.d.cts +19 -0
- package/lib/types/kibana/services/KibanaUserService.d.mts +19 -0
- package/lib/types/kibana/services/index.d.cts +12 -0
- package/lib/types/kibana/services/index.d.mts +12 -0
- package/lib/types/kibana/types.d.cts +75 -0
- package/lib/types/kibana/types.d.mts +75 -0
- package/lib/types/nest/authService.d.cts +9 -0
- package/lib/types/nest/authService.d.mts +9 -0
- package/lib/types/nest/index.d.cts +11 -0
- package/lib/types/nest/index.d.mts +11 -0
- package/lib/types/nest/keycloakAuthHandler.d.cts +7 -0
- package/lib/types/nest/keycloakAuthHandler.d.mts +7 -0
- package/lib/types/nest/keycloakModule.d.cts +15 -0
- package/lib/types/nest/keycloakModule.d.mts +15 -0
- package/lib/types/nest/types.d.cts +48 -0
- package/lib/types/nest/types.d.mts +48 -0
- package/lib/types/nest/utils.d.cts +11 -0
- package/lib/types/nest/utils.d.mts +11 -0
- package/lib/types/secrets/aws/AwsSecretService.d.cts +19 -0
- package/lib/types/secrets/aws/AwsSecretService.d.mts +19 -0
- package/lib/types/secrets/aws/AwsSecretServiceConfig.d.cts +16 -0
- package/lib/types/secrets/aws/AwsSecretServiceConfig.d.mts +16 -0
- package/lib/types/secrets/aws/index.d.cts +7 -0
- package/lib/types/secrets/aws/index.d.mts +7 -0
- package/lib/types/secrets/azure/AzureKeyVaultSecretService.d.cts +20 -0
- package/lib/types/secrets/azure/AzureKeyVaultSecretService.d.mts +20 -0
- package/lib/types/secrets/azure/AzureKeyVaultSecretServiceConfig.d.cts +11 -0
- package/lib/types/secrets/azure/AzureKeyVaultSecretServiceConfig.d.mts +11 -0
- package/lib/types/secrets/azure/index.d.cts +7 -0
- package/lib/types/secrets/azure/index.d.mts +7 -0
- package/lib/types/secrets/core/SecretErrors.d.cts +15 -0
- package/lib/types/secrets/core/SecretErrors.d.mts +15 -0
- package/lib/types/secrets/core/SecretName.d.cts +2 -0
- package/lib/types/secrets/core/SecretName.d.mts +2 -0
- package/lib/types/secrets/core/SecretReference.d.cts +13 -0
- package/lib/types/secrets/core/SecretReference.d.mts +13 -0
- package/lib/types/secrets/core/SecretSerialization.d.cts +3 -0
- package/lib/types/secrets/core/SecretSerialization.d.mts +3 -0
- package/lib/types/secrets/core/SecretService.d.cts +22 -0
- package/lib/types/secrets/core/SecretService.d.mts +22 -0
- package/lib/types/secrets/core/SecretTypes.d.cts +76 -0
- package/lib/types/secrets/core/SecretTypes.d.mts +76 -0
- package/lib/types/secrets/core/index.d.cts +11 -0
- package/lib/types/secrets/core/index.d.mts +11 -0
- package/lib/types/secrets/gcp/GcpSecretManagerService.d.cts +20 -0
- package/lib/types/secrets/gcp/GcpSecretManagerService.d.mts +20 -0
- package/lib/types/secrets/gcp/GcpSecretManagerServiceConfig.d.cts +15 -0
- package/lib/types/secrets/gcp/GcpSecretManagerServiceConfig.d.mts +15 -0
- package/lib/types/secrets/gcp/index.d.cts +7 -0
- package/lib/types/secrets/gcp/index.d.mts +7 -0
- package/lib/types/secrets/index.d.cts +7 -0
- package/lib/types/secrets/index.d.mts +7 -0
- package/lib/types/secrets/model/ModelSecretCrypto.d.cts +11 -0
- package/lib/types/secrets/model/ModelSecretCrypto.d.mts +11 -0
- package/lib/types/secrets/model/ModelSecretService.d.cts +21 -0
- package/lib/types/secrets/model/ModelSecretService.d.mts +21 -0
- package/lib/types/secrets/model/ModelSecretServiceConfig.d.cts +10 -0
- package/lib/types/secrets/model/ModelSecretServiceConfig.d.mts +10 -0
- package/lib/types/secrets/model/Secret.d.cts +24 -0
- package/lib/types/secrets/model/Secret.d.mts +24 -0
- package/lib/types/secrets/model/index.d.cts +8 -0
- package/lib/types/secrets/model/index.d.mts +8 -0
- package/lib/types/secrets/onepassword/OnePasswordSecretService.d.cts +22 -0
- package/lib/types/secrets/onepassword/OnePasswordSecretService.d.mts +22 -0
- package/lib/types/secrets/onepassword/OnePasswordSecretServiceConfig.d.cts +13 -0
- package/lib/types/secrets/onepassword/OnePasswordSecretServiceConfig.d.mts +13 -0
- package/lib/types/secrets/onepassword/index.d.cts +7 -0
- package/lib/types/secrets/onepassword/index.d.mts +7 -0
- package/lib/types/secrets/vault/VaultSecretService.d.cts +37 -0
- package/lib/types/secrets/vault/VaultSecretService.d.mts +37 -0
- package/lib/types/secrets/vault/VaultSecretServiceConfig.d.cts +13 -0
- package/lib/types/secrets/vault/VaultSecretServiceConfig.d.mts +13 -0
- package/lib/types/secrets/vault/index.d.cts +7 -0
- package/lib/types/secrets/vault/index.d.mts +7 -0
- package/lib/types/utils.d.cts +7 -0
- package/lib/types/utils.d.mts +7 -0
- package/package.json +192 -0
- package/renovate.json +21 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/nest/types
|
|
3
|
+
* @summary Nest integration types.
|
|
4
|
+
* @description Shared request-context and auth payload types for Nest integration helpers.
|
|
5
|
+
*/
|
|
6
|
+
export interface KeycloakAccessTokenPayload {
|
|
7
|
+
preferred_username?: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
email_verified?: boolean;
|
|
10
|
+
name?: string;
|
|
11
|
+
given_name?: string;
|
|
12
|
+
family_name?: string;
|
|
13
|
+
iss?: string;
|
|
14
|
+
aud?: string;
|
|
15
|
+
azp?: string;
|
|
16
|
+
realm_access?: {
|
|
17
|
+
roles?: string[];
|
|
18
|
+
};
|
|
19
|
+
resource_access?: Record<string, {
|
|
20
|
+
roles?: string[];
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
export interface KeycloakUser {
|
|
24
|
+
preferred_username?: string;
|
|
25
|
+
email?: string;
|
|
26
|
+
email_verified?: boolean;
|
|
27
|
+
name?: string;
|
|
28
|
+
given_name?: string;
|
|
29
|
+
family_name?: string;
|
|
30
|
+
realm?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AuthRequestLike {
|
|
33
|
+
path?: string;
|
|
34
|
+
method?: string;
|
|
35
|
+
headers?: Record<string, unknown>;
|
|
36
|
+
[key: symbol | string]: unknown;
|
|
37
|
+
}
|
|
38
|
+
export interface AuthExecutionContextLike {
|
|
39
|
+
switchToHttp(): {
|
|
40
|
+
getRequest<T extends AuthRequestLike = AuthRequestLike>(): T;
|
|
41
|
+
};
|
|
42
|
+
getHandler?(): {
|
|
43
|
+
name?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface AuthHandlerLike {
|
|
47
|
+
authorize(context: AuthExecutionContextLike, resource?: string): Promise<void>;
|
|
48
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/nest/types
|
|
3
|
+
* @summary Nest integration types.
|
|
4
|
+
* @description Shared request-context and auth payload types for Nest integration helpers.
|
|
5
|
+
*/
|
|
6
|
+
export interface KeycloakAccessTokenPayload {
|
|
7
|
+
preferred_username?: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
email_verified?: boolean;
|
|
10
|
+
name?: string;
|
|
11
|
+
given_name?: string;
|
|
12
|
+
family_name?: string;
|
|
13
|
+
iss?: string;
|
|
14
|
+
aud?: string;
|
|
15
|
+
azp?: string;
|
|
16
|
+
realm_access?: {
|
|
17
|
+
roles?: string[];
|
|
18
|
+
};
|
|
19
|
+
resource_access?: Record<string, {
|
|
20
|
+
roles?: string[];
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
export interface KeycloakUser {
|
|
24
|
+
preferred_username?: string;
|
|
25
|
+
email?: string;
|
|
26
|
+
email_verified?: boolean;
|
|
27
|
+
name?: string;
|
|
28
|
+
given_name?: string;
|
|
29
|
+
family_name?: string;
|
|
30
|
+
realm?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AuthRequestLike {
|
|
33
|
+
path?: string;
|
|
34
|
+
method?: string;
|
|
35
|
+
headers?: Record<string, unknown>;
|
|
36
|
+
[key: symbol | string]: unknown;
|
|
37
|
+
}
|
|
38
|
+
export interface AuthExecutionContextLike {
|
|
39
|
+
switchToHttp(): {
|
|
40
|
+
getRequest<T extends AuthRequestLike = AuthRequestLike>(): T;
|
|
41
|
+
};
|
|
42
|
+
getHandler?(): {
|
|
43
|
+
name?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface AuthHandlerLike {
|
|
47
|
+
authorize(context: AuthExecutionContextLike, resource?: string): Promise<void>;
|
|
48
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/nest/utils
|
|
3
|
+
* @summary Nest integration utilities.
|
|
4
|
+
* @description Helper functions used by the Nest auth and request-context adapters.
|
|
5
|
+
*/
|
|
6
|
+
import type { KeycloakAccessTokenPayload, KeycloakUser } from "./types.d.cts";
|
|
7
|
+
export declare const DECAF_ADAPTER_OPTIONS: unique symbol;
|
|
8
|
+
export declare function getTokenPayload(jwt: string): KeycloakAccessTokenPayload | null;
|
|
9
|
+
export declare function extractKeycloakRoles(payload: KeycloakAccessTokenPayload | null): string[];
|
|
10
|
+
export declare function getUser(jwt: string): KeycloakUser | undefined;
|
|
11
|
+
export declare function getRealmFromIssuer(jwt: string): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/nest/utils
|
|
3
|
+
* @summary Nest integration utilities.
|
|
4
|
+
* @description Helper functions used by the Nest auth and request-context adapters.
|
|
5
|
+
*/
|
|
6
|
+
import type { KeycloakAccessTokenPayload, KeycloakUser } from "./types.d.mts";
|
|
7
|
+
export declare const DECAF_ADAPTER_OPTIONS: unique symbol;
|
|
8
|
+
export declare function getTokenPayload(jwt: string): KeycloakAccessTokenPayload | null;
|
|
9
|
+
export declare function extractKeycloakRoles(payload: KeycloakAccessTokenPayload | null): string[];
|
|
10
|
+
export declare function getUser(jwt: string): KeycloakUser | undefined;
|
|
11
|
+
export declare function getRealmFromIssuer(jwt: string): string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SecretsManagerClient } from "@aws-sdk/client-secrets-manager";
|
|
2
|
+
import { ClientBasedService, type MaybeContextualArg } from "@decaf-ts/core";
|
|
3
|
+
import { SecretProvider, SecretName, SecretPayload, SecretReference, SecretMetadata } from "../../secrets/core/index.d.cts";
|
|
4
|
+
import { StoreSecretOptions, RetrieveSecretOptions, DeleteSecretOptions, ListSecretsOptions } from "../../secrets/core/index.d.cts";
|
|
5
|
+
import { AwsSecretServiceConfig } from "./AwsSecretServiceConfig.d.cts";
|
|
6
|
+
export declare class AwsSecretService extends ClientBasedService<SecretsManagerClient, AwsSecretServiceConfig> {
|
|
7
|
+
get provider(): SecretProvider;
|
|
8
|
+
initialize(...args: MaybeContextualArg<any>): Promise<{
|
|
9
|
+
config: AwsSecretServiceConfig;
|
|
10
|
+
client: SecretsManagerClient;
|
|
11
|
+
}>;
|
|
12
|
+
store<T extends SecretPayload = SecretPayload>(name: SecretName, value: T, options?: StoreSecretOptions, ...args: MaybeContextualArg<any>): Promise<SecretReference>;
|
|
13
|
+
retrieve<T extends SecretPayload = SecretPayload>(nameOrRef: SecretName | SecretReference, options?: RetrieveSecretOptions, ...args: MaybeContextualArg<any>): Promise<T>;
|
|
14
|
+
delete(nameOrRef: SecretName | SecretReference, options?: DeleteSecretOptions, ...args: MaybeContextualArg<any>): Promise<void>;
|
|
15
|
+
exists(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<boolean>;
|
|
16
|
+
list(options?: ListSecretsOptions, ...args: MaybeContextualArg<any>): Promise<SecretMetadata[]>;
|
|
17
|
+
metadata(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<SecretMetadata | undefined>;
|
|
18
|
+
protected parseError(error: unknown): Error;
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SecretsManagerClient } from "@aws-sdk/client-secrets-manager";
|
|
2
|
+
import { ClientBasedService, type MaybeContextualArg } from "@decaf-ts/core";
|
|
3
|
+
import { SecretProvider, SecretName, SecretPayload, SecretReference, SecretMetadata } from "../../secrets/core/index.d.mts";
|
|
4
|
+
import { StoreSecretOptions, RetrieveSecretOptions, DeleteSecretOptions, ListSecretsOptions } from "../../secrets/core/index.d.mts";
|
|
5
|
+
import { AwsSecretServiceConfig } from "./AwsSecretServiceConfig.d.mts";
|
|
6
|
+
export declare class AwsSecretService extends ClientBasedService<SecretsManagerClient, AwsSecretServiceConfig> {
|
|
7
|
+
get provider(): SecretProvider;
|
|
8
|
+
initialize(...args: MaybeContextualArg<any>): Promise<{
|
|
9
|
+
config: AwsSecretServiceConfig;
|
|
10
|
+
client: SecretsManagerClient;
|
|
11
|
+
}>;
|
|
12
|
+
store<T extends SecretPayload = SecretPayload>(name: SecretName, value: T, options?: StoreSecretOptions, ...args: MaybeContextualArg<any>): Promise<SecretReference>;
|
|
13
|
+
retrieve<T extends SecretPayload = SecretPayload>(nameOrRef: SecretName | SecretReference, options?: RetrieveSecretOptions, ...args: MaybeContextualArg<any>): Promise<T>;
|
|
14
|
+
delete(nameOrRef: SecretName | SecretReference, options?: DeleteSecretOptions, ...args: MaybeContextualArg<any>): Promise<void>;
|
|
15
|
+
exists(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<boolean>;
|
|
16
|
+
list(options?: ListSecretsOptions, ...args: MaybeContextualArg<any>): Promise<SecretMetadata[]>;
|
|
17
|
+
metadata(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<SecretMetadata | undefined>;
|
|
18
|
+
protected parseError(error: unknown): Error;
|
|
19
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/aws/config
|
|
3
|
+
* @summary AWS secret service configuration.
|
|
4
|
+
* @description Configuration schema for the AWS Secrets Manager integration.
|
|
5
|
+
*/
|
|
6
|
+
import { SecretServiceConfig } from "../../secrets/core/index.d.cts";
|
|
7
|
+
export interface AwsSecretServiceConfig extends SecretServiceConfig {
|
|
8
|
+
provider: "aws-secrets-manager";
|
|
9
|
+
region: string;
|
|
10
|
+
credentials?: {
|
|
11
|
+
accessKeyId: string;
|
|
12
|
+
secretAccessKey: string;
|
|
13
|
+
sessionToken?: string;
|
|
14
|
+
};
|
|
15
|
+
endpoint?: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/aws/config
|
|
3
|
+
* @summary AWS secret service configuration.
|
|
4
|
+
* @description Configuration schema for the AWS Secrets Manager integration.
|
|
5
|
+
*/
|
|
6
|
+
import { SecretServiceConfig } from "../../secrets/core/index.d.mts";
|
|
7
|
+
export interface AwsSecretServiceConfig extends SecretServiceConfig {
|
|
8
|
+
provider: "aws-secrets-manager";
|
|
9
|
+
region: string;
|
|
10
|
+
credentials?: {
|
|
11
|
+
accessKeyId: string;
|
|
12
|
+
secretAccessKey: string;
|
|
13
|
+
sessionToken?: string;
|
|
14
|
+
};
|
|
15
|
+
endpoint?: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SecretClient } from "@azure/keyvault-secrets";
|
|
2
|
+
import { SecretProvider } from "../../secrets/core/index.d.cts";
|
|
3
|
+
import { ClientBasedService, type ContextualArgs, type MaybeContextualArg } from "@decaf-ts/core";
|
|
4
|
+
import { SecretName, SecretPayload, SecretReference, SecretMetadata } from "../../secrets/core/index.d.cts";
|
|
5
|
+
import { DeleteSecretOptions, ListSecretsOptions } from "../../secrets/core/index.d.cts";
|
|
6
|
+
import { AzureKeyVaultSecretServiceConfig } from "./AzureKeyVaultSecretServiceConfig.d.cts";
|
|
7
|
+
export declare class AzureKeyVaultSecretService extends ClientBasedService<SecretClient, AzureKeyVaultSecretServiceConfig> {
|
|
8
|
+
readonly provider: SecretProvider;
|
|
9
|
+
initialize(...args: ContextualArgs<any>): Promise<{
|
|
10
|
+
config: AzureKeyVaultSecretServiceConfig;
|
|
11
|
+
client: SecretClient;
|
|
12
|
+
}>;
|
|
13
|
+
store<T extends SecretPayload = SecretPayload>(name: SecretName, value: T, ...args: MaybeContextualArg<any>): Promise<SecretReference>;
|
|
14
|
+
retrieve<T extends SecretPayload = SecretPayload>(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<T>;
|
|
15
|
+
delete(nameOrRef: SecretName | SecretReference, options?: DeleteSecretOptions, ...args: MaybeContextualArg<any>): Promise<void>;
|
|
16
|
+
exists(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<boolean>;
|
|
17
|
+
list(options?: ListSecretsOptions, ...args: MaybeContextualArg<any>): Promise<SecretMetadata[]>;
|
|
18
|
+
metadata(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<SecretMetadata | undefined>;
|
|
19
|
+
protected parseError(error: unknown): Error;
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SecretClient } from "@azure/keyvault-secrets";
|
|
2
|
+
import { SecretProvider } from "../../secrets/core/index.d.mts";
|
|
3
|
+
import { ClientBasedService, type ContextualArgs, type MaybeContextualArg } from "@decaf-ts/core";
|
|
4
|
+
import { SecretName, SecretPayload, SecretReference, SecretMetadata } from "../../secrets/core/index.d.mts";
|
|
5
|
+
import { DeleteSecretOptions, ListSecretsOptions } from "../../secrets/core/index.d.mts";
|
|
6
|
+
import { AzureKeyVaultSecretServiceConfig } from "./AzureKeyVaultSecretServiceConfig.d.mts";
|
|
7
|
+
export declare class AzureKeyVaultSecretService extends ClientBasedService<SecretClient, AzureKeyVaultSecretServiceConfig> {
|
|
8
|
+
readonly provider: SecretProvider;
|
|
9
|
+
initialize(...args: ContextualArgs<any>): Promise<{
|
|
10
|
+
config: AzureKeyVaultSecretServiceConfig;
|
|
11
|
+
client: SecretClient;
|
|
12
|
+
}>;
|
|
13
|
+
store<T extends SecretPayload = SecretPayload>(name: SecretName, value: T, ...args: MaybeContextualArg<any>): Promise<SecretReference>;
|
|
14
|
+
retrieve<T extends SecretPayload = SecretPayload>(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<T>;
|
|
15
|
+
delete(nameOrRef: SecretName | SecretReference, options?: DeleteSecretOptions, ...args: MaybeContextualArg<any>): Promise<void>;
|
|
16
|
+
exists(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<boolean>;
|
|
17
|
+
list(options?: ListSecretsOptions, ...args: MaybeContextualArg<any>): Promise<SecretMetadata[]>;
|
|
18
|
+
metadata(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<SecretMetadata | undefined>;
|
|
19
|
+
protected parseError(error: unknown): Error;
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/azure/config
|
|
3
|
+
* @summary Azure Key Vault secret service configuration.
|
|
4
|
+
* @description Configuration schema for the Azure Key Vault integration.
|
|
5
|
+
*/
|
|
6
|
+
import { SecretServiceConfig } from "../../secrets/core/index.d.cts";
|
|
7
|
+
export interface AzureKeyVaultSecretServiceConfig extends SecretServiceConfig {
|
|
8
|
+
provider: "azure-key-vault";
|
|
9
|
+
vaultUrl: string;
|
|
10
|
+
credentials?: any;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/azure/config
|
|
3
|
+
* @summary Azure Key Vault secret service configuration.
|
|
4
|
+
* @description Configuration schema for the Azure Key Vault integration.
|
|
5
|
+
*/
|
|
6
|
+
import { SecretServiceConfig } from "../../secrets/core/index.d.mts";
|
|
7
|
+
export interface AzureKeyVaultSecretServiceConfig extends SecretServiceConfig {
|
|
8
|
+
provider: "azure-key-vault";
|
|
9
|
+
vaultUrl: string;
|
|
10
|
+
credentials?: any;
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/azure
|
|
3
|
+
* @summary Azure Key Vault secret service exports.
|
|
4
|
+
* @description Re-exports the Azure Key Vault service and its configuration.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./AzureKeyVaultSecretService.d.cts";
|
|
7
|
+
export * from "./AzureKeyVaultSecretServiceConfig.d.cts";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/azure
|
|
3
|
+
* @summary Azure Key Vault secret service exports.
|
|
4
|
+
* @description Re-exports the Azure Key Vault service and its configuration.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./AzureKeyVaultSecretService.d.mts";
|
|
7
|
+
export * from "./AzureKeyVaultSecretServiceConfig.d.mts";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/core/errors
|
|
3
|
+
* @summary Secret core errors.
|
|
4
|
+
* @description Error classes used by the secret service abstraction and provider implementations.
|
|
5
|
+
*/
|
|
6
|
+
import { InternalError } from "@decaf-ts/db-decorators";
|
|
7
|
+
export type SecretErrorCode = "SECRET_NOT_FOUND" | "SECRET_ALREADY_EXISTS" | "SECRET_DISABLED" | "SECRET_INVALID_NAME" | "SECRET_INVALID_PAYLOAD" | "SECRET_SERIALIZATION_FAILED" | "SECRET_DESERIALIZATION_FAILED" | "SECRET_ENCRYPTION_FAILED" | "SECRET_DECRYPTION_FAILED" | "SECRET_PROVIDER_UNAVAILABLE" | "SECRET_PROVIDER_AUTH_FAILED" | "SECRET_PROVIDER_PERMISSION_DENIED" | "SECRET_PROVIDER_RATE_LIMITED" | "SECRET_PROVIDER_CONFLICT" | "SECRET_UNSUPPORTED_OPERATION";
|
|
8
|
+
export declare class SecretError extends InternalError {
|
|
9
|
+
readonly secretCode: SecretErrorCode;
|
|
10
|
+
constructor(secretCode: SecretErrorCode, message: string, cause?: Error);
|
|
11
|
+
}
|
|
12
|
+
export declare function translateError(error: Error): SecretError;
|
|
13
|
+
export declare function translateNameError(error: Error): SecretError;
|
|
14
|
+
export declare function translateSerializationError(error: Error, operation: "serialize" | "deserialize"): SecretError;
|
|
15
|
+
export declare function translateCryptoError(error: Error, operation: "encryption" | "decryption"): SecretError;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/core/errors
|
|
3
|
+
* @summary Secret core errors.
|
|
4
|
+
* @description Error classes used by the secret service abstraction and provider implementations.
|
|
5
|
+
*/
|
|
6
|
+
import { InternalError } from "@decaf-ts/db-decorators";
|
|
7
|
+
export type SecretErrorCode = "SECRET_NOT_FOUND" | "SECRET_ALREADY_EXISTS" | "SECRET_DISABLED" | "SECRET_INVALID_NAME" | "SECRET_INVALID_PAYLOAD" | "SECRET_SERIALIZATION_FAILED" | "SECRET_DESERIALIZATION_FAILED" | "SECRET_ENCRYPTION_FAILED" | "SECRET_DECRYPTION_FAILED" | "SECRET_PROVIDER_UNAVAILABLE" | "SECRET_PROVIDER_AUTH_FAILED" | "SECRET_PROVIDER_PERMISSION_DENIED" | "SECRET_PROVIDER_RATE_LIMITED" | "SECRET_PROVIDER_CONFLICT" | "SECRET_UNSUPPORTED_OPERATION";
|
|
8
|
+
export declare class SecretError extends InternalError {
|
|
9
|
+
readonly secretCode: SecretErrorCode;
|
|
10
|
+
constructor(secretCode: SecretErrorCode, message: string, cause?: Error);
|
|
11
|
+
}
|
|
12
|
+
export declare function translateError(error: Error): SecretError;
|
|
13
|
+
export declare function translateNameError(error: Error): SecretError;
|
|
14
|
+
export declare function translateSerializationError(error: Error, operation: "serialize" | "deserialize"): SecretError;
|
|
15
|
+
export declare function translateCryptoError(error: Error, operation: "encryption" | "decryption"): SecretError;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/core/reference
|
|
3
|
+
* @summary Secret reference helpers.
|
|
4
|
+
* @description Helpers for parsing and normalizing secret references.
|
|
5
|
+
*/
|
|
6
|
+
import { SecretProvider } from "./SecretTypes.d.cts";
|
|
7
|
+
export declare function parseSecretReference(ref: string): {
|
|
8
|
+
provider: SecretProvider;
|
|
9
|
+
name: string;
|
|
10
|
+
version?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function constructSecretReference(provider: SecretProvider, name: string, version?: string): string;
|
|
13
|
+
export declare function isValidSecretReference(ref: string): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/core/reference
|
|
3
|
+
* @summary Secret reference helpers.
|
|
4
|
+
* @description Helpers for parsing and normalizing secret references.
|
|
5
|
+
*/
|
|
6
|
+
import { SecretProvider } from "./SecretTypes.d.mts";
|
|
7
|
+
export declare function parseSecretReference(ref: string): {
|
|
8
|
+
provider: SecretProvider;
|
|
9
|
+
name: string;
|
|
10
|
+
version?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function constructSecretReference(provider: SecretProvider, name: string, version?: string): string;
|
|
13
|
+
export declare function isValidSecretReference(ref: string): boolean;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { SecretPayload, SerializedSecretPayload } from "./SecretTypes.d.cts";
|
|
2
|
+
export declare function serializeSecretPayload(payload: SecretPayload): SerializedSecretPayload;
|
|
3
|
+
export declare function deserializeSecretPayload(serialized: import("./SecretTypes.d.cts").SerializedSecretPayload): SecretPayload;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { SecretPayload, SerializedSecretPayload } from "./SecretTypes.d.mts";
|
|
2
|
+
export declare function serializeSecretPayload(payload: SecretPayload): SerializedSecretPayload;
|
|
3
|
+
export declare function deserializeSecretPayload(serialized: import("./SecretTypes.d.mts").SerializedSecretPayload): SecretPayload;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SecretProvider, SecretServiceConfig } from "./SecretTypes.d.cts";
|
|
2
|
+
import { Service } from "@decaf-ts/core";
|
|
3
|
+
import { SecretName, SecretPayload, SecretReference } from "./SecretTypes.d.cts";
|
|
4
|
+
import { SecretMetadata, StoreSecretOptions } from "./SecretTypes.d.cts";
|
|
5
|
+
import { RetrieveSecretOptions, DeleteSecretOptions, ExistsSecretOptions, ListSecretsOptions, SecretMetadataOptions, RotateSecretOptions } from "./SecretTypes.d.cts";
|
|
6
|
+
/**
|
|
7
|
+
* @class SecretService
|
|
8
|
+
* @summary Base abstraction for secret backends.
|
|
9
|
+
* @description Defines the shared CRUD and metadata contract implemented by the model-backed and provider-backed secret services.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class SecretService<TConfig extends SecretServiceConfig = SecretServiceConfig> extends Service {
|
|
12
|
+
readonly provider: SecretProvider;
|
|
13
|
+
readonly config: Readonly<TConfig>;
|
|
14
|
+
protected constructor(config: TConfig);
|
|
15
|
+
abstract store<T extends SecretPayload = SecretPayload>(name: SecretName, value: T, options?: StoreSecretOptions): Promise<SecretReference>;
|
|
16
|
+
abstract retrieve<T extends SecretPayload = SecretPayload>(nameOrRef: SecretName | SecretReference, options?: RetrieveSecretOptions): Promise<T>;
|
|
17
|
+
abstract delete(nameOrRef: SecretName | SecretReference, options?: DeleteSecretOptions): Promise<void>;
|
|
18
|
+
abstract exists(nameOrRef: SecretName | SecretReference, options?: ExistsSecretOptions): Promise<boolean>;
|
|
19
|
+
abstract list(options?: ListSecretsOptions): Promise<SecretMetadata[]>;
|
|
20
|
+
abstract metadata(nameOrRef: SecretName | SecretReference, options?: SecretMetadataOptions): Promise<SecretMetadata | undefined>;
|
|
21
|
+
rotate?(nameOrRef: SecretName | SecretReference, value: SecretPayload, options?: RotateSecretOptions): Promise<SecretReference>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SecretProvider, SecretServiceConfig } from "./SecretTypes.d.mts";
|
|
2
|
+
import { Service } from "@decaf-ts/core";
|
|
3
|
+
import { SecretName, SecretPayload, SecretReference } from "./SecretTypes.d.mts";
|
|
4
|
+
import { SecretMetadata, StoreSecretOptions } from "./SecretTypes.d.mts";
|
|
5
|
+
import { RetrieveSecretOptions, DeleteSecretOptions, ExistsSecretOptions, ListSecretsOptions, SecretMetadataOptions, RotateSecretOptions } from "./SecretTypes.d.mts";
|
|
6
|
+
/**
|
|
7
|
+
* @class SecretService
|
|
8
|
+
* @summary Base abstraction for secret backends.
|
|
9
|
+
* @description Defines the shared CRUD and metadata contract implemented by the model-backed and provider-backed secret services.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class SecretService<TConfig extends SecretServiceConfig = SecretServiceConfig> extends Service {
|
|
12
|
+
readonly provider: SecretProvider;
|
|
13
|
+
readonly config: Readonly<TConfig>;
|
|
14
|
+
protected constructor(config: TConfig);
|
|
15
|
+
abstract store<T extends SecretPayload = SecretPayload>(name: SecretName, value: T, options?: StoreSecretOptions): Promise<SecretReference>;
|
|
16
|
+
abstract retrieve<T extends SecretPayload = SecretPayload>(nameOrRef: SecretName | SecretReference, options?: RetrieveSecretOptions): Promise<T>;
|
|
17
|
+
abstract delete(nameOrRef: SecretName | SecretReference, options?: DeleteSecretOptions): Promise<void>;
|
|
18
|
+
abstract exists(nameOrRef: SecretName | SecretReference, options?: ExistsSecretOptions): Promise<boolean>;
|
|
19
|
+
abstract list(options?: ListSecretsOptions): Promise<SecretMetadata[]>;
|
|
20
|
+
abstract metadata(nameOrRef: SecretName | SecretReference, options?: SecretMetadataOptions): Promise<SecretMetadata | undefined>;
|
|
21
|
+
rotate?(nameOrRef: SecretName | SecretReference, value: SecretPayload, options?: RotateSecretOptions): Promise<SecretReference>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/core/types
|
|
3
|
+
* @summary Secret core types.
|
|
4
|
+
* @description Shared payload, metadata, option, and configuration types for secret service implementations.
|
|
5
|
+
*/
|
|
6
|
+
export type SecretProvider = "model" | "memory" | "hashicorp-vault" | "aws-secrets-manager" | "azure-key-vault" | "gcp-secret-manager" | "1password";
|
|
7
|
+
export type SecretName = string;
|
|
8
|
+
export type SecretPayload = string | Record<string, unknown> | Uint8Array;
|
|
9
|
+
export interface SerializedSecretPayload {
|
|
10
|
+
encoding: "utf8" | "json" | "base64";
|
|
11
|
+
value: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SecretReference {
|
|
14
|
+
provider: SecretProvider;
|
|
15
|
+
name: string;
|
|
16
|
+
version?: string;
|
|
17
|
+
path?: string;
|
|
18
|
+
uri?: string;
|
|
19
|
+
tenantId?: string;
|
|
20
|
+
namespace?: string;
|
|
21
|
+
metadata?: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
export interface SecretMetadata {
|
|
24
|
+
provider: SecretProvider;
|
|
25
|
+
name: string;
|
|
26
|
+
version?: string;
|
|
27
|
+
createdAt?: Date;
|
|
28
|
+
updatedAt?: Date;
|
|
29
|
+
deletedAt?: Date;
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
contentType?: string;
|
|
32
|
+
tags?: Record<string, string>;
|
|
33
|
+
externalId?: string;
|
|
34
|
+
uri?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface SecretServiceConfig {
|
|
37
|
+
provider: SecretProvider;
|
|
38
|
+
keyId?: string;
|
|
39
|
+
keyRotation?: {
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
period?: string;
|
|
42
|
+
};
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
}
|
|
45
|
+
export interface StoreSecretOptions {
|
|
46
|
+
contentType?: string;
|
|
47
|
+
tags?: Record<string, string>;
|
|
48
|
+
version?: string;
|
|
49
|
+
ttl?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface RetrieveSecretOptions {
|
|
52
|
+
version?: string;
|
|
53
|
+
includeMetadata?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface DeleteSecretOptions {
|
|
56
|
+
force?: boolean;
|
|
57
|
+
version?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface ExistsSecretOptions {
|
|
60
|
+
version?: string;
|
|
61
|
+
}
|
|
62
|
+
export interface ListSecretsOptions {
|
|
63
|
+
limit?: number;
|
|
64
|
+
offset?: number;
|
|
65
|
+
tags?: Record<string, string>;
|
|
66
|
+
enabled?: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface SecretMetadataOptions {
|
|
69
|
+
version?: string;
|
|
70
|
+
includeTags?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface RotateSecretOptions {
|
|
73
|
+
oldVersion?: string;
|
|
74
|
+
newVersion?: string;
|
|
75
|
+
keyId?: string;
|
|
76
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/core/types
|
|
3
|
+
* @summary Secret core types.
|
|
4
|
+
* @description Shared payload, metadata, option, and configuration types for secret service implementations.
|
|
5
|
+
*/
|
|
6
|
+
export type SecretProvider = "model" | "memory" | "hashicorp-vault" | "aws-secrets-manager" | "azure-key-vault" | "gcp-secret-manager" | "1password";
|
|
7
|
+
export type SecretName = string;
|
|
8
|
+
export type SecretPayload = string | Record<string, unknown> | Uint8Array;
|
|
9
|
+
export interface SerializedSecretPayload {
|
|
10
|
+
encoding: "utf8" | "json" | "base64";
|
|
11
|
+
value: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SecretReference {
|
|
14
|
+
provider: SecretProvider;
|
|
15
|
+
name: string;
|
|
16
|
+
version?: string;
|
|
17
|
+
path?: string;
|
|
18
|
+
uri?: string;
|
|
19
|
+
tenantId?: string;
|
|
20
|
+
namespace?: string;
|
|
21
|
+
metadata?: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
export interface SecretMetadata {
|
|
24
|
+
provider: SecretProvider;
|
|
25
|
+
name: string;
|
|
26
|
+
version?: string;
|
|
27
|
+
createdAt?: Date;
|
|
28
|
+
updatedAt?: Date;
|
|
29
|
+
deletedAt?: Date;
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
contentType?: string;
|
|
32
|
+
tags?: Record<string, string>;
|
|
33
|
+
externalId?: string;
|
|
34
|
+
uri?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface SecretServiceConfig {
|
|
37
|
+
provider: SecretProvider;
|
|
38
|
+
keyId?: string;
|
|
39
|
+
keyRotation?: {
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
period?: string;
|
|
42
|
+
};
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
}
|
|
45
|
+
export interface StoreSecretOptions {
|
|
46
|
+
contentType?: string;
|
|
47
|
+
tags?: Record<string, string>;
|
|
48
|
+
version?: string;
|
|
49
|
+
ttl?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface RetrieveSecretOptions {
|
|
52
|
+
version?: string;
|
|
53
|
+
includeMetadata?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface DeleteSecretOptions {
|
|
56
|
+
force?: boolean;
|
|
57
|
+
version?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface ExistsSecretOptions {
|
|
60
|
+
version?: string;
|
|
61
|
+
}
|
|
62
|
+
export interface ListSecretsOptions {
|
|
63
|
+
limit?: number;
|
|
64
|
+
offset?: number;
|
|
65
|
+
tags?: Record<string, string>;
|
|
66
|
+
enabled?: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface SecretMetadataOptions {
|
|
69
|
+
version?: string;
|
|
70
|
+
includeTags?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface RotateSecretOptions {
|
|
73
|
+
oldVersion?: string;
|
|
74
|
+
newVersion?: string;
|
|
75
|
+
keyId?: string;
|
|
76
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/core
|
|
3
|
+
* @summary Secret core exports.
|
|
4
|
+
* @description Re-exports the secret core types, errors, serialization helpers, and name/reference utilities.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./SecretTypes.d.cts";
|
|
7
|
+
export * from "./SecretErrors.d.cts";
|
|
8
|
+
export * from "./SecretSerialization.d.cts";
|
|
9
|
+
export * from "./SecretName.d.cts";
|
|
10
|
+
export * from "./SecretReference.d.cts";
|
|
11
|
+
export * from "./SecretService.d.cts";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/core
|
|
3
|
+
* @summary Secret core exports.
|
|
4
|
+
* @description Re-exports the secret core types, errors, serialization helpers, and name/reference utilities.
|
|
5
|
+
*/
|
|
6
|
+
export * from "./SecretTypes.d.mts";
|
|
7
|
+
export * from "./SecretErrors.d.mts";
|
|
8
|
+
export * from "./SecretSerialization.d.mts";
|
|
9
|
+
export * from "./SecretName.d.mts";
|
|
10
|
+
export * from "./SecretReference.d.mts";
|
|
11
|
+
export * from "./SecretService.d.mts";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SecretManagerServiceClient } from "@google-cloud/secret-manager";
|
|
2
|
+
import { SecretProvider } from "../../secrets/core/index.d.cts";
|
|
3
|
+
import { ClientBasedService, type MaybeContextualArg } from "@decaf-ts/core";
|
|
4
|
+
import { SecretName, SecretPayload, SecretReference, SecretMetadata } from "../../secrets/core/index.d.cts";
|
|
5
|
+
import { StoreSecretOptions, ListSecretsOptions } from "../../secrets/core/index.d.cts";
|
|
6
|
+
import { GcpSecretManagerServiceConfig } from "./GcpSecretManagerServiceConfig.d.cts";
|
|
7
|
+
export declare class GcpSecretManagerService extends ClientBasedService<SecretManagerServiceClient, GcpSecretManagerServiceConfig> {
|
|
8
|
+
readonly provider: SecretProvider;
|
|
9
|
+
initialize(...args: MaybeContextualArg<any>): Promise<{
|
|
10
|
+
config: GcpSecretManagerServiceConfig;
|
|
11
|
+
client: SecretManagerServiceClient;
|
|
12
|
+
}>;
|
|
13
|
+
store<T extends SecretPayload = SecretPayload>(name: SecretName, value: T, options?: StoreSecretOptions, ...args: MaybeContextualArg<any>): Promise<SecretReference>;
|
|
14
|
+
retrieve<T extends SecretPayload = SecretPayload>(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<T>;
|
|
15
|
+
delete(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<void>;
|
|
16
|
+
exists(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<boolean>;
|
|
17
|
+
list(options?: ListSecretsOptions, ...args: MaybeContextualArg<any>): Promise<SecretMetadata[]>;
|
|
18
|
+
metadata(nameOrRef: SecretName | SecretReference, ...args: MaybeContextualArg<any>): Promise<SecretMetadata | undefined>;
|
|
19
|
+
protected parseError(error: unknown): Error;
|
|
20
|
+
}
|