@enterpriseai/cli 3.19.1 → 3.19.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.
- package/README.md +28 -0
- package/dist/commands/eai-managed-deploy-customer-source.d.ts.map +1 -1
- package/dist/commands/eai-managed-deploy-customer-source.js +24 -0
- package/dist/commands/eai-managed-deploy-customer-source.js.map +1 -1
- package/dist/commands/eai-managed-deploy-github-dispatch.d.ts.map +1 -1
- package/dist/commands/eai-managed-deploy-github-dispatch.js +30 -0
- package/dist/commands/eai-managed-deploy-github-dispatch.js.map +1 -1
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +33 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/provision.js +2 -5
- package/dist/commands/provision.js.map +1 -1
- package/dist/commands/support.d.ts +18 -0
- package/dist/commands/support.d.ts.map +1 -0
- package/dist/commands/support.js +110 -0
- package/dist/commands/support.js.map +1 -0
- package/dist/commands/types.d.ts +5 -1
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js +55 -12
- package/dist/commands/types.js.map +1 -1
- package/dist/index.js +34 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-guide.d.ts.map +1 -1
- package/dist/lib/agent-guide.js +25 -4
- package/dist/lib/agent-guide.js.map +1 -1
- package/dist/lib/api.d.ts +4 -2
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +17 -5
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/config.d.ts +2 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +8 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/eai-managed-deploy-contract.d.ts +4 -0
- package/dist/lib/eai-managed-deploy-contract.d.ts.map +1 -1
- package/dist/lib/eai-managed-deploy-contract.js.map +1 -1
- package/dist/lib/eai-managed-deploy-operation.d.ts.map +1 -1
- package/dist/lib/eai-managed-deploy-operation.js +14 -0
- package/dist/lib/eai-managed-deploy-operation.js.map +1 -1
- package/dist/lib/eai-managed-deploy-state.d.ts.map +1 -1
- package/dist/lib/eai-managed-deploy-state.js +15 -1
- package/dist/lib/eai-managed-deploy-state.js.map +1 -1
- package/dist/lib/error-codes.d.ts.map +1 -1
- package/dist/lib/error-codes.js +6 -3
- package/dist/lib/error-codes.js.map +1 -1
- package/dist/lib/output.d.ts +1 -0
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +3 -0
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/profile.d.ts +2 -0
- package/dist/lib/profile.d.ts.map +1 -1
- package/dist/lib/profile.js.map +1 -1
- package/dist/lib/support-context.d.ts +31 -0
- package/dist/lib/support-context.d.ts.map +1 -0
- package/dist/lib/support-context.js +193 -0
- package/dist/lib/support-context.js.map +1 -0
- package/dist/lib/support-redaction.d.ts +10 -0
- package/dist/lib/support-redaction.d.ts.map +1 -0
- package/dist/lib/support-redaction.js +44 -0
- package/dist/lib/support-redaction.js.map +1 -0
- package/dist/lib/support-report.d.ts +68 -0
- package/dist/lib/support-report.d.ts.map +1 -0
- package/dist/lib/support-report.js +165 -0
- package/dist/lib/support-report.js.map +1 -0
- package/package.json +5 -4
- package/resources/deploy/eai-app-template/.github/workflows/eai-app.yml +46 -13
- package/resources/deploy/eai-app-template/producer-pin.json +8 -8
- package/resources/deploy/eai-app-template/scripts/source-unknown-deployment-evidence.mjs +29 -2
- package/resources/deploy/eai-app-template/tests/source-unknown-deployment-evidence.test.mjs +2239 -1
- package/resources/gofer/agents-skills/eai/SKILL.md +20 -0
- package/resources/gofer/claude-commands/eai.md +20 -0
- package/resources/gofer/claude-skills/eai/SKILL.md +20 -0
- package/resources/gofer/commands/0_gofer_start.md +18 -0
- package/resources/gofer/commands/gofer_eai_first_run.md +18 -0
- package/resources/gofer/copilot-prompts/eai.prompt.md +20 -0
- package/resources/gofer/gemini/commands/gofer/eai.md +20 -0
- package/resources/gofer/github-skills/eai/SKILL.md +20 -0
- package/resources/gofer/grok-skills/eai/SKILL.md +20 -0
- package/resources/gofer/instruction-templates/base/agents-base.md +18 -0
- package/resources/gofer/instruction-templates/base/claude-base.md +18 -0
- package/resources/gofer/instruction-templates/base/copilot-base.md +18 -0
- package/resources/gofer/instruction-templates/gofer/gofer-claude.md +4 -0
- package/resources/gofer/node-scripts/generate-commands.mjs +26 -0
- package/resources/gofer/references/platform/eai-support.md +19 -0
- package/resources/gofer/specify-commands/0_gofer_start.md +18 -0
- package/resources/gofer/specify-commands/gofer_eai_first_run.md +18 -0
- package/resources/gofer/system-skills/eai/SKILL.md +20 -0
- package/resources/linked-sources.json +2 -2
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import inquirer from 'inquirer';
|
|
5
|
+
import { getBrowserOpenCommand, loadTokens } from '../lib/auth.js';
|
|
6
|
+
import { collectSupportBundle, createSupportDraft, resolveSupportWebsite, SupportRequestError } from '../lib/support-report.js';
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
async function openSupportBrowser(url) {
|
|
9
|
+
const { command, args } = getBrowserOpenCommand(url);
|
|
10
|
+
await execFileAsync(command, args, { timeout: 5000 });
|
|
11
|
+
}
|
|
12
|
+
async function confirmSupport() {
|
|
13
|
+
const answers = await inquirer.prompt([{
|
|
14
|
+
type: 'confirm', name: 'consent', default: false,
|
|
15
|
+
message: 'Send this redacted report to EAI Support for a temporary draft?',
|
|
16
|
+
}]);
|
|
17
|
+
return answers.consent;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Previews a locally redacted report; options.yes asserts prior human consent to that report.
|
|
21
|
+
* JSON/noninteractive callers otherwise preview only; interactive text asks before sending.
|
|
22
|
+
* JSON emits consent_required, signed_out, created or failed and never opens a browser.
|
|
23
|
+
* Preparation/request failures set process.exitCode to 1; missing/expired/rejected sessions return a plain support link.
|
|
24
|
+
*/
|
|
25
|
+
export async function runSupport(options, dependencies = {}) {
|
|
26
|
+
const json = options.format === 'json';
|
|
27
|
+
let plainUrl;
|
|
28
|
+
const emit = (result) => {
|
|
29
|
+
// The validated capability link is the only token-bearing output; do not serialize the server response.
|
|
30
|
+
if (json)
|
|
31
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
32
|
+
else {
|
|
33
|
+
if (typeof result.message === 'string')
|
|
34
|
+
console.log(result.message);
|
|
35
|
+
if (typeof result.url === 'string')
|
|
36
|
+
console.log(result.url);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
try {
|
|
40
|
+
const website = await resolveSupportWebsite();
|
|
41
|
+
plainUrl = `${website}/support`;
|
|
42
|
+
const session = await loadTokens();
|
|
43
|
+
const bundle = await collectSupportBundle(options, session);
|
|
44
|
+
if (!json) {
|
|
45
|
+
console.log('Redacted support report (review before sending):');
|
|
46
|
+
console.log(JSON.stringify(bundle, null, 2));
|
|
47
|
+
}
|
|
48
|
+
if (!session?.accessToken || !Number.isFinite(session.expiresAt) || session.expiresAt <= Date.now()) {
|
|
49
|
+
emit({ ok: true, status: 'signed_out', bundle, url: plainUrl,
|
|
50
|
+
message: 'No valid eai login session. Open the Support page to report this manually; no draft was created.' });
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// JSON mode is a preview until the human has approved the report in the harness chat.
|
|
54
|
+
const interactive = dependencies.isInteractive ?? Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
55
|
+
if (!options.yes && (json || !interactive)) {
|
|
56
|
+
emit({ ok: true, status: 'consent_required', bundle,
|
|
57
|
+
message: 'Show this bundle to the person and ask for consent. Only after explicit approval, rerun with --yes.' });
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (!options.yes && !await (dependencies.confirm ?? confirmSupport)()) {
|
|
61
|
+
emit({ ok: true, status: 'declined', bundle, message: 'No report was sent and no draft was created.' });
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const draft = await createSupportDraft(website, bundle, session.accessToken);
|
|
65
|
+
if (!draft) {
|
|
66
|
+
emit({ ok: true, status: 'signed_out', bundle, url: plainUrl,
|
|
67
|
+
message: 'The website rejected the login session. Open the Support page to report this manually; no draft was created.' });
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
emit({ ok: true, status: 'created', bundle, url: draft.url, expiresAt: draft.expiresAt,
|
|
71
|
+
message: 'Support draft created. Open the link to review and submit it before it expires.' });
|
|
72
|
+
if (!json && options.open !== false) {
|
|
73
|
+
try {
|
|
74
|
+
await (dependencies.openBrowser ?? openSupportBrowser)(draft.url);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
console.error('The browser could not open. Use the Support link printed above.');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
const message = error instanceof SupportRequestError ? error.message
|
|
83
|
+
: 'The support report could not be prepared. Check the support options and website configuration.';
|
|
84
|
+
const code = error instanceof SupportRequestError ? error.code : 'invalid_report';
|
|
85
|
+
if (json)
|
|
86
|
+
emit({ ok: false, status: 'failed', error: { code, message }, url: plainUrl });
|
|
87
|
+
else {
|
|
88
|
+
console.error(message);
|
|
89
|
+
if (plainUrl)
|
|
90
|
+
console.log(plainUrl);
|
|
91
|
+
}
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/** CLI support entry point; --yes is reserved for the person's explicit approval of the previewed report. */
|
|
96
|
+
export const supportCommand = new Command('support')
|
|
97
|
+
.description('Review a redacted error report and hand it to the Support page with consent')
|
|
98
|
+
.option('--format <format>', 'Output format (text|json); JSON previews until consent is given', 'text')
|
|
99
|
+
.option('--source <source>', 'Report source (eai-cli|harness)')
|
|
100
|
+
.option('--tool <name>', 'AI harness name; selects harness source unless --source is set')
|
|
101
|
+
.option('--tool-version <version>', 'AI harness version, when known')
|
|
102
|
+
.option('--command <command>', 'Failing command, with credentials omitted')
|
|
103
|
+
.option('--exit-code <code>', 'Failing command exit code')
|
|
104
|
+
.option('--error-code <code-or-reason>', 'Error code or reason from eai errors list')
|
|
105
|
+
.option('--description <text>', 'Optional report description, redacted locally')
|
|
106
|
+
.option('--yes', 'Send only when the person has already explicitly consented to this report', false)
|
|
107
|
+
.option('--no-open', 'Print the Support link without opening the browser')
|
|
108
|
+
.addHelpText('after', '\nWithout --yes, JSON and noninteractive runs only preview the report.\nAfter the person approves the preview, rerun the same command with --yes.\nOnly the draft id and one-time token appear in the link fragment.\n')
|
|
109
|
+
.action(async (options) => { await runSupport(options); });
|
|
110
|
+
//# sourceMappingURL=support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/commands/support.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/types.d.ts
CHANGED
|
@@ -130,7 +130,11 @@ export declare function summarizeAppObjectTypePublish(tenantKey: string, tenantI
|
|
|
130
130
|
* Publishes through the app manifest and negotiates the receiver's slug shape once.
|
|
131
131
|
* Falls back to legacy direct writes only when the app-manifest route is unavailable.
|
|
132
132
|
*/
|
|
133
|
-
export declare function trySeedViaAppManifestPublish(client: PlatformAPIClient, tenantKey: string, tenantId: string, types: ObjectTypeDefinition[]): Promise<{
|
|
133
|
+
export declare function trySeedViaAppManifestPublish(client: PlatformAPIClient, tenantKey: string, tenantId: string, types: ObjectTypeDefinition[], runtimeTenantId?: string): Promise<{
|
|
134
|
+
result?: TypeSeedResult;
|
|
135
|
+
fallbackReason?: string;
|
|
136
|
+
}>;
|
|
137
|
+
export declare function publishAppObjectTypesForRuntime(appClient: PlatformAPIClient, runtimeClient: PlatformAPIClient, tenantKey: string, appTenantId: string, runtimeTenantId: string, types: ObjectTypeDefinition[]): Promise<{
|
|
134
138
|
result?: TypeSeedResult;
|
|
135
139
|
fallbackReason?: string;
|
|
136
140
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/types.js
CHANGED
|
@@ -550,14 +550,14 @@ export async function describeFailedPlatformResponse(response) {
|
|
|
550
550
|
const requestId = context.requestId ? ` (request ${context.requestId})` : "";
|
|
551
551
|
return `${status} - ${code}${truncatedDetail}${requestId}`;
|
|
552
552
|
}
|
|
553
|
-
function appOwnedStoragePublishGuidance(message, tenantKey, tenantId) {
|
|
553
|
+
function appOwnedStoragePublishGuidance(message, tenantKey, tenantId, appTenantId = tenantId) {
|
|
554
554
|
if (!/databaseAlias|storageBinding|app-owned prefix|not authorized|tableName/i.test(message)) {
|
|
555
555
|
return "";
|
|
556
556
|
}
|
|
557
557
|
return [
|
|
558
558
|
"",
|
|
559
559
|
"Why this can happen: workspace app Object Types must use app-owned storage bindings. Shared platform aliases and generic table names are rejected by the platform.",
|
|
560
|
-
`Next steps: run eai app provision ${tenantKey} --tenant-id ${
|
|
560
|
+
`Next steps: run eai app provision ${tenantKey} --tenant-id ${appTenantId} --select --format json, update src/eai.config/object-types.ts to use tenant-postgres and app-owned table names, then rerun eai types validate --tenant-key ${tenantKey} --tenant-id ${tenantId} and eai types seed --tenant-key ${tenantKey} --tenant-id ${tenantId}${appTenantId === tenantId ? '' : ` --app-tenant-id ${appTenantId}`}.`,
|
|
561
561
|
].join("\n");
|
|
562
562
|
}
|
|
563
563
|
async function archiveDuplicateRemoteTypes(client, duplicates) {
|
|
@@ -704,11 +704,31 @@ export function summarizeAppObjectTypePublish(tenantKey, tenantId, types, payloa
|
|
|
704
704
|
* Publishes through the app manifest and negotiates the receiver's slug shape once.
|
|
705
705
|
* Falls back to legacy direct writes only when the app-manifest route is unavailable.
|
|
706
706
|
*/
|
|
707
|
-
export async function trySeedViaAppManifestPublish(client, tenantKey, tenantId, types) {
|
|
707
|
+
export async function trySeedViaAppManifestPublish(client, tenantKey, tenantId, types, runtimeTenantId = tenantId) {
|
|
708
|
+
const splitTenantScope = runtimeTenantId !== tenantId;
|
|
709
|
+
if (splitTenantScope) {
|
|
710
|
+
const bindingResponse = await client.getBoundAppProvisioningJobs(tenantKey, runtimeTenantId);
|
|
711
|
+
if (!bindingResponse.ok) {
|
|
712
|
+
throw new Error(`app enrollment binding preflight failed: ${await describeFailedPlatformResponse(bindingResponse)}`);
|
|
713
|
+
}
|
|
714
|
+
const binding = await bindingResponse.json();
|
|
715
|
+
const enrollment = isRecord(binding) && isRecord(binding.enrollment) ? binding.enrollment : null;
|
|
716
|
+
const metadata = enrollment && isRecord(enrollment.metadata) ? enrollment.metadata : null;
|
|
717
|
+
const childTenantIds = [enrollment?.childTenantId, metadata?.childTenantId]
|
|
718
|
+
.filter((value) => value !== undefined && value !== null);
|
|
719
|
+
if (!isRecord(binding) || binding.tenantId !== tenantId
|
|
720
|
+
|| binding.appKey !== tenantKey || childTenantIds.length === 0
|
|
721
|
+
|| childTenantIds.some((value) => value !== runtimeTenantId)) {
|
|
722
|
+
throw new Error('app enrollment binding preflight did not match the exact parent, app, and runtime tenant');
|
|
723
|
+
}
|
|
724
|
+
}
|
|
708
725
|
let appManifestRequestShape = "explicit-name-and-slug";
|
|
709
|
-
let manifestResponse = await client.saveAppObjectTypeManifest(tenantKey, toAppManifestObjectTypes(types));
|
|
726
|
+
let manifestResponse = await client.saveAppObjectTypeManifest(tenantKey, toAppManifestObjectTypes(types), splitTenantScope ? runtimeTenantId : undefined);
|
|
710
727
|
const manifestFallbackReason = await appObjectTypePublishFallbackReason(manifestResponse, "save");
|
|
711
728
|
if (manifestFallbackReason) {
|
|
729
|
+
if (splitTenantScope) {
|
|
730
|
+
throw new Error(`app manifest save failed for bound runtime tenant: ${manifestFallbackReason}`);
|
|
731
|
+
}
|
|
712
732
|
return { fallbackReason: manifestFallbackReason };
|
|
713
733
|
}
|
|
714
734
|
// INVARIANT: A 422 saves no manifest, so only that response permits the
|
|
@@ -725,7 +745,7 @@ export async function trySeedViaAppManifestPublish(client, tenantKey, tenantId,
|
|
|
725
745
|
"Run eai errors explain app_manifest_validation_failed --format json.",
|
|
726
746
|
].join("\n"));
|
|
727
747
|
}
|
|
728
|
-
const nameDerivedResponse = await client.saveAppObjectTypeManifest(tenantKey, toAppManifestObjectTypes(types, "name-derived-slug"));
|
|
748
|
+
const nameDerivedResponse = await client.saveAppObjectTypeManifest(tenantKey, toAppManifestObjectTypes(types, "name-derived-slug"), splitTenantScope ? runtimeTenantId : undefined);
|
|
729
749
|
if (nameDerivedResponse.ok) {
|
|
730
750
|
manifestResponse = nameDerivedResponse;
|
|
731
751
|
appManifestRequestShape = "name-derived-slug";
|
|
@@ -742,20 +762,37 @@ export async function trySeedViaAppManifestPublish(client, tenantKey, tenantId,
|
|
|
742
762
|
}
|
|
743
763
|
if (!manifestResponse.ok) {
|
|
744
764
|
const detail = await describeFailedPlatformResponse(manifestResponse);
|
|
745
|
-
throw new Error(`app manifest save failed: ${detail}${appOwnedStoragePublishGuidance(detail, tenantKey, tenantId)}`);
|
|
765
|
+
throw new Error(`app manifest save failed: ${detail}${appOwnedStoragePublishGuidance(detail, tenantKey, runtimeTenantId, tenantId)}`);
|
|
746
766
|
}
|
|
747
|
-
const publishResponse = await client.publishAppObjectTypes(tenantKey);
|
|
767
|
+
const publishResponse = await client.publishAppObjectTypes(tenantKey, splitTenantScope ? runtimeTenantId : undefined);
|
|
748
768
|
const publishFallbackReason = await appObjectTypePublishFallbackReason(publishResponse, "publish");
|
|
749
769
|
if (publishFallbackReason) {
|
|
770
|
+
if (splitTenantScope) {
|
|
771
|
+
throw new Error(`app manifest publish failed for bound runtime tenant: ${publishFallbackReason}`);
|
|
772
|
+
}
|
|
750
773
|
return { fallbackReason: publishFallbackReason };
|
|
751
774
|
}
|
|
752
775
|
if (!publishResponse.ok) {
|
|
753
776
|
const detail = await describeFailedPlatformResponse(publishResponse);
|
|
754
|
-
throw new Error(`app manifest publish failed: ${detail}${appOwnedStoragePublishGuidance(detail, tenantKey, tenantId)}`);
|
|
777
|
+
throw new Error(`app manifest publish failed: ${detail}${appOwnedStoragePublishGuidance(detail, tenantKey, runtimeTenantId, tenantId)}`);
|
|
755
778
|
}
|
|
756
|
-
const
|
|
779
|
+
const publishPayload = await publishResponse.json();
|
|
780
|
+
if (splitTenantScope && (!isRecord(publishPayload)
|
|
781
|
+
|| publishPayload.tenantId !== tenantId
|
|
782
|
+
|| !isRecord(publishPayload.verification)
|
|
783
|
+
|| publishPayload.verification.tenantId !== runtimeTenantId)) {
|
|
784
|
+
throw new Error('app manifest publish did not verify the exact parent and runtime tenant');
|
|
785
|
+
}
|
|
786
|
+
const result = summarizeAppObjectTypePublish(tenantKey, runtimeTenantId, types, publishPayload, appManifestRequestShape);
|
|
757
787
|
return { result };
|
|
758
788
|
}
|
|
789
|
+
export async function publishAppObjectTypesForRuntime(appClient, runtimeClient, tenantKey, appTenantId, runtimeTenantId, types) {
|
|
790
|
+
const outcome = await trySeedViaAppManifestPublish(appClient, tenantKey, appTenantId, types, runtimeTenantId);
|
|
791
|
+
if (outcome.result) {
|
|
792
|
+
outcome.result.resourceApiSchemaSync = await waitForResourceApiSchemaVisibility(runtimeClient, runtimeTenantId, types.map((type) => type.name), outcome.result.resourceApiSchemaSync);
|
|
793
|
+
}
|
|
794
|
+
return outcome;
|
|
795
|
+
}
|
|
759
796
|
const RESOURCEAPI_SYNC_SUCCESS_STATUSES = new Set([
|
|
760
797
|
"applied",
|
|
761
798
|
"already_applied",
|
|
@@ -1027,6 +1064,7 @@ typesCommand
|
|
|
1027
1064
|
.option("--env <label>", "Optional deployment label for compatibility")
|
|
1028
1065
|
.option("--tenant-key <key>", "Workspace scope key from object-types.ts (current option name)")
|
|
1029
1066
|
.option("--tenant-id <id>", "Override the resolved workspace ID (use with --tenant-key)")
|
|
1067
|
+
.option("--app-tenant-id <id>", "Parent tenant that owns this app enrollment; --tenant-id remains the runtime child")
|
|
1030
1068
|
.option("--dry-run", "Show what would be seeded without making changes", false)
|
|
1031
1069
|
.option("--format <format>", "Output format (text|json)", "text")
|
|
1032
1070
|
.option("--json", "Output raw JSON (deprecated, use --format json)", false)
|
|
@@ -1036,6 +1074,7 @@ Examples:
|
|
|
1036
1074
|
$ eai types seed --dry-run
|
|
1037
1075
|
$ eai types seed --tenant-key trial-portal
|
|
1038
1076
|
$ eai types seed --tenant-key template --tenant-id 00000000-0000-4000-8000-000000000000
|
|
1077
|
+
$ eai types seed --tenant-key template --tenant-id <runtime-child-id> --app-tenant-id <parent-id>
|
|
1039
1078
|
$ eai types seed --format json | jq
|
|
1040
1079
|
`)
|
|
1041
1080
|
.action(async (options) => {
|
|
@@ -1043,6 +1082,9 @@ Examples:
|
|
|
1043
1082
|
if (options.json) {
|
|
1044
1083
|
options.format = "json";
|
|
1045
1084
|
}
|
|
1085
|
+
if (options.appTenantId && (!options.tenantId || !options.tenantKey)) {
|
|
1086
|
+
exitWithError(ErrorCode.E303, { field: "--app-tenant-id requires --tenant-id and --tenant-key" }, options.format);
|
|
1087
|
+
}
|
|
1046
1088
|
const ctx = await resolveCommandContext({ tenantId: options.tenantId });
|
|
1047
1089
|
const { root, publicApiUrl, activeTenant: activeContextTenant } = ctx;
|
|
1048
1090
|
// Wrap in shape expected by downstream helpers
|
|
@@ -1173,14 +1215,15 @@ Examples:
|
|
|
1173
1215
|
continue;
|
|
1174
1216
|
}
|
|
1175
1217
|
const client = new PlatformAPIClient(publicApiUrl, tenantId);
|
|
1218
|
+
const appClient = options.appTenantId
|
|
1219
|
+
? new PlatformAPIClient(publicApiUrl, options.appTenantId)
|
|
1220
|
+
: client;
|
|
1176
1221
|
let created = 0, updated = 0, failed = 0;
|
|
1177
1222
|
let remoteDocs = [];
|
|
1178
1223
|
let appManifestFallbackReason;
|
|
1179
1224
|
try {
|
|
1180
|
-
const appPublishOutcome = await
|
|
1225
|
+
const appPublishOutcome = await publishAppObjectTypesForRuntime(appClient, client, tenantKey, options.appTenantId ?? tenantId, tenantId, types);
|
|
1181
1226
|
if (appPublishOutcome.result) {
|
|
1182
|
-
appPublishOutcome.result.resourceApiSchemaSync =
|
|
1183
|
-
await waitForResourceApiSchemaVisibility(client, tenantId, types.map((type) => type.name), appPublishOutcome.result.resourceApiSchemaSync);
|
|
1184
1227
|
if (options.format !== "json") {
|
|
1185
1228
|
out.success("Published via app object-type manifest");
|
|
1186
1229
|
out.info(`Result: ${chalk.green(`${appPublishOutcome.result.created} created`)}, ${chalk.cyan(`${appPublishOutcome.result.updated} updated`)}, ${chalk.red(`${appPublishOutcome.result.failed} failed`)}`);
|