This commit is contained in:
1 parent
e4843e7d1d
commit
1808f14cc6
17 files changed
+711
-23
No files matched your search
@@ -0,0 +1,38 @@
|
||||
import { spawn } from 'node:child_process';
|
||||
import { deploymentOrgSettings } from './org-context-settings.mjs';
|
||||
|
||||
const worker = 'baron-qa-gateway-test';
|
||||
const dryRun = process.argv.includes('--dry-run');
|
||||
function execute(args, input) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const child = spawn('npx', ['wrangler', ...args], {
|
||||
stdio: [input === undefined ? 'ignore' : 'pipe', 'inherit', 'inherit']
|
||||
});
|
||||
child.once('error', (error) => {
|
||||
console.error('Worker command OS error:', error.code);
|
||||
reject(new Error('Worker deployment command failed'));
|
||||
});
|
||||
child.once('exit', (code, signal) => {
|
||||
if (code === 0) resolve();
|
||||
else {
|
||||
console.error('Worker command exit:', signal || code);
|
||||
reject(new Error('Worker deployment command failed'));
|
||||
}
|
||||
});
|
||||
if (input !== undefined) {
|
||||
child.stdin.once('error', () => reject(new Error('Worker secret input failed')));
|
||||
child.stdin.end(input);
|
||||
}
|
||||
});
|
||||
}
|
||||
try {
|
||||
const { vars, secrets } = deploymentOrgSettings(process.env);
|
||||
if (!dryRun && Object.keys(secrets).length) await execute(['secret', 'bulk', '--name', worker], JSON.stringify(secrets));
|
||||
const args = ['deploy', '--name', worker];
|
||||
if (dryRun) args.push('--dry-run');
|
||||
for (const [name, value] of Object.entries(vars)) args.push('--var', name + ':' + value);
|
||||
await execute(args);
|
||||
} catch {
|
||||
console.error('Worker deployment failed. Check configuration and preceding Wrangler diagnostics.');
|
||||
process.exitCode = 1;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import { orgContextConfig } from '../src/org-context.js';
|
||||
|
||||
export function deploymentOrgSettings(env) {
|
||||
const vars = {
|
||||
ORG_CONTEXT_ENABLED: env.ORG_CONTEXT_ENABLED || 'false',
|
||||
ORG_CONTEXT_API_URL: env.ORG_CONTEXT_API_URL || 'https://sadmin.hmac.kr/api/v1/integrations/org-context',
|
||||
ORG_CONTEXT_SCOPE_MODE: env.ORG_CONTEXT_SCOPE_MODE || 'SCOPED',
|
||||
ORG_CONTEXT_EXPOSURE: env.ORG_CONTEXT_EXPOSURE || 'identifiers',
|
||||
ORG_CONTEXT_TENANT_IDS: env.ORG_CONTEXT_TENANT_IDS || '[]',
|
||||
ORG_CONTEXT_CACHE_TTL_SECONDS: env.ORG_CONTEXT_CACHE_TTL_SECONDS || '300'
|
||||
};
|
||||
if (!['true', 'false'].includes(vars.ORG_CONTEXT_ENABLED)) throw new Error('ORG_CONTEXT_ENABLED must be true or false');
|
||||
const secrets = {
|
||||
ORG_CONTEXT_KEY_ID: env.ORG_CONTEXT_KEY_ID || '',
|
||||
ORG_CONTEXT_KEY_SECRET: env.ORG_CONTEXT_KEY_SECRET || ''
|
||||
};
|
||||
if (vars.ORG_CONTEXT_ENABLED === 'true') orgContextConfig({ ...vars, ...secrets });
|
||||
return { vars, secrets: secrets.ORG_CONTEXT_KEY_ID && secrets.ORG_CONTEXT_KEY_SECRET ? secrets : {} };
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import { getOrgDirectory } from '../src/org-context.js';
|
||||
import { deploymentOrgSettings } from './org-context-settings.mjs';
|
||||
|
||||
try {
|
||||
const { vars, secrets } = deploymentOrgSettings(process.env);
|
||||
if (vars.ORG_CONTEXT_ENABLED !== 'true') {
|
||||
console.log('Organization integration disabled; existing behavior retained.');
|
||||
} else {
|
||||
const directory = await getOrgDirectory({ ...vars, ...secrets });
|
||||
console.log(JSON.stringify({
|
||||
status: 'verified', rootCount: JSON.parse(vars.ORG_CONTEXT_TENANT_IDS).length,
|
||||
tenantCount: directory.tenantCount, userCount: directory.byUser.size,
|
||||
membershipCount: directory.membershipCount
|
||||
}));
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(/^org_context_[a-z0-9_]+$/.test(error?.message || '') ? error.message : 'Organization integration configuration or verification failed.');
|
||||
process.exitCode = 1;
|
||||
}
|
||||
Reference in new issue
Block a user