@proappstore/cli 2.6.30 → 2.6.32
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/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +4 -54
- package/dist/publish.js.map +1 -1
- package/dist/publish.test.d.ts +2 -0
- package/dist/publish.test.d.ts.map +1 -0
- package/dist/publish.test.js +61 -0
- package/dist/publish.test.js.map +1 -0
- package/package.json +1 -1
package/dist/publish.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkCD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiJpE"}
|
package/dist/publish.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { execFileSync } from 'node:child_process';
|
|
2
1
|
import { resolve } from 'node:path';
|
|
3
2
|
import { resolveToken } from './lib/config.js';
|
|
4
3
|
import { readJsonIfExists } from './lib/json-file.js';
|
|
@@ -122,8 +121,10 @@ export async function publishApp(opts) {
|
|
|
122
121
|
const toolsRes = await fetch(`${PAS_API}/v1/apps/${appId}/tools`, {
|
|
123
122
|
method: 'PUT',
|
|
124
123
|
headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },
|
|
125
|
-
//
|
|
126
|
-
|
|
124
|
+
// Every site-manifest key (page_meta, sitemap, operator, operator_view, visibility, worker, …)
|
|
125
|
+
// registers with the tools and is replaced with them. Forward the whole manifest so a key added
|
|
126
|
+
// later cannot be dropped here and silently wiped on the next publish (#254); the API picks the keys it knows.
|
|
127
|
+
body: JSON.stringify({ ...mcpManifest, tools: manifestTools }),
|
|
127
128
|
});
|
|
128
129
|
if (toolsRes.ok) {
|
|
129
130
|
const toolsData = (await toolsRes.json());
|
|
@@ -150,8 +151,6 @@ export async function publishApp(opts) {
|
|
|
150
151
|
}
|
|
151
152
|
}
|
|
152
153
|
if (data.success) {
|
|
153
|
-
// Set R2 deploy secrets on external-org repos
|
|
154
|
-
await ensureDeploySecrets(appId, token);
|
|
155
154
|
process.stdout.write(`\n Published. Push your code to deploy:\n`);
|
|
156
155
|
process.stdout.write(` git push origin main\n\n`);
|
|
157
156
|
process.stdout.write(` Live URL: https://${appId}.proappstore.online\n`);
|
|
@@ -164,53 +163,4 @@ export async function publishApp(opts) {
|
|
|
164
163
|
process.exit(1);
|
|
165
164
|
}
|
|
166
165
|
}
|
|
167
|
-
/**
|
|
168
|
-
* Ensure an app repo has its R2 deploy secrets.
|
|
169
|
-
* proappstore-online app repos are PRIVATE on the free org plan and CANNOT inherit
|
|
170
|
-
* org-level secrets, so they need R2_* as REPO-level secrets. Trigger the reconcile
|
|
171
|
-
* workflow (runs in the public platform repo, reads the org R2 secrets, fans them
|
|
172
|
-
* out repo-level) rather than assuming inheritance. External-org repos can't use our
|
|
173
|
-
* org secrets at all, so we print manual instructions.
|
|
174
|
-
*/
|
|
175
|
-
async function ensureDeploySecrets(appId, _token) {
|
|
176
|
-
let remoteUrl;
|
|
177
|
-
try {
|
|
178
|
-
remoteUrl = execFileSync('git', ['remote', 'get-url', 'origin'], { encoding: 'utf8' }).trim();
|
|
179
|
-
}
|
|
180
|
-
catch {
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
const match = remoteUrl.match(/github\.com[/:]([^/]+)\/([^/.]+)/);
|
|
184
|
-
if (!match)
|
|
185
|
-
return;
|
|
186
|
-
const [, owner] = match;
|
|
187
|
-
if (owner === 'proappstore-online') {
|
|
188
|
-
// Private-repo-on-free ⇒ no org inheritance. Dispatch the reconcile workflow to
|
|
189
|
-
// set R2_* repo-level (idempotent; the hourly cron also catches it).
|
|
190
|
-
try {
|
|
191
|
-
execFileSync('gh', ['workflow', 'run', 'reconcile-app-secrets.yml', '-R', 'proappstore-online/platform', '-f', `repo=${appId}`], { stdio: 'pipe' });
|
|
192
|
-
process.stdout.write(` [+] R2 deploy secrets: reconcile dispatched for ${appId}\n`);
|
|
193
|
-
}
|
|
194
|
-
catch {
|
|
195
|
-
process.stdout.write(` [!] Could not dispatch secret reconcile (hourly cron will catch it, or run it manually)\n`);
|
|
196
|
-
}
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
// External repo — check if R2 secrets are set
|
|
200
|
-
const fullRepo = `${owner}/${match[2]}`;
|
|
201
|
-
try {
|
|
202
|
-
execFileSync('gh', ['--version'], { stdio: 'pipe' });
|
|
203
|
-
const secrets = execFileSync('gh', ['secret', 'list', '-R', fullRepo], { encoding: 'utf8', stdio: 'pipe' });
|
|
204
|
-
if (secrets.includes('R2_ACCESS_KEY_ID'))
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
catch {
|
|
208
|
-
// gh not available or can't list secrets
|
|
209
|
-
}
|
|
210
|
-
process.stdout.write(`\n Your repo is outside the proappstore-online org.\n`);
|
|
211
|
-
process.stdout.write(` Set these GitHub Actions secrets on ${fullRepo}:\n`);
|
|
212
|
-
process.stdout.write(` R2_ACCESS_KEY_ID (from CF Dashboard → R2 → API Tokens)\n`);
|
|
213
|
-
process.stdout.write(` R2_SECRET_ACCESS_KEY\n`);
|
|
214
|
-
process.stdout.write(` R2_ACCOUNT_ID\n\n`);
|
|
215
|
-
}
|
|
216
166
|
//# sourceMappingURL=publish.js.map
|
package/dist/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.test.d.ts","sourceRoot":"","sources":["../src/publish.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
5
|
+
import { publishApp } from './publish.js';
|
|
6
|
+
// #254: every site-manifest key in mcp.json reaches the tools registration on
|
|
7
|
+
// `pas publish`. Registration REPLACES site state, so a key this command
|
|
8
|
+
// forgot to forward would be wiped on every publish (the trap PR #271 hit for
|
|
9
|
+
// `visibility`). The command now forwards the whole manifest.
|
|
10
|
+
const MANIFEST = {
|
|
11
|
+
tools: [{ name: 'upsert_repo', description: 'x', operation: 'execute', sql: 'INSERT INTO r (id) VALUES (:id)', params: {}, callers: ['worker'] }],
|
|
12
|
+
page_meta: [{ path: '/r/:id', action: 'get_repo', param: 'id' }],
|
|
13
|
+
sitemap: { action: 'list_repos' },
|
|
14
|
+
operator: { prefix: '/admin', role: 'operator' },
|
|
15
|
+
operator_view: { version: 1, resources: [], actions: [] },
|
|
16
|
+
visibility: { mode: 'private', roles: ['viewer'] },
|
|
17
|
+
worker: { secrets: ['GITHUB_TOKEN'] },
|
|
18
|
+
};
|
|
19
|
+
let dir;
|
|
20
|
+
let cwd;
|
|
21
|
+
let registered;
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
cwd = process.cwd();
|
|
24
|
+
dir = mkdtempSync(join(tmpdir(), 'pas-publish-'));
|
|
25
|
+
writeFileSync(join(dir, 'package.json'), JSON.stringify({ name: 'repos' }));
|
|
26
|
+
writeFileSync(join(dir, 'mcp.json'), JSON.stringify(MANIFEST));
|
|
27
|
+
process.chdir(dir);
|
|
28
|
+
registered = [];
|
|
29
|
+
vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
30
|
+
vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
31
|
+
vi.spyOn(process, 'exit').mockImplementation(((code) => { throw new Error(`exit ${code}`); }));
|
|
32
|
+
vi.stubGlobal('fetch', vi.fn(async (url, init) => {
|
|
33
|
+
if (url.endsWith('/v1/provision'))
|
|
34
|
+
return Response.json({ appId: 'repos', steps: [], dataWorkerUrl: '', appUrl: '', success: true });
|
|
35
|
+
if (url.endsWith('/v1/apps/repos/tools')) {
|
|
36
|
+
registered.push(JSON.parse(String(init.body)));
|
|
37
|
+
return Response.json({ registered: 1 });
|
|
38
|
+
}
|
|
39
|
+
throw new Error(`unexpected fetch ${url}`);
|
|
40
|
+
}));
|
|
41
|
+
});
|
|
42
|
+
afterEach(() => {
|
|
43
|
+
process.chdir(cwd);
|
|
44
|
+
rmSync(dir, { recursive: true, force: true });
|
|
45
|
+
vi.restoreAllMocks();
|
|
46
|
+
vi.unstubAllGlobals();
|
|
47
|
+
});
|
|
48
|
+
describe('pas publish forwards the whole manifest (#254)', () => {
|
|
49
|
+
it('registers every site key, worker included', async () => {
|
|
50
|
+
await publishApp({ token: 'tok' });
|
|
51
|
+
expect(registered).toHaveLength(1);
|
|
52
|
+
expect(registered[0]).toEqual(MANIFEST);
|
|
53
|
+
});
|
|
54
|
+
it('a second publish with no changes sends the same body (nothing dropped)', async () => {
|
|
55
|
+
await publishApp({ token: 'tok' });
|
|
56
|
+
await publishApp({ token: 'tok' });
|
|
57
|
+
expect(registered[1]).toEqual(registered[0]);
|
|
58
|
+
expect(registered[1].worker).toEqual({ secrets: ['GITHUB_TOKEN'] });
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=publish.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.test.js","sourceRoot":"","sources":["../src/publish.test.ts"],"names":[],"mappings":"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"}
|