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

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 (47) hide show
  1. package/README.md +29 -6
  2. package/package.json +1 -1
  3. package/lib/.gen/providers/oci/identity-dynamic-group/index.d.ts +0 -166
  4. package/lib/.gen/providers/oci/identity-dynamic-group/index.js +0 -408
  5. package/lib/bin/deploy-with-build.js +0 -132
  6. package/lib/test/java-function/aws-cdk/bin/app.d.ts +0 -2
  7. package/lib/test/java-function/aws-cdk/bin/app.js +0 -51
  8. package/lib/test/java-function/aws-cdk/lib/function-stack.d.ts +0 -11
  9. package/lib/test/java-function/aws-cdk/lib/function-stack.js +0 -159
  10. package/lib/test/java-function/aws-cdk/lib/test-function-stack.d.ts +0 -5
  11. package/lib/test/java-function/aws-cdk/lib/test-function-stack.js +0 -94
  12. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.d.ts +0 -5356
  13. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.js +0 -14972
  14. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.d.ts +0 -449
  15. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.js +0 -1149
  16. package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.d.ts +0 -217
  17. package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.js +0 -563
  18. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.d.ts +0 -176
  19. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.js +0 -431
  20. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.d.ts +0 -255
  21. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.js +0 -644
  22. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.d.ts +0 -752
  23. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.js +0 -2091
  24. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.d.ts +0 -220
  25. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.js +0 -543
  26. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.d.ts +0 -251
  27. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.js +0 -612
  28. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.d.ts +0 -270
  29. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.js +0 -672
  30. package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.d.ts +0 -150
  31. package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.js +0 -386
  32. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.d.ts +0 -330
  33. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.js +0 -821
  34. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.d.ts +0 -322
  35. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.js +0 -820
  36. package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.d.ts +0 -190
  37. package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.js +0 -391
  38. package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.d.ts +0 -439
  39. package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.js +0 -1146
  40. package/lib/test/java-function/oci-cdk/bin/app.d.ts +0 -2
  41. package/lib/test/java-function/oci-cdk/bin/app.js +0 -34
  42. package/lib/test/java-function/oci-cdk/config/oci-config.d.ts +0 -68
  43. package/lib/test/java-function/oci-cdk/config/oci-config.js +0 -202
  44. package/lib/test/java-function/oci-cdk/lib/function-stack.d.ts +0 -31
  45. package/lib/test/java-function/oci-cdk/lib/function-stack.js +0 -549
  46. package/lib/test/java-function/oci-cdk/lib/test-function-stack.d.ts +0 -17
  47. 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
- }