@xemahq/installation-tenancy 0.0.0-stage → 0.2.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/LICENSE +175 -0
- package/README.md +8 -2
- package/dist/deployment-root/claims.d.ts +8 -0
- package/dist/deployment-root/claims.d.ts.map +1 -0
- package/dist/deployment-root/claims.js +144 -0
- package/dist/deployment-root/claims.js.map +1 -0
- package/dist/deployment-root/index.d.ts +3 -0
- package/dist/deployment-root/index.d.ts.map +1 -0
- package/dist/deployment-root/index.js +19 -0
- package/dist/deployment-root/index.js.map +1 -0
- package/dist/deployment-root/read.d.ts +26 -0
- package/dist/deployment-root/read.d.ts.map +1 -0
- package/dist/deployment-root/read.js +114 -0
- package/dist/deployment-root/read.js.map +1 -0
- package/dist/etcd/apply.d.ts +6 -0
- package/dist/etcd/apply.d.ts.map +1 -0
- package/dist/etcd/apply.js +70 -0
- package/dist/etcd/apply.js.map +1 -0
- package/dist/etcd/connection.d.ts +32 -0
- package/dist/etcd/connection.d.ts.map +1 -0
- package/dist/etcd/connection.js +83 -0
- package/dist/etcd/connection.js.map +1 -0
- package/dist/etcd/identities.d.ts +10 -0
- package/dist/etcd/identities.d.ts.map +1 -0
- package/dist/etcd/identities.js +29 -0
- package/dist/etcd/identities.js.map +1 -0
- package/dist/etcd/index.d.ts +5 -0
- package/dist/etcd/index.d.ts.map +1 -0
- package/dist/etcd/index.js +21 -0
- package/dist/etcd/index.js.map +1 -0
- package/dist/etcd/lifecycle.d.ts +9 -0
- package/dist/etcd/lifecycle.d.ts.map +1 -0
- package/dist/etcd/lifecycle.js +162 -0
- package/dist/etcd/lifecycle.js.map +1 -0
- package/dist/etcd/operations.d.ts +15 -0
- package/dist/etcd/operations.d.ts.map +1 -0
- package/dist/etcd/operations.js +56 -0
- package/dist/etcd/operations.js.map +1 -0
- package/dist/etcd/plan.d.ts +9 -0
- package/dist/etcd/plan.d.ts.map +1 -0
- package/dist/etcd/plan.js +84 -0
- package/dist/etcd/plan.js.map +1 -0
- package/dist/etcd/provider.d.ts +15 -0
- package/dist/etcd/provider.d.ts.map +1 -0
- package/dist/etcd/provider.js +30 -0
- package/dist/etcd/provider.js.map +1 -0
- package/dist/etcd/spec.d.ts +27 -0
- package/dist/etcd/spec.d.ts.map +1 -0
- package/dist/etcd/spec.js +29 -0
- package/dist/etcd/spec.js.map +1 -0
- package/dist/identity/apply.d.ts +6 -0
- package/dist/identity/apply.d.ts.map +1 -0
- package/dist/identity/apply.js +56 -0
- package/dist/identity/apply.js.map +1 -0
- package/dist/identity/connection.d.ts +19 -0
- package/dist/identity/connection.d.ts.map +1 -0
- package/dist/identity/connection.js +21 -0
- package/dist/identity/connection.js.map +1 -0
- package/dist/identity/door.d.ts +23 -0
- package/dist/identity/door.d.ts.map +1 -0
- package/dist/identity/door.js +79 -0
- package/dist/identity/door.js.map +1 -0
- package/dist/identity/index.d.ts +8 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +29 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/lifecycle.d.ts +16 -0
- package/dist/identity/lifecycle.d.ts.map +1 -0
- package/dist/identity/lifecycle.js +153 -0
- package/dist/identity/lifecycle.js.map +1 -0
- package/dist/identity/operations.d.ts +27 -0
- package/dist/identity/operations.d.ts.map +1 -0
- package/dist/identity/operations.js +140 -0
- package/dist/identity/operations.js.map +1 -0
- package/dist/identity/plan.d.ts +7 -0
- package/dist/identity/plan.d.ts.map +1 -0
- package/dist/identity/plan.js +93 -0
- package/dist/identity/plan.js.map +1 -0
- package/dist/identity/provider.d.ts +15 -0
- package/dist/identity/provider.d.ts.map +1 -0
- package/dist/identity/provider.js +30 -0
- package/dist/identity/provider.js.map +1 -0
- package/dist/identity/spec.d.ts +26 -0
- package/dist/identity/spec.d.ts.map +1 -0
- package/dist/identity/spec.js +10 -0
- package/dist/identity/spec.js.map +1 -0
- package/dist/identity/wire.d.ts +71 -0
- package/dist/identity/wire.d.ts.map +1 -0
- package/dist/identity/wire.js +54 -0
- package/dist/identity/wire.js.map +1 -0
- package/dist/identity/workload-key.d.ts +15 -0
- package/dist/identity/workload-key.d.ts.map +1 -0
- package/dist/identity/workload-key.js +16 -0
- package/dist/identity/workload-key.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/installation/authority.d.ts +22 -0
- package/dist/installation/authority.d.ts.map +1 -0
- package/dist/installation/authority.js +115 -0
- package/dist/installation/authority.js.map +1 -0
- package/dist/installation/backends.d.ts +15 -0
- package/dist/installation/backends.d.ts.map +1 -0
- package/dist/installation/backends.js +60 -0
- package/dist/installation/backends.js.map +1 -0
- package/dist/installation/context.d.ts +31 -0
- package/dist/installation/context.d.ts.map +1 -0
- package/dist/installation/context.js +3 -0
- package/dist/installation/context.js.map +1 -0
- package/dist/installation/create.d.ts +24 -0
- package/dist/installation/create.d.ts.map +1 -0
- package/dist/installation/create.js +63 -0
- package/dist/installation/create.js.map +1 -0
- package/dist/installation/delete.d.ts +17 -0
- package/dist/installation/delete.d.ts.map +1 -0
- package/dist/installation/delete.js +67 -0
- package/dist/installation/delete.js.map +1 -0
- package/dist/installation/fences.d.ts +16 -0
- package/dist/installation/fences.d.ts.map +1 -0
- package/dist/installation/fences.js +82 -0
- package/dist/installation/fences.js.map +1 -0
- package/dist/installation/import.d.ts +19 -0
- package/dist/installation/import.d.ts.map +1 -0
- package/dist/installation/import.js +61 -0
- package/dist/installation/import.js.map +1 -0
- package/dist/installation/index.d.ts +12 -0
- package/dist/installation/index.d.ts.map +1 -0
- package/dist/installation/index.js +28 -0
- package/dist/installation/index.js.map +1 -0
- package/dist/installation/plan.d.ts +10 -0
- package/dist/installation/plan.d.ts.map +1 -0
- package/dist/installation/plan.js +59 -0
- package/dist/installation/plan.js.map +1 -0
- package/dist/installation/protect.d.ts +3 -0
- package/dist/installation/protect.d.ts.map +1 -0
- package/dist/installation/protect.js +12 -0
- package/dist/installation/protect.js.map +1 -0
- package/dist/installation/residue.d.ts +5 -0
- package/dist/installation/residue.d.ts.map +1 -0
- package/dist/installation/residue.js +27 -0
- package/dist/installation/residue.js.map +1 -0
- package/dist/installation/seed.d.ts +11 -0
- package/dist/installation/seed.d.ts.map +1 -0
- package/dist/installation/seed.js +46 -0
- package/dist/installation/seed.js.map +1 -0
- package/dist/inventory/document.d.ts +12 -0
- package/dist/inventory/document.d.ts.map +1 -0
- package/dist/inventory/document.js +75 -0
- package/dist/inventory/document.js.map +1 -0
- package/dist/inventory/enums.d.ts +88 -0
- package/dist/inventory/enums.d.ts.map +1 -0
- package/dist/inventory/enums.js +111 -0
- package/dist/inventory/enums.js.map +1 -0
- package/dist/inventory/index.d.ts +5 -0
- package/dist/inventory/index.d.ts.map +1 -0
- package/dist/inventory/index.js +21 -0
- package/dist/inventory/index.js.map +1 -0
- package/dist/inventory/kubernetes-auth.d.ts +6 -0
- package/dist/inventory/kubernetes-auth.d.ts.map +1 -0
- package/dist/inventory/kubernetes-auth.js +12 -0
- package/dist/inventory/kubernetes-auth.js.map +1 -0
- package/dist/inventory/schema.d.ts +756 -0
- package/dist/inventory/schema.d.ts.map +1 -0
- package/dist/inventory/schema.js +153 -0
- package/dist/inventory/schema.js.map +1 -0
- package/dist/keycloak/admin-client-mappers.d.ts +17 -0
- package/dist/keycloak/admin-client-mappers.d.ts.map +1 -0
- package/dist/keycloak/admin-client-mappers.js +69 -0
- package/dist/keycloak/admin-client-mappers.js.map +1 -0
- package/dist/keycloak/apply.d.ts +6 -0
- package/dist/keycloak/apply.d.ts.map +1 -0
- package/dist/keycloak/apply.js +124 -0
- package/dist/keycloak/apply.js.map +1 -0
- package/dist/keycloak/bootstrap.d.ts +11 -0
- package/dist/keycloak/bootstrap.d.ts.map +1 -0
- package/dist/keycloak/bootstrap.js +38 -0
- package/dist/keycloak/bootstrap.js.map +1 -0
- package/dist/keycloak/connection.d.ts +27 -0
- package/dist/keycloak/connection.d.ts.map +1 -0
- package/dist/keycloak/connection.js +24 -0
- package/dist/keycloak/connection.js.map +1 -0
- package/dist/keycloak/door.d.ts +26 -0
- package/dist/keycloak/door.d.ts.map +1 -0
- package/dist/keycloak/door.js +72 -0
- package/dist/keycloak/door.js.map +1 -0
- package/dist/keycloak/index.d.ts +7 -0
- package/dist/keycloak/index.d.ts.map +1 -0
- package/dist/keycloak/index.js +27 -0
- package/dist/keycloak/index.js.map +1 -0
- package/dist/keycloak/lifecycle.d.ts +9 -0
- package/dist/keycloak/lifecycle.d.ts.map +1 -0
- package/dist/keycloak/lifecycle.js +144 -0
- package/dist/keycloak/lifecycle.js.map +1 -0
- package/dist/keycloak/local-realm.d.ts +9 -0
- package/dist/keycloak/local-realm.d.ts.map +1 -0
- package/dist/keycloak/local-realm.js +406 -0
- package/dist/keycloak/local-realm.js.map +1 -0
- package/dist/keycloak/operations.d.ts +26 -0
- package/dist/keycloak/operations.d.ts.map +1 -0
- package/dist/keycloak/operations.js +95 -0
- package/dist/keycloak/operations.js.map +1 -0
- package/dist/keycloak/plan.d.ts +11 -0
- package/dist/keycloak/plan.d.ts.map +1 -0
- package/dist/keycloak/plan.js +140 -0
- package/dist/keycloak/plan.js.map +1 -0
- package/dist/keycloak/provider.d.ts +15 -0
- package/dist/keycloak/provider.d.ts.map +1 -0
- package/dist/keycloak/provider.js +30 -0
- package/dist/keycloak/provider.js.map +1 -0
- package/dist/keycloak/spec.d.ts +50 -0
- package/dist/keycloak/spec.d.ts.map +1 -0
- package/dist/keycloak/spec.js +19 -0
- package/dist/keycloak/spec.js.map +1 -0
- package/dist/member-config.d.ts +15 -0
- package/dist/member-config.d.ts.map +1 -0
- package/dist/member-config.js +48 -0
- package/dist/member-config.js.map +1 -0
- package/dist/member-environment/bootstrap-clients.d.ts +5 -0
- package/dist/member-environment/bootstrap-clients.d.ts.map +1 -0
- package/dist/member-environment/bootstrap-clients.js +13 -0
- package/dist/member-environment/bootstrap-clients.js.map +1 -0
- package/dist/member-environment/delivery-env.d.ts +3 -0
- package/dist/member-environment/delivery-env.d.ts.map +1 -0
- package/dist/member-environment/delivery-env.js +7 -0
- package/dist/member-environment/delivery-env.js.map +1 -0
- package/dist/member-environment/errors.d.ts +14 -0
- package/dist/member-environment/errors.d.ts.map +1 -0
- package/dist/member-environment/errors.js +24 -0
- package/dist/member-environment/errors.js.map +1 -0
- package/dist/member-environment/index.d.ts +6 -0
- package/dist/member-environment/index.d.ts.map +1 -0
- package/dist/member-environment/index.js +22 -0
- package/dist/member-environment/index.js.map +1 -0
- package/dist/member-environment/installation.d.ts +6 -0
- package/dist/member-environment/installation.d.ts.map +1 -0
- package/dist/member-environment/installation.js +3 -0
- package/dist/member-environment/installation.js.map +1 -0
- package/dist/member-environment/lookup.d.ts +20 -0
- package/dist/member-environment/lookup.d.ts.map +1 -0
- package/dist/member-environment/lookup.js +61 -0
- package/dist/member-environment/lookup.js.map +1 -0
- package/dist/member-environment/member-environment.d.ts +5 -0
- package/dist/member-environment/member-environment.d.ts.map +1 -0
- package/dist/member-environment/member-environment.js +147 -0
- package/dist/member-environment/member-environment.js.map +1 -0
- package/dist/member-environment/names.d.ts +28 -0
- package/dist/member-environment/names.d.ts.map +1 -0
- package/dist/member-environment/names.js +32 -0
- package/dist/member-environment/names.js.map +1 -0
- package/dist/naming/identifiers.d.ts +8 -0
- package/dist/naming/identifiers.d.ts.map +1 -0
- package/dist/naming/identifiers.js +27 -0
- package/dist/naming/identifiers.js.map +1 -0
- package/dist/naming/index.d.ts +4 -0
- package/dist/naming/index.d.ts.map +1 -0
- package/dist/naming/index.js +20 -0
- package/dist/naming/index.js.map +1 -0
- package/dist/naming/installation-names.d.ts +37 -0
- package/dist/naming/installation-names.d.ts.map +1 -0
- package/dist/naming/installation-names.js +78 -0
- package/dist/naming/installation-names.js.map +1 -0
- package/dist/naming/workload-key-names.d.ts +6 -0
- package/dist/naming/workload-key-names.d.ts.map +1 -0
- package/dist/naming/workload-key-names.js +14 -0
- package/dist/naming/workload-key-names.js.map +1 -0
- package/dist/object-store/apply.d.ts +6 -0
- package/dist/object-store/apply.d.ts.map +1 -0
- package/dist/object-store/apply.js +59 -0
- package/dist/object-store/apply.js.map +1 -0
- package/dist/object-store/connection.d.ts +36 -0
- package/dist/object-store/connection.d.ts.map +1 -0
- package/dist/object-store/connection.js +9 -0
- package/dist/object-store/connection.js.map +1 -0
- package/dist/object-store/identities.d.ts +4 -0
- package/dist/object-store/identities.d.ts.map +1 -0
- package/dist/object-store/identities.js +20 -0
- package/dist/object-store/identities.js.map +1 -0
- package/dist/object-store/index.d.ts +12 -0
- package/dist/object-store/index.d.ts.map +1 -0
- package/dist/object-store/index.js +28 -0
- package/dist/object-store/index.js.map +1 -0
- package/dist/object-store/lifecycle.d.ts +10 -0
- package/dist/object-store/lifecycle.d.ts.map +1 -0
- package/dist/object-store/lifecycle.js +190 -0
- package/dist/object-store/lifecycle.js.map +1 -0
- package/dist/object-store/madmin-crypto.d.ts +2 -0
- package/dist/object-store/madmin-crypto.d.ts.map +1 -0
- package/dist/object-store/madmin-crypto.js +35 -0
- package/dist/object-store/madmin-crypto.js.map +1 -0
- package/dist/object-store/minio-identity.d.ts +21 -0
- package/dist/object-store/minio-identity.d.ts.map +1 -0
- package/dist/object-store/minio-identity.js +94 -0
- package/dist/object-store/minio-identity.js.map +1 -0
- package/dist/object-store/plan.d.ts +8 -0
- package/dist/object-store/plan.d.ts.map +1 -0
- package/dist/object-store/plan.js +102 -0
- package/dist/object-store/plan.js.map +1 -0
- package/dist/object-store/policy.d.ts +6 -0
- package/dist/object-store/policy.d.ts.map +1 -0
- package/dist/object-store/policy.js +41 -0
- package/dist/object-store/policy.js.map +1 -0
- package/dist/object-store/provider.d.ts +15 -0
- package/dist/object-store/provider.d.ts.map +1 -0
- package/dist/object-store/provider.js +30 -0
- package/dist/object-store/provider.js.map +1 -0
- package/dist/object-store/s3-client.d.ts +36 -0
- package/dist/object-store/s3-client.d.ts.map +1 -0
- package/dist/object-store/s3-client.js +124 -0
- package/dist/object-store/s3-client.js.map +1 -0
- package/dist/object-store/sigv4.d.ts +15 -0
- package/dist/object-store/sigv4.d.ts.map +1 -0
- package/dist/object-store/sigv4.js +47 -0
- package/dist/object-store/sigv4.js.map +1 -0
- package/dist/object-store/spec.d.ts +34 -0
- package/dist/object-store/spec.d.ts.map +1 -0
- package/dist/object-store/spec.js +31 -0
- package/dist/object-store/spec.js.map +1 -0
- package/dist/openbao/action.d.ts +7 -0
- package/dist/openbao/action.d.ts.map +1 -0
- package/dist/openbao/action.js +26 -0
- package/dist/openbao/action.js.map +1 -0
- package/dist/openbao/apply.d.ts +6 -0
- package/dist/openbao/apply.d.ts.map +1 -0
- package/dist/openbao/apply.js +120 -0
- package/dist/openbao/apply.js.map +1 -0
- package/dist/openbao/connection.d.ts +22 -0
- package/dist/openbao/connection.d.ts.map +1 -0
- package/dist/openbao/connection.js +57 -0
- package/dist/openbao/connection.js.map +1 -0
- package/dist/openbao/errors.d.ts +6 -0
- package/dist/openbao/errors.d.ts.map +1 -0
- package/dist/openbao/errors.js +14 -0
- package/dist/openbao/errors.js.map +1 -0
- package/dist/openbao/index.d.ts +8 -0
- package/dist/openbao/index.d.ts.map +1 -0
- package/dist/openbao/index.js +29 -0
- package/dist/openbao/index.js.map +1 -0
- package/dist/openbao/lifecycle.d.ts +16 -0
- package/dist/openbao/lifecycle.d.ts.map +1 -0
- package/dist/openbao/lifecycle.js +229 -0
- package/dist/openbao/lifecycle.js.map +1 -0
- package/dist/openbao/member-auth-plan.d.ts +6 -0
- package/dist/openbao/member-auth-plan.d.ts.map +1 -0
- package/dist/openbao/member-auth-plan.js +65 -0
- package/dist/openbao/member-auth-plan.js.map +1 -0
- package/dist/openbao/member-auth.d.ts +33 -0
- package/dist/openbao/member-auth.d.ts.map +1 -0
- package/dist/openbao/member-auth.js +145 -0
- package/dist/openbao/member-auth.js.map +1 -0
- package/dist/openbao/member-env.d.ts +9 -0
- package/dist/openbao/member-env.d.ts.map +1 -0
- package/dist/openbao/member-env.js +87 -0
- package/dist/openbao/member-env.js.map +1 -0
- package/dist/openbao/member-keys.d.ts +5 -0
- package/dist/openbao/member-keys.d.ts.map +1 -0
- package/dist/openbao/member-keys.js +29 -0
- package/dist/openbao/member-keys.js.map +1 -0
- package/dist/openbao/operations.d.ts +18 -0
- package/dist/openbao/operations.d.ts.map +1 -0
- package/dist/openbao/operations.js +105 -0
- package/dist/openbao/operations.js.map +1 -0
- package/dist/openbao/plan.d.ts +10 -0
- package/dist/openbao/plan.d.ts.map +1 -0
- package/dist/openbao/plan.js +85 -0
- package/dist/openbao/plan.js.map +1 -0
- package/dist/openbao/provider.d.ts +15 -0
- package/dist/openbao/provider.d.ts.map +1 -0
- package/dist/openbao/provider.js +30 -0
- package/dist/openbao/provider.js.map +1 -0
- package/dist/openbao/secret-writer.d.ts +16 -0
- package/dist/openbao/secret-writer.d.ts.map +1 -0
- package/dist/openbao/secret-writer.js +67 -0
- package/dist/openbao/secret-writer.js.map +1 -0
- package/dist/openbao/spec.d.ts +47 -0
- package/dist/openbao/spec.d.ts.map +1 -0
- package/dist/openbao/spec.js +18 -0
- package/dist/openbao/spec.js.map +1 -0
- package/dist/openbao-login/env.d.ts +8 -0
- package/dist/openbao-login/env.d.ts.map +1 -0
- package/dist/openbao-login/env.js +11 -0
- package/dist/openbao-login/env.js.map +1 -0
- package/dist/openbao-login/errors.d.ts +11 -0
- package/dist/openbao-login/errors.d.ts.map +1 -0
- package/dist/openbao-login/errors.js +26 -0
- package/dist/openbao-login/errors.js.map +1 -0
- package/dist/openbao-login/index.d.ts +5 -0
- package/dist/openbao-login/index.d.ts.map +1 -0
- package/dist/openbao-login/index.js +21 -0
- package/dist/openbao-login/index.js.map +1 -0
- package/dist/openbao-login/login.d.ts +52 -0
- package/dist/openbao-login/login.d.ts.map +1 -0
- package/dist/openbao-login/login.js +141 -0
- package/dist/openbao-login/login.js.map +1 -0
- package/dist/openbao-login/read.d.ts +4 -0
- package/dist/openbao-login/read.d.ts.map +1 -0
- package/dist/openbao-login/read.js +18 -0
- package/dist/openbao-login/read.js.map +1 -0
- package/dist/openfga-tenancy/apply.d.ts +5 -0
- package/dist/openfga-tenancy/apply.d.ts.map +1 -0
- package/dist/openfga-tenancy/apply.js +18 -0
- package/dist/openfga-tenancy/apply.js.map +1 -0
- package/dist/openfga-tenancy/connection.d.ts +21 -0
- package/dist/openfga-tenancy/connection.d.ts.map +1 -0
- package/dist/openfga-tenancy/connection.js +42 -0
- package/dist/openfga-tenancy/connection.js.map +1 -0
- package/dist/openfga-tenancy/index.d.ts +4 -0
- package/dist/openfga-tenancy/index.d.ts.map +1 -0
- package/dist/openfga-tenancy/index.js +20 -0
- package/dist/openfga-tenancy/index.js.map +1 -0
- package/dist/openfga-tenancy/lifecycle.d.ts +8 -0
- package/dist/openfga-tenancy/lifecycle.d.ts.map +1 -0
- package/dist/openfga-tenancy/lifecycle.js +80 -0
- package/dist/openfga-tenancy/lifecycle.js.map +1 -0
- package/dist/openfga-tenancy/operations.d.ts +11 -0
- package/dist/openfga-tenancy/operations.d.ts.map +1 -0
- package/dist/openfga-tenancy/operations.js +55 -0
- package/dist/openfga-tenancy/operations.js.map +1 -0
- package/dist/openfga-tenancy/plan.d.ts +9 -0
- package/dist/openfga-tenancy/plan.d.ts.map +1 -0
- package/dist/openfga-tenancy/plan.js +34 -0
- package/dist/openfga-tenancy/plan.js.map +1 -0
- package/dist/openfga-tenancy/provider.d.ts +14 -0
- package/dist/openfga-tenancy/provider.d.ts.map +1 -0
- package/dist/openfga-tenancy/provider.js +30 -0
- package/dist/openfga-tenancy/provider.js.map +1 -0
- package/dist/openfga-tenancy/spec.d.ts +9 -0
- package/dist/openfga-tenancy/spec.d.ts.map +1 -0
- package/dist/openfga-tenancy/spec.js +8 -0
- package/dist/openfga-tenancy/spec.js.map +1 -0
- package/dist/platform-services/platform-service-declarations.d.ts +8 -0
- package/dist/platform-services/platform-service-declarations.d.ts.map +1 -0
- package/dist/platform-services/platform-service-declarations.js +53 -0
- package/dist/platform-services/platform-service-declarations.js.map +1 -0
- package/dist/postgres/apply.d.ts +6 -0
- package/dist/postgres/apply.d.ts.map +1 -0
- package/dist/postgres/apply.js +171 -0
- package/dist/postgres/apply.js.map +1 -0
- package/dist/postgres/connection-demand.d.ts +14 -0
- package/dist/postgres/connection-demand.d.ts.map +1 -0
- package/dist/postgres/connection-demand.js +21 -0
- package/dist/postgres/connection-demand.js.map +1 -0
- package/dist/postgres/connection.d.ts +31 -0
- package/dist/postgres/connection.d.ts.map +1 -0
- package/dist/postgres/connection.js +64 -0
- package/dist/postgres/connection.js.map +1 -0
- package/dist/postgres/delete.d.ts +5 -0
- package/dist/postgres/delete.d.ts.map +1 -0
- package/dist/postgres/delete.js +89 -0
- package/dist/postgres/delete.js.map +1 -0
- package/dist/postgres/discover.d.ts +5 -0
- package/dist/postgres/discover.d.ts.map +1 -0
- package/dist/postgres/discover.js +100 -0
- package/dist/postgres/discover.js.map +1 -0
- package/dist/postgres/guard.d.ts +4 -0
- package/dist/postgres/guard.d.ts.map +1 -0
- package/dist/postgres/guard.js +26 -0
- package/dist/postgres/guard.js.map +1 -0
- package/dist/postgres/index.d.ts +9 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +25 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/markers.d.ts +3 -0
- package/dist/postgres/markers.d.ts.map +1 -0
- package/dist/postgres/markers.js +16 -0
- package/dist/postgres/markers.js.map +1 -0
- package/dist/postgres/ownership.d.ts +11 -0
- package/dist/postgres/ownership.d.ts.map +1 -0
- package/dist/postgres/ownership.js +33 -0
- package/dist/postgres/ownership.js.map +1 -0
- package/dist/postgres/plan.d.ts +9 -0
- package/dist/postgres/plan.d.ts.map +1 -0
- package/dist/postgres/plan.js +319 -0
- package/dist/postgres/plan.js.map +1 -0
- package/dist/postgres/provider.d.ts +15 -0
- package/dist/postgres/provider.d.ts.map +1 -0
- package/dist/postgres/provider.js +33 -0
- package/dist/postgres/provider.js.map +1 -0
- package/dist/postgres/residue.d.ts +5 -0
- package/dist/postgres/residue.d.ts.map +1 -0
- package/dist/postgres/residue.js +21 -0
- package/dist/postgres/residue.js.map +1 -0
- package/dist/postgres/scram.d.ts +7 -0
- package/dist/postgres/scram.d.ts.map +1 -0
- package/dist/postgres/scram.js +26 -0
- package/dist/postgres/scram.js.map +1 -0
- package/dist/postgres/secret-paths.d.ts +8 -0
- package/dist/postgres/secret-paths.d.ts.map +1 -0
- package/dist/postgres/secret-paths.js +21 -0
- package/dist/postgres/secret-paths.js.map +1 -0
- package/dist/postgres/spec.d.ts +61 -0
- package/dist/postgres/spec.d.ts.map +1 -0
- package/dist/postgres/spec.js +50 -0
- package/dist/postgres/spec.js.map +1 -0
- package/dist/postgres/sql.d.ts +3 -0
- package/dist/postgres/sql.d.ts.map +1 -0
- package/dist/postgres/sql.js +14 -0
- package/dist/postgres/sql.js.map +1 -0
- package/dist/postgres/state.d.ts +41 -0
- package/dist/postgres/state.d.ts.map +1 -0
- package/dist/postgres/state.js +103 -0
- package/dist/postgres/state.js.map +1 -0
- package/dist/postgres/verify.d.ts +5 -0
- package/dist/postgres/verify.d.ts.map +1 -0
- package/dist/postgres/verify.js +71 -0
- package/dist/postgres/verify.js.map +1 -0
- package/dist/provider/errors.d.ts +9 -0
- package/dist/provider/errors.d.ts.map +1 -0
- package/dist/provider/errors.js +22 -0
- package/dist/provider/errors.js.map +1 -0
- package/dist/provider/generate-secret.d.ts +3 -0
- package/dist/provider/generate-secret.d.ts.map +1 -0
- package/dist/provider/generate-secret.js +12 -0
- package/dist/provider/generate-secret.js.map +1 -0
- package/dist/provider/index.d.ts +7 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +23 -0
- package/dist/provider/index.js.map +1 -0
- package/dist/provider/journal.d.ts +20 -0
- package/dist/provider/journal.d.ts.map +1 -0
- package/dist/provider/journal.js +99 -0
- package/dist/provider/journal.js.map +1 -0
- package/dist/provider/order.d.ts +4 -0
- package/dist/provider/order.d.ts.map +1 -0
- package/dist/provider/order.js +17 -0
- package/dist/provider/order.js.map +1 -0
- package/dist/provider/secrets.d.ts +7 -0
- package/dist/provider/secrets.d.ts.map +1 -0
- package/dist/provider/secrets.js +3 -0
- package/dist/provider/secrets.js.map +1 -0
- package/dist/provider/types.d.ts +146 -0
- package/dist/provider/types.d.ts.map +1 -0
- package/dist/provider/types.js +26 -0
- package/dist/provider/types.js.map +1 -0
- package/dist/redis/acl.d.ts +22 -0
- package/dist/redis/acl.d.ts.map +1 -0
- package/dist/redis/acl.js +87 -0
- package/dist/redis/acl.js.map +1 -0
- package/dist/redis/apply.d.ts +6 -0
- package/dist/redis/apply.d.ts.map +1 -0
- package/dist/redis/apply.js +29 -0
- package/dist/redis/apply.js.map +1 -0
- package/dist/redis/connection.d.ts +27 -0
- package/dist/redis/connection.d.ts.map +1 -0
- package/dist/redis/connection.js +57 -0
- package/dist/redis/connection.js.map +1 -0
- package/dist/redis/identities.d.ts +3 -0
- package/dist/redis/identities.d.ts.map +1 -0
- package/dist/redis/identities.js +29 -0
- package/dist/redis/identities.js.map +1 -0
- package/dist/redis/index.d.ts +6 -0
- package/dist/redis/index.d.ts.map +1 -0
- package/dist/redis/index.js +22 -0
- package/dist/redis/index.js.map +1 -0
- package/dist/redis/lifecycle.d.ts +9 -0
- package/dist/redis/lifecycle.d.ts.map +1 -0
- package/dist/redis/lifecycle.js +151 -0
- package/dist/redis/lifecycle.js.map +1 -0
- package/dist/redis/plan.d.ts +10 -0
- package/dist/redis/plan.d.ts.map +1 -0
- package/dist/redis/plan.js +95 -0
- package/dist/redis/plan.js.map +1 -0
- package/dist/redis/provider.d.ts +15 -0
- package/dist/redis/provider.d.ts.map +1 -0
- package/dist/redis/provider.js +30 -0
- package/dist/redis/provider.js.map +1 -0
- package/dist/redis/resp.d.ts +16 -0
- package/dist/redis/resp.d.ts.map +1 -0
- package/dist/redis/resp.js +108 -0
- package/dist/redis/resp.js.map +1 -0
- package/dist/redis/spec.d.ts +18 -0
- package/dist/redis/spec.d.ts.map +1 -0
- package/dist/redis/spec.js +23 -0
- package/dist/redis/spec.js.map +1 -0
- package/dist/secret-reader/errors.d.ts +15 -0
- package/dist/secret-reader/errors.d.ts.map +1 -0
- package/dist/secret-reader/errors.js +35 -0
- package/dist/secret-reader/errors.js.map +1 -0
- package/dist/secret-reader/index.d.ts +5 -0
- package/dist/secret-reader/index.d.ts.map +1 -0
- package/dist/secret-reader/index.js +21 -0
- package/dist/secret-reader/index.js.map +1 -0
- package/dist/secret-reader/member.d.ts +4 -0
- package/dist/secret-reader/member.d.ts.map +1 -0
- package/dist/secret-reader/member.js +23 -0
- package/dist/secret-reader/member.js.map +1 -0
- package/dist/secret-reader/names.d.ts +4 -0
- package/dist/secret-reader/names.d.ts.map +1 -0
- package/dist/secret-reader/names.js +40 -0
- package/dist/secret-reader/names.js.map +1 -0
- package/dist/secret-reader/reader.d.ts +13 -0
- package/dist/secret-reader/reader.d.ts.map +1 -0
- package/dist/secret-reader/reader.js +48 -0
- package/dist/secret-reader/reader.js.map +1 -0
- package/dist/secret-surface/ensure.d.ts +9 -0
- package/dist/secret-surface/ensure.d.ts.map +1 -0
- package/dist/secret-surface/ensure.js +47 -0
- package/dist/secret-surface/ensure.js.map +1 -0
- package/dist/secret-surface/index.d.ts +4 -0
- package/dist/secret-surface/index.d.ts.map +1 -0
- package/dist/secret-surface/index.js +20 -0
- package/dist/secret-surface/index.js.map +1 -0
- package/dist/secret-surface/material.d.ts +10 -0
- package/dist/secret-surface/material.d.ts.map +1 -0
- package/dist/secret-surface/material.js +37 -0
- package/dist/secret-surface/material.js.map +1 -0
- package/dist/secret-surface/surface.d.ts +8 -0
- package/dist/secret-surface/surface.d.ts.map +1 -0
- package/dist/secret-surface/surface.js +43 -0
- package/dist/secret-surface/surface.js.map +1 -0
- package/dist/temporal/apply.d.ts +5 -0
- package/dist/temporal/apply.d.ts.map +1 -0
- package/dist/temporal/apply.js +92 -0
- package/dist/temporal/apply.js.map +1 -0
- package/dist/temporal/connection.d.ts +14 -0
- package/dist/temporal/connection.d.ts.map +1 -0
- package/dist/temporal/connection.js +31 -0
- package/dist/temporal/connection.js.map +1 -0
- package/dist/temporal/index.d.ts +4 -0
- package/dist/temporal/index.d.ts.map +1 -0
- package/dist/temporal/index.js +20 -0
- package/dist/temporal/index.js.map +1 -0
- package/dist/temporal/lifecycle.d.ts +8 -0
- package/dist/temporal/lifecycle.d.ts.map +1 -0
- package/dist/temporal/lifecycle.js +148 -0
- package/dist/temporal/lifecycle.js.map +1 -0
- package/dist/temporal/operations.d.ts +20 -0
- package/dist/temporal/operations.d.ts.map +1 -0
- package/dist/temporal/operations.js +70 -0
- package/dist/temporal/operations.js.map +1 -0
- package/dist/temporal/plan.d.ts +8 -0
- package/dist/temporal/plan.d.ts.map +1 -0
- package/dist/temporal/plan.js +82 -0
- package/dist/temporal/plan.js.map +1 -0
- package/dist/temporal/provider.d.ts +14 -0
- package/dist/temporal/provider.d.ts.map +1 -0
- package/dist/temporal/provider.js +30 -0
- package/dist/temporal/provider.js.map +1 -0
- package/dist/temporal/spec.d.ts +30 -0
- package/dist/temporal/spec.d.ts.map +1 -0
- package/dist/temporal/spec.js +36 -0
- package/dist/temporal/spec.js.map +1 -0
- package/dist/versioned-document/atomic-write.d.ts +2 -0
- package/dist/versioned-document/atomic-write.d.ts.map +1 -0
- package/dist/versioned-document/atomic-write.js +20 -0
- package/dist/versioned-document/atomic-write.js.map +1 -0
- package/dist/versioned-document/definition.d.ts +18 -0
- package/dist/versioned-document/definition.d.ts.map +1 -0
- package/dist/versioned-document/definition.js +3 -0
- package/dist/versioned-document/definition.js.map +1 -0
- package/dist/versioned-document/index.d.ts +6 -0
- package/dist/versioned-document/index.d.ts.map +1 -0
- package/dist/versioned-document/index.js +10 -0
- package/dist/versioned-document/index.js.map +1 -0
- package/dist/versioned-document/migrate.d.ts +3 -0
- package/dist/versioned-document/migrate.d.ts.map +1 -0
- package/dist/versioned-document/migrate.js +18 -0
- package/dist/versioned-document/migrate.js.map +1 -0
- package/dist/versioned-document/reader.d.ts +22 -0
- package/dist/versioned-document/reader.d.ts.map +1 -0
- package/dist/versioned-document/reader.js +112 -0
- package/dist/versioned-document/reader.js.map +1 -0
- package/package.json +65 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
Xema Business Source License 1.1
|
|
2
|
+
|
|
3
|
+
License text copyright (c) 2020 MariaDB Corporation Ab, All Rights Reserved.
|
|
4
|
+
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
|
5
|
+
|
|
6
|
+
-----------------------------------------------------------------------------
|
|
7
|
+
|
|
8
|
+
Parameters
|
|
9
|
+
|
|
10
|
+
Licensor: Neuralchowder Inc.
|
|
11
|
+
|
|
12
|
+
Licensed Work: Xema. The Licensed Work is (c) 2026 Neuralchowder Inc.
|
|
13
|
+
|
|
14
|
+
The Licensed Work includes, without limitation, Xema Core, Xema Runtime,
|
|
15
|
+
Xema Kernel, Xema control plane, Xema application runtime, Xema biome
|
|
16
|
+
runtime, Xema biome registry, Xema store services, Xema orchestration
|
|
17
|
+
services, Xema agents, Xema skills, Xema memory services, Xema APIs, Xema
|
|
18
|
+
user interfaces, Xema command-line tools, Xema deployment artifacts, Xema
|
|
19
|
+
templates, Xema specifications, Xema schemas, Xema manifests, Xema
|
|
20
|
+
documentation, Xema examples, and all source code, object code, binaries,
|
|
21
|
+
packages, modules, configuration files, manifests, schemas, examples,
|
|
22
|
+
templates, documentation, and derivative works included in or distributed
|
|
23
|
+
as part of the Xema software project.
|
|
24
|
+
|
|
25
|
+
The Licensed Work does not include any third-party software, libraries,
|
|
26
|
+
dependencies, packages, assets, or components that are distributed with the
|
|
27
|
+
Licensed Work but are governed by their own separate license terms. Such
|
|
28
|
+
third-party materials remain subject to their respective licenses.
|
|
29
|
+
|
|
30
|
+
A specific file, package, component, or directory may state that it is
|
|
31
|
+
governed by a different license. In that case, that specific file, package,
|
|
32
|
+
component, or directory is governed by the license expressly stated therein.
|
|
33
|
+
|
|
34
|
+
Additional Use Grant:
|
|
35
|
+
|
|
36
|
+
You may make production use of the Licensed Work, provided that your use
|
|
37
|
+
does not include offering, providing, making available, distributing,
|
|
38
|
+
hosting, managing, embedding, reselling, white-labeling, sublicensing,
|
|
39
|
+
commercializing, or otherwise making the Licensed Work, or any modified
|
|
40
|
+
version or derivative work of the Licensed Work, available to Third Parties
|
|
41
|
+
as part of a Competitive Offering.
|
|
42
|
+
|
|
43
|
+
The following definitions and clarifications form part of, and govern
|
|
44
|
+
the interpretation of, the Additional Use Grant set out above.
|
|
45
|
+
|
|
46
|
+
1. "Production Use" means any use of the Licensed Work other than for
|
|
47
|
+
development, testing, evaluation, demonstration, experimentation,
|
|
48
|
+
benchmarking, or other non-production purposes.
|
|
49
|
+
|
|
50
|
+
2. "Affiliate" means any entity that, directly or indirectly,
|
|
51
|
+
controls, is controlled by, or is under common control with you,
|
|
52
|
+
where "control" means ownership of more than fifty percent (50%) of
|
|
53
|
+
the voting interests of the entity, or the power to direct its
|
|
54
|
+
management.
|
|
55
|
+
|
|
56
|
+
3. "Third Party" means any natural person or legal entity other than
|
|
57
|
+
you and your Affiliates.
|
|
58
|
+
|
|
59
|
+
4. "Competitive Offering" means any product or service, made available
|
|
60
|
+
to one or more Third Parties for a fee or other consideration
|
|
61
|
+
(including without limitation on a paid, subscription,
|
|
62
|
+
advertising-supported, hosted, or managed-service basis), that is
|
|
63
|
+
offered or marketed as, or that competes with, a software platform,
|
|
64
|
+
runtime, orchestration system, agent or automation system,
|
|
65
|
+
extension or distribution marketplace, or other software system
|
|
66
|
+
that provides, in substantial part, the same or substantially
|
|
67
|
+
similar capabilities as those provided by the Licensed Work. A
|
|
68
|
+
product or service is a Competitive Offering whether the Licensed
|
|
69
|
+
Work is provided in whole or in part, alone or bundled with other
|
|
70
|
+
software, and whether modified or unmodified.
|
|
71
|
+
|
|
72
|
+
5. Providing, hosting, or managing the Licensed Work for a Third Party,
|
|
73
|
+
or otherwise making the Licensed Work available to a Third Party as
|
|
74
|
+
a hosted or managed service such that the Third Party obtains the
|
|
75
|
+
principal value or functionality of the Licensed Work, is a
|
|
76
|
+
Competitive Offering and is not permitted by the Additional Use
|
|
77
|
+
Grant.
|
|
78
|
+
|
|
79
|
+
6. Subject to the foregoing, the Additional Use Grant permits you to
|
|
80
|
+
make Production Use of the Licensed Work for your own internal
|
|
81
|
+
business purposes and to build, operate, and provide your own
|
|
82
|
+
products and services to Third Parties, provided that the Licensed
|
|
83
|
+
Work itself (whether modified or unmodified) is not the product or
|
|
84
|
+
service, and is not a Competitive Offering, made available to those
|
|
85
|
+
Third Parties.
|
|
86
|
+
|
|
87
|
+
7. You may modify the Licensed Work and create derivative works for
|
|
88
|
+
any purpose permitted by this License. Any Production Use of such
|
|
89
|
+
modified or derivative works remains subject to the same
|
|
90
|
+
restrictions as the Licensed Work, including the prohibition on
|
|
91
|
+
Competitive Offerings.
|
|
92
|
+
|
|
93
|
+
8. Use of the Licensed Work by your own employees, contractors, and
|
|
94
|
+
agents, acting on your behalf and for your benefit, is not by
|
|
95
|
+
itself making the Licensed Work available to a Third Party.
|
|
96
|
+
|
|
97
|
+
9. Embedding or distributing the Licensed Work as a component of your
|
|
98
|
+
own product or service is permitted only where the Licensed Work
|
|
99
|
+
does not constitute the principal value of that product or service
|
|
100
|
+
and the product or service is not a Competitive Offering.
|
|
101
|
+
|
|
102
|
+
10. Nothing in this Additional Use Grant grants any right to use any
|
|
103
|
+
name, trademark, service mark, or logo of the Licensor or its
|
|
104
|
+
Affiliates, except as reasonably required for customary
|
|
105
|
+
attribution.
|
|
106
|
+
|
|
107
|
+
11. The rights stated in this Additional Use Grant are the maximum
|
|
108
|
+
rights granted for Production Use prior to the Change Date. Any
|
|
109
|
+
Production Use not expressly permitted requires a separate
|
|
110
|
+
commercial license from the Licensor.
|
|
111
|
+
|
|
112
|
+
12. If any provision of this Additional Use Grant is held invalid or
|
|
113
|
+
unenforceable, that provision shall be limited or eliminated to
|
|
114
|
+
the minimum extent necessary so that the remainder of this
|
|
115
|
+
Additional Use Grant, and of this License, remains in full force
|
|
116
|
+
and effect. The Licensor reserves all rights not expressly granted
|
|
117
|
+
by this License.
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
Change Date: Four years from the date the specific version of the Licensed
|
|
121
|
+
Work is first publicly released by Licensor.
|
|
122
|
+
|
|
123
|
+
Change License: Mozilla Public License, Version 2.0
|
|
124
|
+
|
|
125
|
+
For information about alternative licensing arrangements, commercial
|
|
126
|
+
licensing, enterprise licensing, OEM licensing, appliance licensing, managed
|
|
127
|
+
service licensing, cloud provider licensing, or other commercial use of the
|
|
128
|
+
Licensed Work, please contact: licensing@neuralchowder.com
|
|
129
|
+
|
|
130
|
+
-----------------------------------------------------------------------------
|
|
131
|
+
|
|
132
|
+
Notice
|
|
133
|
+
|
|
134
|
+
Business Source License 1.1
|
|
135
|
+
|
|
136
|
+
Terms
|
|
137
|
+
|
|
138
|
+
The Licensor hereby grants you the right to copy, modify, create derivative
|
|
139
|
+
works, redistribute, and make non-production use of the Licensed Work. The
|
|
140
|
+
Licensor may make an Additional Use Grant, above, permitting limited
|
|
141
|
+
production use.
|
|
142
|
+
|
|
143
|
+
Effective on the Change Date, or the fourth anniversary of the first publicly
|
|
144
|
+
available distribution of a specific version of the Licensed Work under this
|
|
145
|
+
License, whichever comes first, the Licensor hereby grants you rights under
|
|
146
|
+
the terms of the Change License, and the rights granted in the paragraph above
|
|
147
|
+
terminate.
|
|
148
|
+
|
|
149
|
+
If your use of the Licensed Work does not comply with the requirements
|
|
150
|
+
currently in effect as described in this License, you must purchase a
|
|
151
|
+
commercial license from the Licensor, its affiliated entities, or authorized
|
|
152
|
+
resellers, or you must refrain from using the Licensed Work.
|
|
153
|
+
|
|
154
|
+
All copies of the original and modified Licensed Work, and derivative works of
|
|
155
|
+
the Licensed Work, are subject to this License. This License applies separately
|
|
156
|
+
for each version of the Licensed Work and the Change Date may vary for each
|
|
157
|
+
version of the Licensed Work released by Licensor.
|
|
158
|
+
|
|
159
|
+
You must conspicuously display this License on each original or modified copy
|
|
160
|
+
of the Licensed Work. If you receive the Licensed Work in original or modified
|
|
161
|
+
form from a third party, the terms and conditions set forth in this License
|
|
162
|
+
apply to your use of that work.
|
|
163
|
+
|
|
164
|
+
Any use of the Licensed Work in violation of this License will automatically
|
|
165
|
+
terminate your rights under this License for the current and all other
|
|
166
|
+
versions of the Licensed Work.
|
|
167
|
+
|
|
168
|
+
This License does not grant you any right in any trademark or logo of Licensor
|
|
169
|
+
or its affiliates, provided that you may use a trademark or logo of Licensor
|
|
170
|
+
as expressly required by this License.
|
|
171
|
+
|
|
172
|
+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN
|
|
173
|
+
"AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS
|
|
174
|
+
OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
175
|
+
FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @xemahq/installation-tenancy
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The typed core of `xema installation`: the `XemaInstallationInventory` schema
|
|
4
|
+
(v1) with its JSON Schema export, the generic `VersionedDocumentReader` (shared
|
|
5
|
+
with the CLI config documents), and the per-backend tenancy providers that
|
|
6
|
+
create, verify and delete one installation's slice of shared servers.
|
|
7
|
+
|
|
8
|
+
Package code never reads `process.env`: admin connections and options are typed
|
|
9
|
+
and injected by the caller.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DeploymentDeclaration } from './read';
|
|
2
|
+
import type { TenancySpecs } from '../installation/context';
|
|
3
|
+
import type { ClaimedByBackend } from '../installation/import';
|
|
4
|
+
import type { KeyBoundOnServer } from '../openbao/lifecycle';
|
|
5
|
+
export declare function claimsOf(declaration: DeploymentDeclaration, specs: TenancySpecs): ClaimedByBackend;
|
|
6
|
+
export declare function specsDeclared(base: TenancySpecs, declaration: DeploymentDeclaration): TenancySpecs;
|
|
7
|
+
export declare function specsWithKeyBound(base: TenancySpecs, found: readonly KeyBoundOnServer[]): TenancySpecs;
|
|
8
|
+
//# sourceMappingURL=claims.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/deployment-root/claims.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAqD7D,wBAAgB,QAAQ,CAAC,WAAW,EAAE,qBAAqB,EAAE,KAAK,EAAE,YAAY,GAAG,gBAAgB,CAiDlG;AAGD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,GAAG,YAAY,CAelG;AAWD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,gBAAgB,EAAE,GAAG,YAAY,CAuBtG"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.claimsOf = claimsOf;
|
|
4
|
+
exports.specsDeclared = specsDeclared;
|
|
5
|
+
exports.specsWithKeyBound = specsWithKeyBound;
|
|
6
|
+
const identities_1 = require("../etcd/identities");
|
|
7
|
+
const enums_1 = require("../inventory/enums");
|
|
8
|
+
const identifiers_1 = require("../naming/identifiers");
|
|
9
|
+
const installation_names_1 = require("../naming/installation-names");
|
|
10
|
+
const spec_1 = require("../object-store/spec");
|
|
11
|
+
const member_auth_1 = require("../openbao/member-auth");
|
|
12
|
+
const member_env_1 = require("../openbao/member-env");
|
|
13
|
+
const operations_1 = require("../openbao/operations");
|
|
14
|
+
const errors_1 = require("../provider/errors");
|
|
15
|
+
const spec_2 = require("../temporal/spec");
|
|
16
|
+
function grammarClaims(specs) {
|
|
17
|
+
const claims = {};
|
|
18
|
+
const etcd = specs[enums_1.Backend.Etcd];
|
|
19
|
+
if (etcd !== undefined) {
|
|
20
|
+
claims[enums_1.Backend.Etcd] = (0, identities_1.etcdIdentities)(etcd).flatMap((i) => [
|
|
21
|
+
{ kind: enums_1.EtcdResourceKind.User, name: i.subject },
|
|
22
|
+
{ kind: enums_1.EtcdResourceKind.Role, name: i.subject },
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
const openBao = specs[enums_1.Backend.OpenBao];
|
|
26
|
+
if (openBao !== undefined) {
|
|
27
|
+
claims[enums_1.Backend.OpenBao] = [
|
|
28
|
+
{ kind: enums_1.OpenBaoResourceKind.Mount, name: (0, installation_names_1.installationNames)(openBao.installation).openBaoMount },
|
|
29
|
+
{ kind: enums_1.OpenBaoResourceKind.Policy, name: (0, operations_1.brokerPolicyName)(openBao.installation) },
|
|
30
|
+
{ kind: enums_1.OpenBaoResourceKind.Policy, name: (0, member_env_1.memberEnvReadName)(openBao.installation) },
|
|
31
|
+
...(openBao.memberEnvKeyBound ?? []).map((p) => ({ kind: enums_1.OpenBaoResourceKind.AuthMount, name: (0, installation_names_1.jwtMountOf)(openBao.installation, p.process) })),
|
|
32
|
+
...(0, member_auth_1.memberEnvRoleTargets)(openBao).map((t) => ({ kind: enums_1.OpenBaoResourceKind.Role, name: `${t.authMount}/${t.role}` })),
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
const temporal = specs[enums_1.Backend.Temporal];
|
|
36
|
+
if (temporal !== undefined) {
|
|
37
|
+
claims[enums_1.Backend.Temporal] = [
|
|
38
|
+
{ kind: enums_1.TemporalResourceKind.Namespace, name: (0, installation_names_1.installationNames)(temporal.installation).temporalNamespace },
|
|
39
|
+
...spec_2.NAMESPACE_SEARCH_ATTRIBUTES.map((a) => ({ kind: enums_1.TemporalResourceKind.SearchAttribute, name: a.name })),
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
const openFga = specs[enums_1.Backend.OpenFga];
|
|
43
|
+
if (openFga !== undefined) {
|
|
44
|
+
claims[enums_1.Backend.OpenFga] = [{ kind: enums_1.OpenFgaResourceKind.Store, name: (0, installation_names_1.installationNames)(openFga.installation).openFgaStore }];
|
|
45
|
+
}
|
|
46
|
+
const identity = specs[enums_1.Backend.Identity];
|
|
47
|
+
if (identity !== undefined) {
|
|
48
|
+
claims[enums_1.Backend.Identity] = [
|
|
49
|
+
{ kind: enums_1.IdentityResourceKind.Installation, name: identity.realm },
|
|
50
|
+
...(openBao?.memberEnvKeyBound ?? []).map((p) => ({ kind: enums_1.IdentityResourceKind.WorkloadProcess, name: p.process })),
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
return claims;
|
|
54
|
+
}
|
|
55
|
+
function claimsOf(declaration, specs) {
|
|
56
|
+
const { postgres, redisAclUsers, objectStore, keycloakRealm } = declaration;
|
|
57
|
+
const derived = grammarClaims(specs);
|
|
58
|
+
const merged = (backend, declared) => [
|
|
59
|
+
...declared,
|
|
60
|
+
...(derived[backend] ?? []),
|
|
61
|
+
];
|
|
62
|
+
const kcSpec = specs[enums_1.Backend.Keycloak];
|
|
63
|
+
const storeSpec = specs[enums_1.Backend.ObjectStore];
|
|
64
|
+
return {
|
|
65
|
+
...derived,
|
|
66
|
+
...(postgres === undefined
|
|
67
|
+
? {}
|
|
68
|
+
: {
|
|
69
|
+
[enums_1.Backend.Postgres]: merged(enums_1.Backend.Postgres, [
|
|
70
|
+
{ kind: enums_1.PostgresResourceKind.Role, name: postgres.appRole },
|
|
71
|
+
{ kind: enums_1.PostgresResourceKind.Role, name: postgres.provisionerRole },
|
|
72
|
+
{ kind: enums_1.PostgresResourceKind.Database, name: (0, identifiers_1.extensionTemplateName)(postgres.appRole) },
|
|
73
|
+
...postgres.databases.flatMap((d) => [
|
|
74
|
+
{ kind: enums_1.PostgresResourceKind.Database, name: d.name },
|
|
75
|
+
...d.extensions.map((e) => ({ kind: enums_1.PostgresResourceKind.Extension, name: `${d.name}/${e}` })),
|
|
76
|
+
]),
|
|
77
|
+
]),
|
|
78
|
+
}),
|
|
79
|
+
...(redisAclUsers === undefined ? {} : { [enums_1.Backend.Redis]: redisAclUsers.map((name) => ({ kind: enums_1.RedisResourceKind.AclUser, name })) }),
|
|
80
|
+
...(objectStore === undefined
|
|
81
|
+
? {}
|
|
82
|
+
: {
|
|
83
|
+
[enums_1.Backend.ObjectStore]: [
|
|
84
|
+
{ kind: enums_1.ObjectStoreResourceKind.User, name: objectStore.user },
|
|
85
|
+
{ kind: enums_1.ObjectStoreResourceKind.Policy, name: (0, installation_names_1.installationNames)(declaration.installation).objectStorePolicy },
|
|
86
|
+
...[...new Set([...objectStore.buckets, ...(storeSpec === undefined ? [] : (0, spec_1.bucketNames)(storeSpec))])].map((name) => ({
|
|
87
|
+
kind: enums_1.ObjectStoreResourceKind.Bucket,
|
|
88
|
+
name,
|
|
89
|
+
})),
|
|
90
|
+
],
|
|
91
|
+
}),
|
|
92
|
+
...(keycloakRealm === undefined || kcSpec === undefined
|
|
93
|
+
? {}
|
|
94
|
+
: {
|
|
95
|
+
[enums_1.Backend.Keycloak]: [
|
|
96
|
+
{ kind: enums_1.KeycloakResourceKind.Realm, name: keycloakRealm },
|
|
97
|
+
{ kind: enums_1.KeycloakResourceKind.Client, name: kcSpec.adminClientId },
|
|
98
|
+
...(kcSpec.bootstrapClients ?? []).map((name) => ({ kind: enums_1.KeycloakResourceKind.Client, name })),
|
|
99
|
+
...(kcSpec.webClient === undefined ? [] : [{ kind: enums_1.KeycloakResourceKind.Client, name: kcSpec.webClient.clientId }]),
|
|
100
|
+
],
|
|
101
|
+
}),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function specsDeclared(base, declaration) {
|
|
105
|
+
const { postgres, objectStore, keycloakRealm } = declaration;
|
|
106
|
+
const pgBase = base[enums_1.Backend.Postgres];
|
|
107
|
+
const storeBase = base[enums_1.Backend.ObjectStore];
|
|
108
|
+
const kcBase = base[enums_1.Backend.Keycloak];
|
|
109
|
+
return {
|
|
110
|
+
...base,
|
|
111
|
+
...(postgres !== undefined && pgBase !== undefined
|
|
112
|
+
? { [enums_1.Backend.Postgres]: { ...pgBase, appRole: postgres.appRole, provisionerRole: postgres.provisionerRole, databases: postgres.databases } }
|
|
113
|
+
: {}),
|
|
114
|
+
...(objectStore !== undefined && storeBase !== undefined
|
|
115
|
+
? { [enums_1.Backend.ObjectStore]: { ...storeBase, bucketPrefix: objectStore.bucketPrefix } }
|
|
116
|
+
: {}),
|
|
117
|
+
...(keycloakRealm !== undefined && kcBase !== undefined ? { [enums_1.Backend.Keycloak]: { ...kcBase, realm: keycloakRealm } } : {}),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function specsWithKeyBound(base, found) {
|
|
121
|
+
const openBao = base[enums_1.Backend.OpenBao];
|
|
122
|
+
if (openBao === undefined) {
|
|
123
|
+
return base;
|
|
124
|
+
}
|
|
125
|
+
const realms = [...new Set(found.map((f) => f.realm))];
|
|
126
|
+
if (realms.length > 1) {
|
|
127
|
+
throw new errors_1.TenancyRefusalError(`the key-bound processes of ${openBao.installation} name ${String(realms.length)} identity realms (${realms.join(', ')}); one installation has one`);
|
|
128
|
+
}
|
|
129
|
+
const processes = found.map((f) => f.process);
|
|
130
|
+
const { memberEnvKeyBound: _keyBound, identityRealm: _realm, ...rest } = openBao;
|
|
131
|
+
const kubernetesReaders = (openBao.memberEnvKubernetes ?? []).map((k) => k.process);
|
|
132
|
+
const readers = openBao.memberEnvReaders.filter((r) => processes.includes(r) || kubernetesReaders.includes(r));
|
|
133
|
+
const { [enums_1.Backend.Identity]: identity, ...others } = base;
|
|
134
|
+
const realm = realms[0];
|
|
135
|
+
if (realm === undefined) {
|
|
136
|
+
return { ...others, [enums_1.Backend.OpenBao]: { ...rest, memberEnvReaders: readers } };
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
...others,
|
|
140
|
+
[enums_1.Backend.OpenBao]: { ...rest, memberEnvKeyBound: processes.map((process) => ({ process })), memberEnvReaders: readers, identityRealm: realm },
|
|
141
|
+
...(identity === undefined ? {} : { [enums_1.Backend.Identity]: { ...identity, realm } }),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/deployment-root/claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deployment-root/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./claims"), exports);
|
|
18
|
+
__exportStar(require("./read"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deployment-root/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TenancyEndpoints } from '../installation/context';
|
|
2
|
+
export declare class DeploymentRootError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export interface DeploymentDeclaration {
|
|
6
|
+
readonly installation: string;
|
|
7
|
+
readonly kubernetesContext?: string;
|
|
8
|
+
readonly endpoints: TenancyEndpoints;
|
|
9
|
+
readonly postgres?: {
|
|
10
|
+
readonly appRole: string;
|
|
11
|
+
readonly provisionerRole: string;
|
|
12
|
+
readonly databases: readonly {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly extensions: readonly string[];
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
readonly redisAclUsers?: readonly string[];
|
|
18
|
+
readonly objectStore?: {
|
|
19
|
+
readonly user: string;
|
|
20
|
+
readonly bucketPrefix: string;
|
|
21
|
+
readonly buckets: readonly string[];
|
|
22
|
+
};
|
|
23
|
+
readonly keycloakRealm?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function readDeploymentRoot(root: string): DeploymentDeclaration;
|
|
26
|
+
//# sourceMappingURL=read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/deployment-root/read.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAGD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,SAAS,EAAE,SAAS;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,EAAE,CAAC;KAClG,CAAC;IACF,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IACrH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AA+DD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAqDtE"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeploymentRootError = void 0;
|
|
4
|
+
exports.readDeploymentRoot = readDeploymentRoot;
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const yaml_1 = require("yaml");
|
|
8
|
+
class DeploymentRootError extends Error {
|
|
9
|
+
constructor(message) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'DeploymentRootError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.DeploymentRootError = DeploymentRootError;
|
|
15
|
+
const isMapping = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
16
|
+
function load(root, file) {
|
|
17
|
+
const path = (0, node_path_1.join)(root, file);
|
|
18
|
+
if (!(0, node_fs_1.existsSync)(path)) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
const parsed = (0, yaml_1.parse)((0, node_fs_1.readFileSync)(path, 'utf8'));
|
|
22
|
+
if (!isMapping(parsed)) {
|
|
23
|
+
throw new DeploymentRootError(`${path} must be a mapping`);
|
|
24
|
+
}
|
|
25
|
+
return parsed;
|
|
26
|
+
}
|
|
27
|
+
function text(source, file, ...path) {
|
|
28
|
+
let at = source;
|
|
29
|
+
for (const key of path) {
|
|
30
|
+
if (!isMapping(at)) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
at = at[key];
|
|
34
|
+
}
|
|
35
|
+
if (at === undefined) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
if (typeof at !== 'string' && typeof at !== 'number') {
|
|
39
|
+
throw new DeploymentRootError(`${file}: ${path.join('.')} must be a string`);
|
|
40
|
+
}
|
|
41
|
+
return String(at);
|
|
42
|
+
}
|
|
43
|
+
function section(source, key) {
|
|
44
|
+
const value = source?.[key];
|
|
45
|
+
return isMapping(value) ? value : undefined;
|
|
46
|
+
}
|
|
47
|
+
function hostPort(source, file, key) {
|
|
48
|
+
const host = text(source, file, key, 'host');
|
|
49
|
+
const port = text(source, file, key, 'port');
|
|
50
|
+
return host === undefined || port === undefined ? undefined : `${host}:${port}`;
|
|
51
|
+
}
|
|
52
|
+
function endpointOfUrl(value, file, key) {
|
|
53
|
+
let url;
|
|
54
|
+
try {
|
|
55
|
+
url = new URL(value);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
throw new DeploymentRootError(`${file}: ${key} is not a URL`);
|
|
59
|
+
}
|
|
60
|
+
return `${url.hostname}:${url.port === '' ? (url.protocol === 'https:' ? '443' : '80') : url.port}`;
|
|
61
|
+
}
|
|
62
|
+
function readDeploymentRoot(root) {
|
|
63
|
+
const deployment = load(root, 'deployment.yaml');
|
|
64
|
+
const infra = load(root, 'infra.yaml');
|
|
65
|
+
const inputs = load(root, 'secret-inputs.yaml');
|
|
66
|
+
const installation = text(deployment, 'deployment.yaml', 'name');
|
|
67
|
+
if (installation === undefined) {
|
|
68
|
+
throw new DeploymentRootError(`${(0, node_path_1.join)(root, 'deployment.yaml')} has no name: the installation cannot be named`);
|
|
69
|
+
}
|
|
70
|
+
const endpoints = {};
|
|
71
|
+
const set = (backend, endpoint) => {
|
|
72
|
+
if (endpoint !== undefined) {
|
|
73
|
+
endpoints[backend] = endpoint;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
set('postgres', hostPort(infra, 'infra.yaml', 'postgres'));
|
|
77
|
+
set('etcd', hostPort(infra, 'infra.yaml', 'etcd'));
|
|
78
|
+
set('redis', hostPort(infra, 'infra.yaml', 'redis'));
|
|
79
|
+
set('objectStore', hostPort(infra, 'infra.yaml', 'minio'));
|
|
80
|
+
set('temporal', hostPort(infra, 'infra.yaml', 'temporal'));
|
|
81
|
+
const baoAddress = text(infra, 'infra.yaml', 'hostCustody', 'openbao', 'address');
|
|
82
|
+
set('openbao', baoAddress === undefined ? undefined : endpointOfUrl(baoAddress, 'infra.yaml', 'hostCustody.openbao.address'));
|
|
83
|
+
const issuer = text(inputs, 'secret-inputs.yaml', 'keycloak', 'issuer');
|
|
84
|
+
set('keycloak', issuer === undefined ? undefined : endpointOfUrl(issuer, 'secret-inputs.yaml', 'keycloak.issuer'));
|
|
85
|
+
const pg = section(inputs, 'postgres');
|
|
86
|
+
const extensions = section(pg, 'extensions');
|
|
87
|
+
const appRole = text(inputs, 'secret-inputs.yaml', 'postgres', 'role');
|
|
88
|
+
const provisionerRole = text(inputs, 'secret-inputs.yaml', 'postgres', 'provisionerRole');
|
|
89
|
+
const databaseKeys = Object.keys(pg ?? {}).filter((k) => k.endsWith('Database')).sort();
|
|
90
|
+
const databases = databaseKeys.map((key) => {
|
|
91
|
+
const name = text(inputs, 'secret-inputs.yaml', 'postgres', key) ?? '';
|
|
92
|
+
const listed = extensions?.[key];
|
|
93
|
+
return { name, extensions: Array.isArray(listed) ? listed.map(String).sort() : [] };
|
|
94
|
+
});
|
|
95
|
+
const store = section(inputs, 'objectStore');
|
|
96
|
+
const user = text(inputs, 'secret-inputs.yaml', 'objectStore', 'accessKey');
|
|
97
|
+
const prefix = text(inputs, 'secret-inputs.yaml', 'objectStore', 'blobContainerPrefix');
|
|
98
|
+
const bundle = text(inputs, 'secret-inputs.yaml', 'objectStore', 'bundleBucket');
|
|
99
|
+
const aclUser = text(infra, 'infra.yaml', 'redis', 'fence', 'aclUser');
|
|
100
|
+
const erasureUser = text(infra, 'infra.yaml', 'redis', 'fence', 'erasureAclUser');
|
|
101
|
+
const realm = text(infra, 'infra.yaml', 'identity', 'realm');
|
|
102
|
+
return {
|
|
103
|
+
installation,
|
|
104
|
+
...(text(deployment, 'deployment.yaml', 'k8sContext') === undefined ? {} : { kubernetesContext: text(deployment, 'deployment.yaml', 'k8sContext') }),
|
|
105
|
+
endpoints,
|
|
106
|
+
...(appRole !== undefined && provisionerRole !== undefined ? { postgres: { appRole, provisionerRole, databases } } : {}),
|
|
107
|
+
...(aclUser === undefined ? {} : { redisAclUsers: [aclUser, ...(erasureUser === undefined ? [] : [erasureUser])] }),
|
|
108
|
+
...(store !== undefined && user !== undefined && prefix !== undefined
|
|
109
|
+
? { objectStore: { user, bucketPrefix: prefix, buckets: [prefix, ...(bundle === undefined ? [] : [bundle])] } }
|
|
110
|
+
: {}),
|
|
111
|
+
...(realm === undefined ? {} : { keycloakRealm: realm }),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/deployment-root/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type EtcdAdminConnection } from './connection';
|
|
2
|
+
import type { Backend } from '../inventory/enums';
|
|
3
|
+
import type { InstallationSecretWriter } from '../provider/secrets';
|
|
4
|
+
import type { AppliedResource, ResourceAction } from '../provider/types';
|
|
5
|
+
export declare function applyEtcd(action: ResourceAction<Backend.Etcd>, connection: EtcdAdminConnection, secrets: InstallationSecretWriter): Promise<AppliedResource<Backend.Etcd>>;
|
|
6
|
+
//# sourceMappingURL=apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/etcd/apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,mBAAmB,EAAoB,MAAM,cAAc,CAAC;AAazG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAsDzE,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EACpC,UAAU,EAAE,mBAAmB,EAC/B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAiBxC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyEtcd = applyEtcd;
|
|
4
|
+
const connection_1 = require("./connection");
|
|
5
|
+
const operations_1 = require("./operations");
|
|
6
|
+
const spec_1 = require("./spec");
|
|
7
|
+
const errors_1 = require("../provider/errors");
|
|
8
|
+
const generate_secret_1 = require("../provider/generate-secret");
|
|
9
|
+
async function applyRole(session, intent) {
|
|
10
|
+
if (!(await (0, operations_1.roleExists)(session, intent.subject))) {
|
|
11
|
+
await session.call('/v3/auth/role/add', { name: intent.subject });
|
|
12
|
+
}
|
|
13
|
+
const held = await (0, operations_1.rolePermissions)(session, intent.subject);
|
|
14
|
+
if ((0, operations_1.isExactGrant)(held, intent.permission, intent.prefix)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (held.length > 0) {
|
|
18
|
+
await session.call('/v3/auth/role/delete', { role: intent.subject });
|
|
19
|
+
await session.call('/v3/auth/role/add', { name: intent.subject });
|
|
20
|
+
}
|
|
21
|
+
await (0, operations_1.grantPrefix)(session, intent.subject, intent.permission, intent.prefix);
|
|
22
|
+
}
|
|
23
|
+
async function applyUser(session, connection, secrets, intent) {
|
|
24
|
+
const password = await secrets.ensureGenerated(intent.passwordSecret, generate_secret_1.generateSecretValue);
|
|
25
|
+
const roles = await (0, operations_1.userRoles)(session, intent.subject);
|
|
26
|
+
const foreign = (roles ?? []).filter((role) => role !== intent.subject);
|
|
27
|
+
if (foreign.length > 0) {
|
|
28
|
+
throw new errors_1.TenancyRefusalError(`refusing to change etcd user ${intent.subject}: it holds role(s) ${foreign.join(', ')}, which this installation does not manage`);
|
|
29
|
+
}
|
|
30
|
+
let created = false;
|
|
31
|
+
if (roles === undefined) {
|
|
32
|
+
await session.call('/v3/auth/user/add', { name: intent.subject, password });
|
|
33
|
+
created = true;
|
|
34
|
+
}
|
|
35
|
+
if (!(roles ?? []).includes(intent.subject)) {
|
|
36
|
+
await session.call('/v3/auth/user/grant', { user: intent.subject, role: intent.subject });
|
|
37
|
+
}
|
|
38
|
+
if (!created) {
|
|
39
|
+
try {
|
|
40
|
+
await (0, connection_1.openSession)(connection, { username: intent.subject, password });
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
if (!(0, operations_1.isAuthenticationFailure)(err)) {
|
|
44
|
+
throw err;
|
|
45
|
+
}
|
|
46
|
+
await session.call('/v3/auth/user/changepw', { name: intent.subject, password });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function applyEtcd(action, connection, secrets) {
|
|
51
|
+
const { intent } = action;
|
|
52
|
+
(0, spec_1.validateEtcdSpec)({ installation: intent.installation, servicesRead: true }, connection.username);
|
|
53
|
+
const session = await (0, connection_1.openSession)(connection, connection);
|
|
54
|
+
try {
|
|
55
|
+
if (intent.type === spec_1.EtcdIntentKind.Role) {
|
|
56
|
+
await applyRole(session, intent);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
await applyUser(session, connection, secrets, intent);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
if (err instanceof connection_1.EtcdRequestError && err.isPermissionDenied) {
|
|
64
|
+
throw new errors_1.TenancyRefusalError(`etcd admin ${connection.username} may not provision: ${err.detail}`);
|
|
65
|
+
}
|
|
66
|
+
throw err;
|
|
67
|
+
}
|
|
68
|
+
return action.resource;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=apply.js.map
|