@mikarinneoracle/oci-cdk-code-only-preview 0.0.1 → 0.0.2

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.
Files changed (46) hide show
  1. package/package.json +1 -1
  2. package/lib/.gen/providers/oci/identity-dynamic-group/index.d.ts +0 -166
  3. package/lib/.gen/providers/oci/identity-dynamic-group/index.js +0 -408
  4. package/lib/bin/deploy-with-build.js +0 -132
  5. package/lib/test/java-function/aws-cdk/bin/app.d.ts +0 -2
  6. package/lib/test/java-function/aws-cdk/bin/app.js +0 -51
  7. package/lib/test/java-function/aws-cdk/lib/function-stack.d.ts +0 -11
  8. package/lib/test/java-function/aws-cdk/lib/function-stack.js +0 -159
  9. package/lib/test/java-function/aws-cdk/lib/test-function-stack.d.ts +0 -5
  10. package/lib/test/java-function/aws-cdk/lib/test-function-stack.js +0 -94
  11. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.d.ts +0 -5356
  12. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.js +0 -14972
  13. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.d.ts +0 -449
  14. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.js +0 -1149
  15. package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.d.ts +0 -217
  16. package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.js +0 -563
  17. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.d.ts +0 -176
  18. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.js +0 -431
  19. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.d.ts +0 -255
  20. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.js +0 -644
  21. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.d.ts +0 -752
  22. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.js +0 -2091
  23. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.d.ts +0 -220
  24. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.js +0 -543
  25. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.d.ts +0 -251
  26. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.js +0 -612
  27. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.d.ts +0 -270
  28. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.js +0 -672
  29. package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.d.ts +0 -150
  30. package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.js +0 -386
  31. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.d.ts +0 -330
  32. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.js +0 -821
  33. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.d.ts +0 -322
  34. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.js +0 -820
  35. package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.d.ts +0 -190
  36. package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.js +0 -391
  37. package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.d.ts +0 -439
  38. package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.js +0 -1146
  39. package/lib/test/java-function/oci-cdk/bin/app.d.ts +0 -2
  40. package/lib/test/java-function/oci-cdk/bin/app.js +0 -34
  41. package/lib/test/java-function/oci-cdk/config/oci-config.d.ts +0 -68
  42. package/lib/test/java-function/oci-cdk/config/oci-config.js +0 -202
  43. package/lib/test/java-function/oci-cdk/lib/function-stack.d.ts +0 -31
  44. package/lib/test/java-function/oci-cdk/lib/function-stack.js +0 -549
  45. package/lib/test/java-function/oci-cdk/lib/test-function-stack.d.ts +0 -17
  46. package/lib/test/java-function/oci-cdk/lib/test-function-stack.js +0 -99
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1,34 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const cdktf_1 = require("cdktf");
5
- const function_stack_1 = require("../lib/function-stack");
6
- const oci_config_1 = require("../config/oci-config");
7
- (async () => {
8
- const ociConfig = await (0, oci_config_1.getOciConfig)();
9
- const app = new cdktf_1.App();
10
- const stackName = process.env.OCI_STACK_NAME || 'function-stack';
11
- new function_stack_1.FunctionStack(app, stackName, {
12
- compartmentId: ociConfig.compartmentId,
13
- ocirCompartmentId: ociConfig.ocirCompartmentId,
14
- tenancyId: ociConfig.tenancyId,
15
- region: ociConfig.region,
16
- namespace: ociConfig.namespace,
17
- functionAppName: ociConfig.functionAppName,
18
- functionName: ociConfig.functionName,
19
- ocirRepositoryName: ociConfig.ocirRepositoryName,
20
- apiGwPathPrefix: ociConfig.apiGwPathPrefix,
21
- apiGwRoutePath: ociConfig.apiGwRoutePath,
22
- apiGwMethods: ociConfig.apiGwMethods,
23
- pgUrl: ociConfig.pgUrl,
24
- vaultOcid: ociConfig.vaultOcid,
25
- keyOcid: ociConfig.keyOcid,
26
- pgSecretOcid: ociConfig.pgSecretOcid,
27
- backend: ociConfig.backend,
28
- });
29
- app.synth();
30
- })().catch((e) => {
31
- console.error(e);
32
- process.exit(1);
33
- });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC9qYXZhLWZ1bmN0aW9uL29jaS1jZGsvYmluL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpQ0FBNEI7QUFDNUIsMERBQXNEO0FBQ3RELHFEQUFvRDtBQUVwRCxDQUFDLEtBQUssSUFBSSxFQUFFO0lBQ1YsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFBLHlCQUFZLEdBQUUsQ0FBQztJQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQUcsRUFBRSxDQUFDO0lBQ3RCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLGdCQUFnQixDQUFDO0lBRWpFLElBQUksOEJBQWEsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFO1FBQ2hDLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTtRQUN0QyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsaUJBQWlCO1FBQzlDLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUztRQUM5QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDeEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1FBQzlCLGVBQWUsRUFBRSxTQUFTLENBQUMsZUFBZTtRQUMxQyxZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7UUFDcEMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQjtRQUNoRCxlQUFlLEVBQUUsU0FBUyxDQUFDLGVBQWU7UUFDMUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxjQUFjO1FBQ3hDLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWTtRQUNwQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7UUFDdEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1FBQzlCLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztRQUMxQixZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7UUFDcEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO0tBQzNCLENBQUMsQ0FBQztJQUVILEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgeyBBcHAgfSBmcm9tICdjZGt0Zic7XG5pbXBvcnQgeyBGdW5jdGlvblN0YWNrIH0gZnJvbSAnLi4vbGliL2Z1bmN0aW9uLXN0YWNrJztcbmltcG9ydCB7IGdldE9jaUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9vY2ktY29uZmlnJztcblxuKGFzeW5jICgpID0+IHtcbiAgY29uc3Qgb2NpQ29uZmlnID0gYXdhaXQgZ2V0T2NpQ29uZmlnKCk7XG4gIGNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbiAgY29uc3Qgc3RhY2tOYW1lID0gcHJvY2Vzcy5lbnYuT0NJX1NUQUNLX05BTUUgfHwgJ2Z1bmN0aW9uLXN0YWNrJztcblxuICBuZXcgRnVuY3Rpb25TdGFjayhhcHAsIHN0YWNrTmFtZSwge1xuICAgIGNvbXBhcnRtZW50SWQ6IG9jaUNvbmZpZy5jb21wYXJ0bWVudElkLFxuICAgIG9jaXJDb21wYXJ0bWVudElkOiBvY2lDb25maWcub2NpckNvbXBhcnRtZW50SWQsXG4gICAgdGVuYW5jeUlkOiBvY2lDb25maWcudGVuYW5jeUlkLFxuICAgIHJlZ2lvbjogb2NpQ29uZmlnLnJlZ2lvbixcbiAgICBuYW1lc3BhY2U6IG9jaUNvbmZpZy5uYW1lc3BhY2UsXG4gICAgZnVuY3Rpb25BcHBOYW1lOiBvY2lDb25maWcuZnVuY3Rpb25BcHBOYW1lLFxuICAgIGZ1bmN0aW9uTmFtZTogb2NpQ29uZmlnLmZ1bmN0aW9uTmFtZSxcbiAgICBvY2lyUmVwb3NpdG9yeU5hbWU6IG9jaUNvbmZpZy5vY2lyUmVwb3NpdG9yeU5hbWUsXG4gICAgYXBpR3dQYXRoUHJlZml4OiBvY2lDb25maWcuYXBpR3dQYXRoUHJlZml4LFxuICAgIGFwaUd3Um91dGVQYXRoOiBvY2lDb25maWcuYXBpR3dSb3V0ZVBhdGgsXG4gICAgYXBpR3dNZXRob2RzOiBvY2lDb25maWcuYXBpR3dNZXRob2RzLFxuICAgIHBnVXJsOiBvY2lDb25maWcucGdVcmwsXG4gICAgdmF1bHRPY2lkOiBvY2lDb25maWcudmF1bHRPY2lkLFxuICAgIGtleU9jaWQ6IG9jaUNvbmZpZy5rZXlPY2lkLFxuICAgIHBnU2VjcmV0T2NpZDogb2NpQ29uZmlnLnBnU2VjcmV0T2NpZCxcbiAgICBiYWNrZW5kOiBvY2lDb25maWcuYmFja2VuZCxcbiAgfSk7XG5cbiAgYXBwLnN5bnRoKCk7XG59KSgpLmNhdGNoKChlKSA9PiB7XG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn0pO1xuIl19
@@ -1,68 +0,0 @@
1
- /**
2
- * OCI Configuration for Test Function
3
- *
4
- * Required env vars (no defaults; throws if missing):
5
- * - OCI_COMPARTMENT_OCID (or OCI_COMPARTMENT_ID)
6
- * - OCI_OCIR_COMPARTMENT_OCID (or same as compartment; root allowed if explicitly set)
7
- * - OCI_TENANCY_OCID (or OCI_TENANCY_ID) – if unset, read from OCI CLI config (see below)
8
- * - OCI_REGION – if unset, read from OCI CLI config (see below)
9
- *
10
- * OCI CLI config: default file is ~/.oci/config, default profile is DEFAULT.
11
- * - OCI_NAMESPACE – if unset, obtained via OCI SDK (Object Storage getNamespace, same as "oci os ns get")
12
- * - OCI_FUNCTION_APP_NAME
13
- * - OCI_FUNCTION_NAME
14
- * - OCI_OCIR_REPOSITORY_NAME (if unset, uses OCI_FUNCTION_APP_NAME)
15
- *
16
- * Optional – API Gateway deployment (defaults: pathPrefix '/', route path '/{path*}', methods GET,POST,OPTIONS):
17
- * - OCI_APIGW_PATH_PREFIX
18
- * - OCI_APIGW_ROUTE_PATH
19
- * - OCI_APIGW_METHODS (comma-separated, e.g. GET,POST,OPTIONS)
20
- *
21
- * Optional (OCI CLI config): config file default is ~/.oci/config, profile default is DEFAULT.
22
- * - OCI_CONFIG_FILE – override config file path
23
- * - OCI_CLI_PROFILE – override profile name
24
- * - PG_URL – PostgreSQL connection string. If set with OCI_VAULT_OCID, stack creates Vault secret (OCI_KEY_OCID required). Otherwise passed to function as config (clear-text; warning emitted).
25
- * - OCI_VAULT_OCID, OCI_KEY_OCID – when set with PG_URL, stack creates secret in Vault.
26
- * - PG_SECRET_OCID – existing OCI Vault secret OCID for PG (when PG_URL is not set).
27
- *
28
- * The Functions resource requires the container image to already exist in OCIR
29
- * (e.g. build and push with scripts/build-docker.sh and scripts/deploy-oci-function.sh).
30
- */
31
- export interface OciBackendConfig {
32
- type: 'oci' | 'http' | 'local';
33
- bucket?: string;
34
- key?: string;
35
- address?: string;
36
- updateMethod?: string;
37
- lockAddress?: string;
38
- unlockAddress?: string;
39
- }
40
- export interface OciConfig {
41
- compartmentId: string;
42
- ocirCompartmentId?: string;
43
- tenancyId: string;
44
- region: string;
45
- namespace: string;
46
- functionAppName: string;
47
- functionName: string;
48
- ocirRepositoryName?: string;
49
- /** When set, stack creates Vault secret (pg-url) from this value (requires vaultOcid and keyOcid when using Vault). */
50
- pgUrl?: string;
51
- /** Vault OCID for creating pg-url secret (required when pgUrl is set and using Vault). */
52
- vaultOcid?: string;
53
- /** KMS Key OCID for encrypting pg-url secret (required when vaultOcid is set). */
54
- keyOcid?: string;
55
- /** When pgUrl is not set: use this existing OCI Vault secret OCID for PG (set PG_SECRET_OCID env var). */
56
- pgSecretOcid?: string;
57
- /** API Gateway deployment path prefix (OCI_APIGW_PATH_PREFIX). Default '/'. */
58
- apiGwPathPrefix?: string;
59
- /** API Gateway route path (OCI_APIGW_ROUTE_PATH). Default '/{path*}'. */
60
- apiGwRoutePath?: string;
61
- /** API Gateway route methods (OCI_APIGW_METHODS). Default 'GET,POST,OPTIONS'. */
62
- apiGwMethods?: string[];
63
- backend?: OciBackendConfig;
64
- }
65
- /**
66
- * Load OCI config from env and CLI config. When OCI_NAMESPACE is unset, fetches it via OCI SDK (getNamespace).
67
- */
68
- export declare function getOciConfig(): Promise<OciConfig>;
@@ -1,202 +0,0 @@
1
- "use strict";
2
- /**
3
- * OCI Configuration for Test Function
4
- *
5
- * Required env vars (no defaults; throws if missing):
6
- * - OCI_COMPARTMENT_OCID (or OCI_COMPARTMENT_ID)
7
- * - OCI_OCIR_COMPARTMENT_OCID (or same as compartment; root allowed if explicitly set)
8
- * - OCI_TENANCY_OCID (or OCI_TENANCY_ID) – if unset, read from OCI CLI config (see below)
9
- * - OCI_REGION – if unset, read from OCI CLI config (see below)
10
- *
11
- * OCI CLI config: default file is ~/.oci/config, default profile is DEFAULT.
12
- * - OCI_NAMESPACE – if unset, obtained via OCI SDK (Object Storage getNamespace, same as "oci os ns get")
13
- * - OCI_FUNCTION_APP_NAME
14
- * - OCI_FUNCTION_NAME
15
- * - OCI_OCIR_REPOSITORY_NAME (if unset, uses OCI_FUNCTION_APP_NAME)
16
- *
17
- * Optional – API Gateway deployment (defaults: pathPrefix '/', route path '/{path*}', methods GET,POST,OPTIONS):
18
- * - OCI_APIGW_PATH_PREFIX
19
- * - OCI_APIGW_ROUTE_PATH
20
- * - OCI_APIGW_METHODS (comma-separated, e.g. GET,POST,OPTIONS)
21
- *
22
- * Optional (OCI CLI config): config file default is ~/.oci/config, profile default is DEFAULT.
23
- * - OCI_CONFIG_FILE – override config file path
24
- * - OCI_CLI_PROFILE – override profile name
25
- * - PG_URL – PostgreSQL connection string. If set with OCI_VAULT_OCID, stack creates Vault secret (OCI_KEY_OCID required). Otherwise passed to function as config (clear-text; warning emitted).
26
- * - OCI_VAULT_OCID, OCI_KEY_OCID – when set with PG_URL, stack creates secret in Vault.
27
- * - PG_SECRET_OCID – existing OCI Vault secret OCID for PG (when PG_URL is not set).
28
- *
29
- * The Functions resource requires the container image to already exist in OCIR
30
- * (e.g. build and push with scripts/build-docker.sh and scripts/deploy-oci-function.sh).
31
- */
32
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
33
- if (k2 === undefined) k2 = k;
34
- var desc = Object.getOwnPropertyDescriptor(m, k);
35
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
36
- desc = { enumerable: true, get: function() { return m[k]; } };
37
- }
38
- Object.defineProperty(o, k2, desc);
39
- }) : (function(o, m, k, k2) {
40
- if (k2 === undefined) k2 = k;
41
- o[k2] = m[k];
42
- }));
43
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
44
- Object.defineProperty(o, "default", { enumerable: true, value: v });
45
- }) : function(o, v) {
46
- o["default"] = v;
47
- });
48
- var __importStar = (this && this.__importStar) || (function () {
49
- var ownKeys = function(o) {
50
- ownKeys = Object.getOwnPropertyNames || function (o) {
51
- var ar = [];
52
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
53
- return ar;
54
- };
55
- return ownKeys(o);
56
- };
57
- return function (mod) {
58
- if (mod && mod.__esModule) return mod;
59
- var result = {};
60
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
61
- __setModuleDefault(result, mod);
62
- return result;
63
- };
64
- })();
65
- Object.defineProperty(exports, "__esModule", { value: true });
66
- exports.getOciConfig = getOciConfig;
67
- const fs = __importStar(require("fs"));
68
- const path = __importStar(require("path"));
69
- const os = __importStar(require("os"));
70
- const common = __importStar(require("oci-common"));
71
- const objectstorage = __importStar(require("oci-objectstorage"));
72
- /** Read tenancy and region from OCI CLI config. Default file: ~/.oci/config, default profile: DEFAULT. */
73
- function readTenancyAndRegionFromCliConfig() {
74
- const configPath = process.env.OCI_CONFIG_FILE || path.join(os.homedir(), '.oci', 'config');
75
- const profile = process.env.OCI_CLI_PROFILE || 'DEFAULT';
76
- try {
77
- if (!fs.existsSync(configPath))
78
- return {};
79
- const content = fs.readFileSync(configPath, 'utf-8');
80
- const lines = content.split(/\r?\n/);
81
- let inProfile = false;
82
- const result = {};
83
- for (const line of lines) {
84
- const trimmed = line.trim();
85
- if (trimmed.startsWith('[') && trimmed.endsWith(']')) {
86
- inProfile = trimmed.slice(1, -1) === profile;
87
- continue;
88
- }
89
- if (!inProfile)
90
- continue;
91
- const eq = trimmed.indexOf('=');
92
- if (eq <= 0)
93
- continue;
94
- const key = trimmed.slice(0, eq).trim().toLowerCase();
95
- const value = trimmed.slice(eq + 1).trim();
96
- if (key === 'tenancy')
97
- result.tenancy = value;
98
- if (key === 'region')
99
- result.region = value;
100
- }
101
- return result;
102
- }
103
- catch {
104
- return {};
105
- }
106
- }
107
- /** Get object storage namespace via OCI SDK (same as "oci os ns get"). Uses ~/.oci/config, DEFAULT profile. */
108
- async function getNamespaceFromOciSdk(compartmentId, region) {
109
- const configPath = process.env.OCI_CONFIG_FILE || path.join(os.homedir(), '.oci', 'config');
110
- const profile = process.env.OCI_CLI_PROFILE || 'DEFAULT';
111
- try {
112
- const provider = new common.ConfigFileAuthenticationDetailsProvider(configPath, profile);
113
- const client = new objectstorage.ObjectStorageClient({ authenticationDetailsProvider: provider });
114
- client.regionId = region;
115
- const response = await client.getNamespace({
116
- compartmentId,
117
- });
118
- return response.value?.trim();
119
- }
120
- catch {
121
- return undefined;
122
- }
123
- }
124
- const backendType = (process.env.OCI_STATE_BACKEND_TYPE || 'local');
125
- const backendConfig = backendType === 'local'
126
- ? undefined
127
- : backendType === 'oci'
128
- ? {
129
- type: 'oci',
130
- bucket: process.env.OCI_STATE_BUCKET || 'tf-state',
131
- key: process.env.OCI_STATE_KEY || 'function-stack/terraform.tfstate',
132
- }
133
- : {
134
- type: 'http',
135
- address: process.env.OCI_STATE_HTTP_ADDRESS || '',
136
- updateMethod: process.env.OCI_STATE_HTTP_UPDATE_METHOD || 'PUT',
137
- lockAddress: process.env.OCI_STATE_HTTP_LOCK_ADDRESS,
138
- unlockAddress: process.env.OCI_STATE_HTTP_UNLOCK_ADDRESS,
139
- };
140
- /**
141
- * Load OCI config from env and CLI config. When OCI_NAMESPACE is unset, fetches it via OCI SDK (getNamespace).
142
- */
143
- async function getOciConfig() {
144
- const compartmentId = process.env.OCI_COMPARTMENT_OCID?.trim() || process.env.OCI_COMPARTMENT_ID?.trim();
145
- if (!compartmentId) {
146
- throw new Error('OCI_COMPARTMENT_OCID is required (or OCI_COMPARTMENT_ID). Example: export OCI_COMPARTMENT_OCID="ocid1.compartment.oc1..aaaaaaa..."');
147
- }
148
- const ocirCompartmentOcid = process.env.OCI_OCIR_COMPARTMENT_OCID?.trim() || process.env.OCI_OCIR_COMPARTMENT_ID?.trim() || compartmentId;
149
- if (!ocirCompartmentOcid) {
150
- throw new Error('OCI_OCIR_COMPARTMENT_OCID is required (or set OCI_COMPARTMENT_OCID to use the same compartment). ' +
151
- 'Example: export OCI_OCIR_COMPARTMENT_OCID="ocid1.compartment.oc1..aaaaaaa..."');
152
- }
153
- const cliConfig = readTenancyAndRegionFromCliConfig();
154
- const tenancyId = process.env.OCI_TENANCY_OCID?.trim() || process.env.OCI_TENANCY_ID?.trim() || cliConfig.tenancy?.trim();
155
- if (!tenancyId) {
156
- throw new Error('OCI_TENANCY_OCID is required (or OCI_TENANCY_ID), or run "oci setup config" so it can be read from ~/.oci/config');
157
- }
158
- const region = process.env.OCI_REGION?.trim() || cliConfig.region?.trim();
159
- if (!region) {
160
- throw new Error('OCI_REGION is required (or set in ~/.oci/config). Example: export OCI_REGION="eu-frankfurt-1"');
161
- }
162
- let namespace = process.env.OCI_NAMESPACE?.trim();
163
- if (!namespace || namespace === 'your-namespace') {
164
- namespace = (await getNamespaceFromOciSdk(compartmentId, region)) ?? '';
165
- }
166
- if (!namespace) {
167
- throw new Error('OCI_NAMESPACE is required. Set it, or ensure OCI SDK can read it (oci setup config and same credentials for Object Storage). ' +
168
- 'Example: export OCI_NAMESPACE="your-actual-namespace"');
169
- }
170
- const functionAppName = process.env.OCI_FUNCTION_APP_NAME?.trim();
171
- if (!functionAppName) {
172
- throw new Error('OCI_FUNCTION_APP_NAME is required. Example: export OCI_FUNCTION_APP_NAME="my-function-app"');
173
- }
174
- const functionName = process.env.OCI_FUNCTION_NAME?.trim();
175
- if (!functionName) {
176
- throw new Error('OCI_FUNCTION_NAME is required. Example: export OCI_FUNCTION_NAME="my-function"');
177
- }
178
- const ocirRepositoryName = process.env.OCI_OCIR_REPOSITORY_NAME?.trim() || functionAppName;
179
- const apiGwMethodsStr = process.env.OCI_APIGW_METHODS?.trim();
180
- const apiGwMethods = apiGwMethodsStr
181
- ? apiGwMethodsStr.split(',').map((m) => m.trim()).filter(Boolean)
182
- : undefined;
183
- return {
184
- compartmentId,
185
- ocirCompartmentId: ocirCompartmentOcid,
186
- tenancyId,
187
- region,
188
- namespace,
189
- functionAppName,
190
- functionName,
191
- ocirRepositoryName,
192
- apiGwPathPrefix: process.env.OCI_APIGW_PATH_PREFIX?.trim() || undefined,
193
- apiGwRoutePath: process.env.OCI_APIGW_ROUTE_PATH?.trim() || undefined,
194
- apiGwMethods: apiGwMethods && apiGwMethods.length > 0 ? apiGwMethods : undefined,
195
- pgUrl: process.env.PG_URL?.trim() || undefined,
196
- vaultOcid: process.env.OCI_VAULT_OCID?.trim() || undefined,
197
- keyOcid: process.env.OCI_KEY_OCID?.trim() || undefined,
198
- pgSecretOcid: process.env.PG_SECRET_OCID?.trim() || undefined,
199
- backend: backendConfig,
200
- };
201
- }
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2NpLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvamF2YS1mdW5jdGlvbi9vY2ktY2RrL2NvbmZpZy9vY2ktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0hILG9DQWlGQztBQS9MRCx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6QixtREFBcUM7QUFDckMsaUVBQW1EO0FBRW5ELDBHQUEwRztBQUMxRyxTQUFTLGlDQUFpQztJQUN4QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUYsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLElBQUksU0FBUyxDQUFDO0lBQ3pELElBQUksQ0FBQztRQUNILElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUEwQyxFQUFFLENBQUM7UUFDekQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFD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Q0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNqRSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsT0FBTztRQUNMLGFBQWE7UUFDYixpQkFBaUIsRUFBRSxtQkFBbUI7UUFDdEMsU0FBUztRQUNULE1BQU07UUFDTixTQUFTO1FBQ1QsZUFBZTtRQUNmLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxFQUFFLElBQUksU0FBUztRQUN2RSxjQUFjLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxTQUFTO1FBQ3JFLFlBQVksRUFBRSxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNoRixLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksU0FBUztRQUM5QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksU0FBUztRQUMxRCxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksU0FBUztRQUN0RCxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksU0FBUztRQUM3RCxPQUFPLEVBQUUsYUFBYTtLQUN2QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT0NJIENvbmZpZ3VyYXRpb24gZm9yIFRlc3QgRnVuY3Rpb25cbiAqXG4gKiBSZXF1aXJlZCBlbnYgdmFycyAobm8gZGVmYXVsdHM7IHRocm93cyBpZiBtaXNzaW5nKTpcbiAqIC0gT0NJX0NPTVBBUlRNRU5UX09DSUQgKG9yIE9DSV9DT01QQVJUTUVOVF9JRClcbiAqIC0gT0NJX09DSVJfQ09NUEFSVE1FTlRfT0NJRCAob3Igc2FtZSBhcyBjb21wYXJ0bWVudDsgcm9vdCBhbGxvd2VkIGlmIGV4cGxpY2l0bHkgc2V0KVxuICogLSBPQ0lfVEVOQU5DWV9PQ0lEIChvciBPQ0lfVEVOQU5DWV9JRCkg4oCTIGlmIHVuc2V0LCByZWFkIGZyb20gT0NJIENMSSBjb25maWcgKHNlZSBiZWxvdylcbiAqIC0gT0NJX1JFR0lPTiDigJMgaWYgdW5zZXQsIHJlYWQgZnJvbSBPQ0kgQ0xJIGNvbmZpZyAoc2VlIGJlbG93KVxuICpcbiAqIE9DSSBDTEkgY29uZmlnOiBkZWZhdWx0IGZpbGUgaXMgfi8ub2NpL2NvbmZpZywgZGVmYXVsdCBwcm9maWxlIGlzIERFRkFVTFQuXG4gKiAtIE9DSV9OQU1FU1BBQ0Ug4oCTIGlmIHVuc2V0LCBvYnRhaW5lZCB2aWEgT0NJIFNESyAoT2JqZWN0IFN0b3JhZ2UgZ2V0TmFtZXNwYWNlLCBzYW1lIGFzIFwib2NpIG9zIG5zIGdldFwiKVxuICogLSBPQ0lfRlVOQ1RJT05fQVBQX05BTUVcbiAqIC0gT0NJX0ZVTkNUSU9OX05BTUVcbiAqIC0gT0NJX09DSVJfUkVQT1NJVE9SWV9OQU1FIChpZiB1bnNldCwgdXNlcyBPQ0lfRlVOQ1RJT05fQVBQX05BTUUpXG4gKlxuICogT3B0aW9uYWwg4oCTIEFQSSBHYXRld2F5IGRlcGxveW1lbnQgKGRlZmF1bHRzOiBwYXRoUHJlZml4ICcvJywgcm91dGUgcGF0aCAnL3twYXRoKn0nLCBtZXRob2RzIEdFVCxQT1NULE9QVElPTlMpOlxuICogLSBPQ0lfQVBJR1dfUEFUSF9QUkVGSVhcbiAqIC0gT0NJX0FQSUdXX1JPVVRFX1BBVEhcbiAqIC0gT0NJX0FQSUdXX01FVEhPRFMgKGNvbW1hLXNlcGFyYXRlZCwgZS5nLiBHRVQsUE9TVCxPUFRJT05TKVxuICpcbiAqIE9wdGlvbmFsIChPQ0kgQ0xJIGNvbmZpZyk6IGNvbmZpZyBmaWxlIGRlZmF1bHQgaXMgfi8ub2NpL2NvbmZpZywgcHJvZmlsZSBkZWZhdWx0IGlzIERFRkFVTFQuXG4gKiAtIE9DSV9DT05GSUdfRklMRSDigJMgb3ZlcnJpZGUgY29uZmlnIGZpbGUgcGF0aFxuICogLSBPQ0lfQ0xJX1BST0ZJTEUg4oCTIG92ZXJyaWRlIHByb2ZpbGUgbmFtZVxuICogLSBQR19VUkwg4oCTIFBvc3RncmVTUUwgY29ubmVjdGlvbiBzdHJpbmcuIElmIHNldCB3aXRoIE9DSV9WQVVMVF9PQ0lELCBzdGFjayBjcmVhdGVzIFZhdWx0IHNlY3JldCAoT0NJX0tFWV9PQ0lEIHJlcXVpcmVkKS4gT3RoZXJ3aXNlIHBhc3NlZCB0byBmdW5jdGlvbiBhcyBjb25maWcgKGNsZWFyLXRleHQ7IHdhcm5pbmcgZW1pdHRlZCkuXG4gKiAtIE9DSV9WQVVMVF9PQ0lELCBPQ0lfS0VZX09DSUQg4oCTIHdoZW4gc2V0IHdpdGggUEdfVVJMLCBzdGFjayBjcmVhdGVzIHNlY3JldCBpbiBWYXVsdC5cbiAqIC0gUEdfU0VDUkVUX09DSUQg4oCTIGV4aXN0aW5nIE9DSSBWYXVsdCBzZWNyZXQgT0NJRCBmb3IgUEcgKHdoZW4gUEdfVVJMIGlzIG5vdCBzZXQpLlxuICpcbiAqIFRoZSBGdW5jdGlvbnMgcmVzb3VyY2UgcmVxdWlyZXMgdGhlIGNvbnRhaW5lciBpbWFnZSB0byBhbHJlYWR5IGV4aXN0IGluIE9DSVJcbiAqIChlLmcuIGJ1aWxkIGFuZCBwdXNoIHdpdGggc2NyaXB0cy9idWlsZC1kb2NrZXIuc2ggYW5kIHNjcmlwdHMvZGVwbG95LW9jaS1mdW5jdGlvbi5zaCkuXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGNvbW1vbiBmcm9tICdvY2ktY29tbW9uJztcbmltcG9ydCAqIGFzIG9iamVjdHN0b3JhZ2UgZnJvbSAnb2NpLW9iamVjdHN0b3JhZ2UnO1xuXG4vKiogUmVhZCB0ZW5hbmN5IGFuZCByZWdpb24gZnJvbSBPQ0kgQ0xJIGNvbmZpZy4gRGVmYXVsdCBmaWxlOiB+Ly5vY2kvY29uZmlnLCBkZWZhdWx0IHByb2ZpbGU6IERFRkFVTFQuICovXG5mdW5jdGlvbiByZWFkVGVuYW5jeUFuZFJlZ2lvbkZyb21DbGlDb25maWcoKTogeyB0ZW5hbmN5Pzogc3RyaW5nOyByZWdpb24/OiBzdHJpbmcgfSB7XG4gIGNvbnN0IGNvbmZpZ1BhdGggPSBwcm9jZXNzLmVudi5PQ0lfQ09ORklHX0ZJTEUgfHwgcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJy5vY2knLCAnY29uZmlnJyk7XG4gIGNvbnN0IHByb2ZpbGUgPSBwcm9jZXNzLmVudi5PQ0lfQ0xJX1BST0ZJTEUgfHwgJ0RFRkFVTFQnO1xuICB0cnkge1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhjb25maWdQYXRoKSkgcmV0dXJuIHt9O1xuICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoY29uZmlnUGF0aCwgJ3V0Zi04Jyk7XG4gICAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KC9cXHI/XFxuLyk7XG4gICAgbGV0IGluUHJvZmlsZSA9IGZhbHNlO1xuICAgIGNvbnN0IHJlc3VsdDogeyB0ZW5hbmN5Pzogc3RyaW5nOyByZWdpb24/OiBzdHJpbmcgfSA9IHt9O1xuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgY29uc3QgdHJpbW1lZCA9IGxpbmUudHJpbSgpO1xuICAgICAgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgnWycpICYmIHRyaW1tZWQuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICBpblByb2ZpbGUgPSB0cmltbWVkLnNsaWNlKDEsIC0xKSA9PT0gcHJvZmlsZTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIWluUHJvZmlsZSkgY29udGludWU7XG4gICAgICBjb25zdCBlcSA9IHRyaW1tZWQuaW5kZXhPZignPScpO1xuICAgICAgaWYgKGVxIDw9IDApIGNvbnRpbnVlO1xuICAgICAgY29uc3Qga2V5ID0gdHJpbW1lZC5zbGljZSgwLCBlcSkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRyaW1tZWQuc2xpY2UoZXEgKyAxKS50cmltKCk7XG4gICAgICBpZiAoa2V5ID09PSAndGVuYW5jeScpIHJlc3VsdC50ZW5hbmN5ID0gdmFsdWU7XG4gICAgICBpZiAoa2V5ID09PSAncmVnaW9uJykgcmVzdWx0LnJlZ2lvbiA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuLyoqIEdldCBvYmplY3Qgc3RvcmFnZSBuYW1lc3BhY2UgdmlhIE9DSSBTREsgKHNhbWUgYXMgXCJvY2kgb3MgbnMgZ2V0XCIpLiBVc2VzIH4vLm9jaS9jb25maWcsIERFRkFVTFQgcHJvZmlsZS4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldE5hbWVzcGFjZUZyb21PY2lTZGsoY29tcGFydG1lbnRJZDogc3RyaW5nLCByZWdpb246IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IGNvbmZpZ1BhdGggPSBwcm9jZXNzLmVudi5PQ0lfQ09ORklHX0ZJTEUgfHwgcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJy5vY2knLCAnY29uZmlnJyk7XG4gIGNvbnN0IHByb2ZpbGUgPSBwcm9jZXNzLmVudi5PQ0lfQ0xJX1BST0ZJTEUgfHwgJ0RFRkFVTFQnO1xuICB0cnkge1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGNvbW1vbi5Db25maWdGaWxlQXV0aGVudGljYXRpb25EZXRhaWxzUHJvdmlkZXIoY29uZmlnUGF0aCwgcHJvZmlsZSk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IG9iamVjdHN0b3JhZ2UuT2JqZWN0U3RvcmFnZUNsaWVudCh7IGF1dGhlbnRpY2F0aW9uRGV0YWlsc1Byb3ZpZGVyOiBwcm92aWRlciB9KTtcbiAgICBjbGllbnQucmVnaW9uSWQgPSByZWdpb247XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0TmFtZXNwYWNlKHtcbiAgICAgIGNvbXBhcnRtZW50SWQsXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnZhbHVlPy50cmltKCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBPY2lCYWNrZW5kQ29uZmlnIHtcbiAgdHlwZTogJ29jaScgfCAnaHR0cCcgfCAnbG9jYWwnO1xuICBidWNrZXQ/OiBzdHJpbmc7XG4gIGtleT86IHN0cmluZztcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgdXBkYXRlTWV0aG9kPzogc3RyaW5nO1xuICBsb2NrQWRkcmVzcz86IHN0cmluZztcbiAgdW5sb2NrQWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPY2lDb25maWcge1xuICBjb21wYXJ0bWVudElkOiBzdHJpbmc7XG4gIG9jaXJDb21wYXJ0bWVudElkPzogc3RyaW5nO1xuICB0ZW5hbmN5SWQ6IHN0cmluZztcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBmdW5jdGlvbkFwcE5hbWU6IHN0cmluZztcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIG9jaXJSZXBvc2l0b3J5TmFtZT86IHN0cmluZztcbiAgLyoqIFdoZW4gc2V0LCBzdGFjayBjcmVhdGVzIFZhdWx0IHNlY3JldCAocGctdXJsKSBmcm9tIHRoaXMgdmFsdWUgKHJlcXVpcmVzIHZhdWx0T2NpZCBhbmQga2V5T2NpZCB3aGVuIHVzaW5nIFZhdWx0KS4gKi9cbiAgcGdVcmw/OiBzdHJpbmc7XG4gIC8qKiBWYXVsdCBPQ0lEIGZvciBjcmVhdGluZyBwZy11cmwgc2VjcmV0IChyZXF1aXJlZCB3aGVuIHBnVXJsIGlzIHNldCBhbmQgdXNpbmcgVmF1bHQpLiAqL1xuICB2YXVsdE9jaWQ/OiBzdHJpbmc7XG4gIC8qKiBLTVMgS2V5IE9DSUQgZm9yIGVuY3J5cHRpbmcgcGctdXJsIHNlY3JldCAocmVxdWlyZWQgd2hlbiB2YXVsdE9jaWQgaXMgc2V0KS4gKi9cbiAga2V5T2NpZD86IHN0cmluZztcbiAgLyoqIFdoZW4gcGdVcmwgaXMgbm90IHNldDogdXNlIHRoaXMgZXhpc3RpbmcgT0NJIFZhdWx0IHNlY3JldCBPQ0lEIGZvciBQRyAoc2V0IFBHX1NFQ1JFVF9PQ0lEIGVudiB2YXIpLiAqL1xuICBwZ1NlY3JldE9jaWQ/OiBzdHJpbmc7XG4gIC8qKiBBUEkgR2F0ZXdheSBkZXBsb3ltZW50IHBhdGggcHJlZml4IChPQ0lfQVBJR1dfUEFUSF9QUkVGSVgpLiBEZWZhdWx0ICcvJy4gKi9cbiAgYXBpR3dQYXRoUHJlZml4Pzogc3RyaW5nO1xuICAvKiogQVBJIEdhdGV3YXkgcm91dGUgcGF0aCAoT0NJX0FQSUdXX1JPVVRFX1BBVEgpLiBEZWZhdWx0ICcve3BhdGgqfScuICovXG4gIGFwaUd3Um91dGVQYXRoPzogc3RyaW5nO1xuICAvKiogQVBJIEdhdGV3YXkgcm91dGUgbWV0aG9kcyAoT0NJX0FQSUdXX01FVEhPRFMpLiBEZWZhdWx0ICdHRVQsUE9TVCxPUFRJT05TJy4gKi9cbiAgYXBpR3dNZXRob2RzPzogc3RyaW5nW107XG4gIGJhY2tlbmQ/OiBPY2lCYWNrZW5kQ29uZmlnO1xufVxuXG5jb25zdCBiYWNrZW5kVHlwZSA9IChwcm9jZXNzLmVudi5PQ0lfU1RBVEVfQkFDS0VORF9UWVBFIHx8ICdsb2NhbCcpIGFzICdvY2knIHwgJ2h0dHAnIHwgJ2xvY2FsJztcblxuY29uc3QgYmFja2VuZENvbmZpZzogT2NpQmFja2VuZENvbmZpZyB8IHVuZGVmaW5lZCA9IGJhY2tlbmRUeXBlID09PSAnbG9jYWwnXG4gID8gdW5kZWZpbmVkXG4gIDogYmFja2VuZFR5cGUgPT09ICdvY2knXG4gICAgPyB7XG4gICAgICAgIHR5cGU6ICdvY2knLFxuICAgICAgICBidWNrZXQ6IHByb2Nlc3MuZW52Lk9DSV9TVEFURV9CVUNLRVQgfHwgJ3RmLXN0YXRlJyxcbiAgICAgICAga2V5OiBwcm9jZXNzLmVudi5PQ0lfU1RBVEVfS0VZIHx8ICdmdW5jdGlvbi1zdGFjay90ZXJyYWZvcm0udGZzdGF0ZScsXG4gICAgICB9XG4gICAgOiB7XG4gICAgICAgIHR5cGU6ICdodHRwJyxcbiAgICAgICAgYWRkcmVzczogcHJvY2Vzcy5lbnYuT0NJX1NUQVRFX0hUVFBfQUREUkVTUyB8fCAnJyxcbiAgICAgICAgdXBkYXRlTWV0aG9kOiBwcm9jZXNzLmVudi5PQ0lfU1RBVEVfSFRUUF9VUERBVEVfTUVUSE9EIHx8ICdQVVQnLFxuICAgICAgICBsb2NrQWRkcmVzczogcHJvY2Vzcy5lbnYuT0NJX1NUQVRFX0hUVFBfTE9DS19BRERSRVNTLFxuICAgICAgICB1bmxvY2tBZGRyZXNzOiBwcm9jZXNzLmVudi5PQ0lfU1RBVEVfSFRUUF9VTkxPQ0tfQUREUkVTUyxcbiAgICAgIH07XG5cbi8qKlxuICogTG9hZCBPQ0kgY29uZmlnIGZyb20gZW52IGFuZCBDTEkgY29uZmlnLiBXaGVuIE9DSV9OQU1FU1BBQ0UgaXMgdW5zZXQsIGZldGNoZXMgaXQgdmlhIE9DSSBTREsgKGdldE5hbWVzcGFjZSkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPY2lDb25maWcoKTogUHJvbWlzZTxPY2lDb25maWc+IHtcbiAgY29uc3QgY29tcGFydG1lbnRJZCA9IHByb2Nlc3MuZW52Lk9DSV9DT01QQVJUTUVOVF9PQ0lEPy50cmltKCkgfHwgcHJvY2Vzcy5lbnYuT0NJX0NPTVBBUlRNRU5UX0lEPy50cmltKCk7XG4gIGlmICghY29tcGFydG1lbnRJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdPQ0lfQ09NUEFSVE1FTlRfT0NJRCBpcyByZXF1aXJlZCAob3IgT0NJX0NPTVBBUlRNRU5UX0lEKS4gRXhhbXBsZTogZXhwb3J0IE9DSV9DT01QQVJUTUVOVF9PQ0lEPVwib2NpZDEuY29tcGFydG1lbnQub2MxLi5hYWFhYWFhLi4uXCInXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG9jaXJDb21wYXJ0bWVudE9jaWQgPSBwcm9jZXNzLmVudi5PQ0lfT0NJUl9DT01QQVJUTUVOVF9PQ0lEPy50cmltKCkgfHwgcHJvY2Vzcy5lbnYuT0NJX09DSVJfQ09NUEFSVE1FTlRfSUQ/LnRyaW0oKSB8fCBjb21wYXJ0bWVudElkO1xuICBpZiAoIW9jaXJDb21wYXJ0bWVudE9jaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnT0NJX09DSVJfQ09NUEFSVE1FTlRfT0NJRCBpcyByZXF1aXJlZCAob3Igc2V0IE9DSV9DT01QQVJUTUVOVF9PQ0lEIHRvIHVzZSB0aGUgc2FtZSBjb21wYXJ0bWVudCkuICcgK1xuICAgICAgJ0V4YW1wbGU6IGV4cG9ydCBPQ0lfT0NJUl9DT01QQVJUTUVOVF9PQ0lEPVwib2NpZDEuY29tcGFydG1lbnQub2MxLi5hYWFhYWFhLi4uXCInXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGNsaUNvbmZpZyA9IHJlYWRUZW5hbmN5QW5kUmVnaW9uRnJvbUNsaUNvbmZpZygpO1xuICBjb25zdCB0ZW5hbmN5SWQgPSBwcm9jZXNzLmVudi5PQ0lfVEVOQU5DWV9PQ0lEPy50cmltKCkgfHwgcHJvY2Vzcy5lbnYuT0NJX1RFTkFOQ1lfSUQ/LnRyaW0oKSB8fCBjbGlDb25maWcudGVuYW5jeT8udHJpbSgpO1xuICBpZiAoIXRlbmFuY3lJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdPQ0lfVEVOQU5DWV9PQ0lEIGlzIHJlcXVpcmVkIChvciBPQ0lfVEVOQU5DWV9JRCksIG9yIHJ1biBcIm9jaSBzZXR1cCBjb25maWdcIiBzbyBpdCBjYW4gYmUgcmVhZCBmcm9tIH4vLm9jaS9jb25maWcnXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHJlZ2lvbiA9IHByb2Nlc3MuZW52Lk9DSV9SRUdJT04/LnRyaW0oKSB8fCBjbGlDb25maWcucmVnaW9uPy50cmltKCk7XG4gIGlmICghcmVnaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ09DSV9SRUdJT04gaXMgcmVxdWlyZWQgKG9yIHNldCBpbiB+Ly5vY2kvY29uZmlnKS4gRXhhbXBsZTogZXhwb3J0IE9DSV9SRUdJT049XCJldS1mcmFua2Z1cnQtMVwiJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbmFtZXNwYWNlID0gcHJvY2Vzcy5lbnYuT0NJX05BTUVTUEFDRT8udHJpbSgpO1xuICBpZiAoIW5hbWVzcGFjZSB8fCBuYW1lc3BhY2UgPT09ICd5b3VyLW5hbWVzcGFjZScpIHtcbiAgICBuYW1lc3BhY2UgPSAoYXdhaXQgZ2V0TmFtZXNwYWNlRnJvbU9jaVNkayhjb21wYXJ0bWVudElkLCByZWdpb24pKSA/PyAnJztcbiAgfVxuICBpZiAoIW5hbWVzcGFjZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdPQ0lfTkFNRVNQQUNFIGlzIHJlcXVpcmVkLiBTZXQgaXQsIG9yIGVuc3VyZSBPQ0kgU0RLIGNhbiByZWFkIGl0IChvY2kgc2V0dXAgY29uZmlnIGFuZCBzYW1lIGNyZWRlbnRpYWxzIGZvciBPYmplY3QgU3RvcmFnZSkuICcgK1xuICAgICAgJ0V4YW1wbGU6IGV4cG9ydCBPQ0lfTkFNRVNQQUNFPVwieW91ci1hY3R1YWwtbmFtZXNwYWNlXCInXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGZ1bmN0aW9uQXBwTmFtZSA9IHByb2Nlc3MuZW52Lk9DSV9GVU5DVElPTl9BUFBfTkFNRT8udHJpbSgpO1xuICBpZiAoIWZ1bmN0aW9uQXBwTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdPQ0lfRlVOQ1RJT05fQVBQX05BTUUgaXMgcmVxdWlyZWQuIEV4YW1wbGU6IGV4cG9ydCBPQ0lfRlVOQ1RJT05fQVBQX05BTUU9XCJteS1mdW5jdGlvbi1hcHBcIidcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZnVuY3Rpb25OYW1lID0gcHJvY2Vzcy5lbnYuT0NJX0ZVTkNUSU9OX05BTUU/LnRyaW0oKTtcbiAgaWYgKCFmdW5jdGlvbk5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnT0NJX0ZVTkNUSU9OX05BTUUgaXMgcmVxdWlyZWQuIEV4YW1wbGU6IGV4cG9ydCBPQ0lfRlVOQ1RJT05fTkFNRT1cIm15LWZ1bmN0aW9uXCInXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG9jaXJSZXBvc2l0b3J5TmFtZSA9IHByb2Nlc3MuZW52Lk9DSV9PQ0lSX1JFUE9TSVRPUllfTkFNRT8udHJpbSgpIHx8IGZ1bmN0aW9uQXBwTmFtZTtcblxuICBjb25zdCBhcGlHd01ldGhvZHNTdHIgPSBwcm9jZXNzLmVudi5PQ0lfQVBJR1dfTUVUSE9EUz8udHJpbSgpO1xuICBjb25zdCBhcGlHd01ldGhvZHMgPSBhcGlHd01ldGhvZHNTdHJcbiAgICA/IGFwaUd3TWV0aG9kc1N0ci5zcGxpdCgnLCcpLm1hcCgobSkgPT4gbS50cmltKCkpLmZpbHRlcihCb29sZWFuKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgY29tcGFydG1lbnRJZCxcbiAgICBvY2lyQ29tcGFydG1lbnRJZDogb2NpckNvbXBhcnRtZW50T2NpZCxcbiAgICB0ZW5hbmN5SWQsXG4gICAgcmVnaW9uLFxuICAgIG5hbWVzcGFjZSxcbiAgICBmdW5jdGlvbkFwcE5hbWUsXG4gICAgZnVuY3Rpb25OYW1lLFxuICAgIG9jaXJSZXBvc2l0b3J5TmFtZSxcbiAgICBhcGlHd1BhdGhQcmVmaXg6IHByb2Nlc3MuZW52Lk9DSV9BUElHV19QQVRIX1BSRUZJWD8udHJpbSgpIHx8IHVuZGVmaW5lZCxcbiAgICBhcGlHd1JvdXRlUGF0aDogcHJvY2Vzcy5lbnYuT0NJX0FQSUdXX1JPVVRFX1BBVEg/LnRyaW0oKSB8fCB1bmRlZmluZWQsXG4gICAgYXBpR3dNZXRob2RzOiBhcGlHd01ldGhvZHMgJiYgYXBpR3dNZXRob2RzLmxlbmd0aCA+IDAgPyBhcGlHd01ldGhvZHMgOiB1bmRlZmluZWQsXG4gICAgcGdVcmw6IHByb2Nlc3MuZW52LlBHX1VSTD8udHJpbSgpIHx8IHVuZGVmaW5lZCxcbiAgICB2YXVsdE9jaWQ6IHByb2Nlc3MuZW52Lk9DSV9WQVVMVF9PQ0lEPy50cmltKCkgfHwgdW5kZWZpbmVkLFxuICAgIGtleU9jaWQ6IHByb2Nlc3MuZW52Lk9DSV9LRVlfT0NJRD8udHJpbSgpIHx8IHVuZGVmaW5lZCxcbiAgICBwZ1NlY3JldE9jaWQ6IHByb2Nlc3MuZW52LlBHX1NFQ1JFVF9PQ0lEPy50cmltKCkgfHwgdW5kZWZpbmVkLFxuICAgIGJhY2tlbmQ6IGJhY2tlbmRDb25maWcsXG4gIH07XG59XG4iXX0=
@@ -1,31 +0,0 @@
1
- import { Construct } from 'constructs';
2
- import { TerraformStack } from 'cdktf';
3
- import { OciBackendConfig } from '../config/oci-config';
4
- export interface OciStackConfig {
5
- compartmentId: string;
6
- ocirCompartmentId?: string;
7
- tenancyId: string;
8
- region: string;
9
- namespace: string;
10
- functionAppName: string;
11
- functionName: string;
12
- ocirRepositoryName?: string;
13
- /** When set with vaultOcid and keyOcid, stack creates Vault secret (pg-url) and function uses it. */
14
- pgUrl?: string;
15
- /** Vault OCID (required with keyOcid when pgUrl is set and using Vault). */
16
- vaultOcid?: string;
17
- /** KMS Key OCID (required when vaultOcid is set). */
18
- keyOcid?: string;
19
- /** When pgUrl is not set: existing OCI Vault secret OCID for PG (function config key: PG_SECRET_OCID). */
20
- pgSecretOcid?: string;
21
- /** API Gateway deployment path prefix. Default '/'. */
22
- apiGwPathPrefix?: string;
23
- /** API Gateway route path. Default '/{path*}'. */
24
- apiGwRoutePath?: string;
25
- /** API Gateway route methods. Default ['GET', 'POST', 'OPTIONS']. */
26
- apiGwMethods?: string[];
27
- backend?: OciBackendConfig;
28
- }
29
- export declare class FunctionStack extends TerraformStack {
30
- constructor(scope: Construct, id: string, config: OciStackConfig);
31
- }