ai-spector 0.8.71 → 0.8.72
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/core/operations/prototype.d.ts.map +1 -1
- package/dist/core/operations/prototype.js +0 -5
- package/dist/core/operations/prototype.js.map +1 -1
- package/package.json +1 -1
- package/scaffold/claude/.claude/skills/ai-spector-generate-prototype/references/runbook.md +1 -1
- package/scaffold/cursor/skills/ai-spector-generate-prototype/references/runbook.md +1 -1
- package/scaffold/prototype/README.md +3 -3
- package/scaffold/prototype/deploy/external-prototype-map.md +0 -225
- package/scaffold/prototype/deploy/nginx-poc.conf +0 -114
- package/scaffold/prototype/deploy/path-map.example-flat.json +0 -12
- package/scaffold/prototype/deploy/url-mapping-handover.md +0 -434
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prototype.d.ts","sourceRoot":"","sources":["../../../src/core/operations/prototype.ts"],"names":[],"mappings":"AA4FA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBzF;AAYD,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWlF;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BrF;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"prototype.d.ts","sourceRoot":"","sources":["../../../src/core/operations/prototype.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,11 +136,6 @@ export async function runPrototypeSetup(opts = {}) {
|
|
|
136
136
|
await copyTree(src, dest);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
const deployScaffold = join(scaffoldProto, "deploy");
|
|
140
|
-
const deployDest = join(prototypeRoot, "deploy");
|
|
141
|
-
if (await pathExists(deployScaffold) && !(await pathExists(deployDest))) {
|
|
142
|
-
await copyTree(deployScaffold, deployDest);
|
|
143
|
-
}
|
|
144
139
|
}
|
|
145
140
|
const designPath = join(prototypeRoot, "DESIGN.md");
|
|
146
141
|
if (opts.forceDesign || !(await pathExists(designPath))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prototype.js","sourceRoot":"","sources":["../../../src/core/operations/prototype.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prototype.js","sourceRoot":"","sources":["../../../src/core/operations/prototype.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -338,7 +338,7 @@ npx ai-spector prototype map --strict
|
|
|
338
338
|
|
|
339
339
|
7. User can edit `path-map.json` and re-run `prototype map` to refresh `screen-map.json`.
|
|
340
340
|
|
|
341
|
-
Full runbook: [
|
|
341
|
+
Full runbook: [docs/prototype/external-prototype-map.md](../../../../docs/prototype/external-prototype-map.md).
|
|
342
342
|
|
|
343
343
|
## Theme selection
|
|
344
344
|
|
|
@@ -338,7 +338,7 @@ npx ai-spector prototype map --strict
|
|
|
338
338
|
|
|
339
339
|
7. User can edit `path-map.json` and re-run `prototype map` to refresh `screen-map.json`.
|
|
340
340
|
|
|
341
|
-
Full runbook: [
|
|
341
|
+
Full runbook: [docs/prototype/external-prototype-map.md](../../../../docs/prototype/external-prototype-map.md).
|
|
342
342
|
|
|
343
343
|
## Theme selection
|
|
344
344
|
|
|
@@ -79,9 +79,9 @@ Top-level **`defaultScreen`** is the landing entry (same shape). Web team uses `
|
|
|
79
79
|
|
|
80
80
|
Static HTML uses a deploy-relative file path (e.g. `src/login.html`). Route patterns and param defaults live in `route-defaults.json`.
|
|
81
81
|
|
|
82
|
-
**Already hosted elsewhere:** fill `prototype/path-map.json` with server paths, confirm with user, then `npx ai-spector prototype map` — see [external-prototype-map.md](
|
|
82
|
+
**Already hosted elsewhere:** fill `prototype/path-map.json` with server paths, confirm with user, then `npx ai-spector prototype map` — see [external-prototype-map.md](https://github.com/milky-way-66/ai-spector/blob/main/docs/prototype/external-prototype-map.md).
|
|
83
83
|
|
|
84
|
-
**Web team:** [url-mapping-handover.md](
|
|
84
|
+
**Web team:** [url-mapping-handover.md](https://github.com/milky-way-66/ai-spector/blob/main/docs/prototype/url-mapping-handover.md) · [nginx-poc.conf](https://github.com/milky-way-66/ai-spector/blob/main/docs/prototype/nginx-poc.conf)
|
|
85
85
|
|
|
86
86
|
### Review URL (web team)
|
|
87
87
|
|
|
@@ -95,4 +95,4 @@ If `reviewUrl` is missing, build:
|
|
|
95
95
|
|
|
96
96
|
`projectId` and `deployVersion` are optional. Example flat URL: `https://poc.dev.kaopiz.com/login`.
|
|
97
97
|
|
|
98
|
-
Full implementation guide: [url-mapping-handover.md](
|
|
98
|
+
Full implementation guide: [url-mapping-handover.md](https://github.com/milky-way-66/ai-spector/blob/main/docs/prototype/url-mapping-handover.md)
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
# External / hosted prototype — mapping workflow
|
|
2
|
-
|
|
3
|
-
Use when the prototype **already runs on the server** (another repo, legacy build, or pre-existing deploy) and the web team only needs **`prototype/screen-map.json`**.
|
|
4
|
-
|
|
5
|
-
No HTML generation, no `prototype sync`, no files in this repo required.
|
|
6
|
-
|
|
7
|
-
**Web team implementation:** [url-mapping-handover.md](./url-mapping-handover.md)
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## When to use
|
|
12
|
-
|
|
13
|
-
| Situation | Use |
|
|
14
|
-
|-----------|-----|
|
|
15
|
-
| Prototype built elsewhere, hosted at poc.dev.kaopiz.com | **This workflow** |
|
|
16
|
-
| Prototype generated in-repo under `prototype/src` or `prototype/dist` | `npx ai-spector prototype manifest` |
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Files
|
|
21
|
-
|
|
22
|
-
| File | Role |
|
|
23
|
-
|------|------|
|
|
24
|
-
| `docs/basic-design/list-screens.md` | Screen Index — `screenId`, `displayName`, design doc links |
|
|
25
|
-
| `prototype/path-map.json` | **Ops fills in** — deploy path per screen (input) |
|
|
26
|
-
| `prototype/screen-map.json` | **Output for web team** — generated by CLI |
|
|
27
|
-
|
|
28
|
-
Only `screen-map.json` is required for the web UI. `path-map.json` is the editable source when paths change.
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Agent workflow (confirm before write)
|
|
33
|
-
|
|
34
|
-
### 1. Gather inputs
|
|
35
|
-
|
|
36
|
-
Ask the user:
|
|
37
|
-
|
|
38
|
-
1. **buildMode** — `static` (one HTML file per screen) or `spa` (single app, routes under `dist/…`)
|
|
39
|
-
2. **URL layout** — which segments apply?
|
|
40
|
-
- `reviewHost` (required for constructed URLs), e.g. `https://poc.dev.kaopiz.com`
|
|
41
|
-
- `projectId` (optional), e.g. `acme-crm`
|
|
42
|
-
- `deployVersion` (optional), e.g. `1.4`
|
|
43
|
-
- Or **`directReviewUrl: true`** when each screen is a full URL on another host
|
|
44
|
-
3. **Hosted paths** — for each Screen Index row:
|
|
45
|
-
- POC path segment(s), e.g. `dist/login` or `login` (flat deploy)
|
|
46
|
-
- Or full URL when `directReviewUrl: true`
|
|
47
|
-
|
|
48
|
-
Examples:
|
|
49
|
-
|
|
50
|
-
| Screen | User says | `directReviewUrl` | Example `reviewUrl` |
|
|
51
|
-
|--------|-----------|-------------------|---------------------|
|
|
52
|
-
| Login on POC (versioned) | `dist/login` | `false` | `https://poc.dev.kaopiz.com/acme-crm/1.4/dist/login` |
|
|
53
|
-
| Login on POC (flat) | `login` | `false` | `https://poc.dev.kaopiz.com/login` |
|
|
54
|
-
| Login on legacy server | `https://legacy.example.com/app/login` | `true` | same as `prototypePath` |
|
|
55
|
-
| Order detail on POC | `dist/orders/demo-001` | `false` | `…/dist/orders/demo-001` |
|
|
56
|
-
|
|
57
|
-
Paths must match [nginx deploy layout](./nginx-poc.conf) when using the versioned POC — see [url-mapping-handover.md](./url-mapping-handover.md).
|
|
58
|
-
|
|
59
|
-
### 2. Draft `path-map.json`
|
|
60
|
-
|
|
61
|
-
**Versioned POC:**
|
|
62
|
-
|
|
63
|
-
```json
|
|
64
|
-
{
|
|
65
|
-
"schemaVersion": 1,
|
|
66
|
-
"buildMode": "spa",
|
|
67
|
-
"hosted": true,
|
|
68
|
-
"reviewHost": "https://poc.dev.kaopiz.com",
|
|
69
|
-
"projectId": "acme-crm",
|
|
70
|
-
"deployVersion": "1.4",
|
|
71
|
-
"defaultScreenId": "login",
|
|
72
|
-
"prototypeBypassAuth": true,
|
|
73
|
-
"buildDest": "dist",
|
|
74
|
-
"screens": {
|
|
75
|
-
"login": { "prototypePath": "dist/login" },
|
|
76
|
-
"order-detail": { "prototypePath": "dist/orders/demo-001" }
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Flat POC (no project / version):**
|
|
82
|
-
|
|
83
|
-
```json
|
|
84
|
-
{
|
|
85
|
-
"schemaVersion": 1,
|
|
86
|
-
"buildMode": "spa",
|
|
87
|
-
"hosted": true,
|
|
88
|
-
"reviewHost": "https://poc.dev.kaopiz.com",
|
|
89
|
-
"defaultScreenId": "login",
|
|
90
|
-
"screens": {
|
|
91
|
-
"login": { "prototypePath": "login" }
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
| Field | Notes |
|
|
97
|
-
|-------|-------|
|
|
98
|
-
| `hosted: true` | Sets `route_exists: true` (prototype live on server, not verified locally) |
|
|
99
|
-
| `screens` keys | Must match Screen Index `screenId` (e.g. `order-detail`) |
|
|
100
|
-
| `prototypePath` | No leading slash; no trailing slash on SPA routes |
|
|
101
|
-
| `projectId`, `deployVersion` | Optional — omit when URLs have no those segments |
|
|
102
|
-
|
|
103
|
-
Copy from `prototype/path-map.example.json` (versioned) or `path-map.example-flat.json` (no project/version) if missing.
|
|
104
|
-
|
|
105
|
-
**Direct URL mode** — prototype on another host:
|
|
106
|
-
|
|
107
|
-
```json
|
|
108
|
-
{
|
|
109
|
-
"schemaVersion": 1,
|
|
110
|
-
"hosted": true,
|
|
111
|
-
"directReviewUrl": true,
|
|
112
|
-
"defaultScreenId": "login",
|
|
113
|
-
"screens": {
|
|
114
|
-
"login": { "prototypePath": "https://legacy.example.com/prototypes/login" }
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Each screen's `reviewUrl` will equal `prototypePath` exactly.
|
|
120
|
-
|
|
121
|
-
### 3. Preview mapping table
|
|
122
|
-
|
|
123
|
-
Show the user a confirmation table **before writing**:
|
|
124
|
-
|
|
125
|
-
| screenId | displayName | prototypePath | reviewUrl |
|
|
126
|
-
|----------|-------------|---------------|-----------|
|
|
127
|
-
| login | Login | dist/login | `https://poc.dev.kaopiz.com/acme-crm/1.4/dist/login` |
|
|
128
|
-
| login (flat) | Login | login | `https://poc.dev.kaopiz.com/login` |
|
|
129
|
-
|
|
130
|
-
Run dry-run:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npx ai-spector prototype map --dry-run
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Optional CLI overrides:
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
npx ai-spector prototype map --dry-run \
|
|
140
|
-
--review-host https://poc.dev.kaopiz.com \
|
|
141
|
-
--project acme-crm \
|
|
142
|
-
--version 1.4
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
(`--project` and `--version` are optional.)
|
|
146
|
-
|
|
147
|
-
### 4. User confirms → write
|
|
148
|
-
|
|
149
|
-
On explicit **yes**:
|
|
150
|
-
|
|
151
|
-
1. Write `prototype/path-map.json` (if not already saved)
|
|
152
|
-
2. Generate screen-map:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
npx ai-spector prototype map --strict
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
`--strict` requires every Screen Index row to have a `prototypePath`.
|
|
159
|
-
|
|
160
|
-
### 5. User corrections
|
|
161
|
-
|
|
162
|
-
User edits `prototype/path-map.json` (change paths, add screens), then:
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
npx ai-spector prototype map
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Regenerates `screen-map.json` only — does not touch hosted files on the server.
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## Static vs SPA path examples
|
|
173
|
-
|
|
174
|
-
| buildMode | projectId | deployVersion | prototypePath | Full URL |
|
|
175
|
-
|-----------|-----------|---------------|---------------|----------|
|
|
176
|
-
| static | acme-crm | 1.4 | `src/login.html` | `…/acme-crm/1.4/src/login.html` |
|
|
177
|
-
| static | — | — | `src/home.html` | `…/src/home.html` |
|
|
178
|
-
| spa | acme-crm | 1.4 | `dist/login` | `…/acme-crm/1.4/dist/login` |
|
|
179
|
-
| spa | — | — | `login` | `…/login` |
|
|
180
|
-
|
|
181
|
-
Static assets (`src/assets/…`, `dist/assets/…`) are **not** listed in the map — only **screen entry URLs**.
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Optional: per-screen `route_exists`
|
|
186
|
-
|
|
187
|
-
Default with `hosted: true` is `route_exists: true` for all mapped screens.
|
|
188
|
-
|
|
189
|
-
Override when a screen is not deployed yet:
|
|
190
|
-
|
|
191
|
-
```json
|
|
192
|
-
"checkout": {
|
|
193
|
-
"prototypePath": "dist/checkout",
|
|
194
|
-
"route_exists": false
|
|
195
|
-
}
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Web UI shows “pending” for that row ([handover doc](./url-mapping-handover.md)).
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## Checklist
|
|
203
|
-
|
|
204
|
-
- [ ] Screen Index exists (`list-screens.md`)
|
|
205
|
-
- [ ] User provided deploy path per screen (or confirmed skip)
|
|
206
|
-
- [ ] URL layout confirmed (`reviewHost` + optional `projectId` / `deployVersion`, or `directReviewUrl`)
|
|
207
|
-
- [ ] `path-map.json` drafted with `hosted: true` when prototype is on server
|
|
208
|
-
- [ ] Confirmation table shown; user said yes
|
|
209
|
-
- [ ] `npx ai-spector prototype map --strict` succeeded
|
|
210
|
-
- [ ] Hand off `screen-map.json` to web team ([url-mapping-handover.md](./url-mapping-handover.md))
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## CLI reference
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
npx ai-spector prototype map --dry-run # preview JSON, no write
|
|
218
|
-
npx ai-spector prototype map --strict # write screen-map.json; all rows required
|
|
219
|
-
npx ai-spector prototype map --from other/path-map.json
|
|
220
|
-
npx ai-spector prototype map --json # JSON output + write
|
|
221
|
-
npx ai-spector prototype map --review-host URL # override host
|
|
222
|
-
npx ai-spector prototype map --project SLUG # optional projectId
|
|
223
|
-
npx ai-spector prototype map --version SLUG # optional deployVersion
|
|
224
|
-
npx ai-spector prototype map --direct-review-url # directReviewUrl mode
|
|
225
|
-
```
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# Prototype hosting — nginx config (poc.dev.kaopiz.com)
|
|
2
|
-
|
|
3
|
-
# Deploy layout on disk (per project version):
|
|
4
|
-
# /var/www/{project}/{version}/current/
|
|
5
|
-
# src/ ← static HTML (buildMode: static)
|
|
6
|
-
# login.html
|
|
7
|
-
# assets/…
|
|
8
|
-
# dist/ ← SPA build (buildMode: spa)
|
|
9
|
-
# index.html
|
|
10
|
-
# assets/…
|
|
11
|
-
#
|
|
12
|
-
# Public URL pattern (versioned layout):
|
|
13
|
-
# https://poc.dev.kaopiz.com/{project}/{version}/{prototypePath}
|
|
14
|
-
#
|
|
15
|
-
# Flat layout (no project/version) is also valid — see reviewUrl in screen-map.json.
|
|
16
|
-
#
|
|
17
|
-
# prototypePath comes from prototype/screen-map.json (see url-mapping-handover.md).
|
|
18
|
-
|
|
19
|
-
server {
|
|
20
|
-
server_name poc.dev.kaopiz.com;
|
|
21
|
-
|
|
22
|
-
# Version root — prefer SPA entry, then static index, then repo root index
|
|
23
|
-
location ~ ^/(?<project>[^/]+)/(?<version>[^/]+)/$ {
|
|
24
|
-
auth_basic "Restricted";
|
|
25
|
-
auth_basic_user_file /etc/nginx/htpasswd/${project}_${version};
|
|
26
|
-
|
|
27
|
-
root /var/www;
|
|
28
|
-
try_files /$project/$version/current/dist/index.html
|
|
29
|
-
/$project/$version/current/src/index.html
|
|
30
|
-
/$project/$version/current/index.html =404;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
location = / {
|
|
34
|
-
root /var/www;
|
|
35
|
-
try_files $uri $uri/ /index.html;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
location ~ ^/(index\.html|favicon\.ico|robots\.txt)$ {
|
|
39
|
-
root /var/www;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
# SPA hashed assets under /assets/ (Vite default)
|
|
43
|
-
location ~ ^/(?<project>[^/]+)/(?<version>[^/]+)/assets/(?<asset>.+\.(?:js|css|mjs|map|woff2?|ttf|eot|svg|png|jpe?g|gif|ico|webp))$ {
|
|
44
|
-
auth_basic "Restricted";
|
|
45
|
-
auth_basic_user_file /etc/nginx/htpasswd/${project}_${version};
|
|
46
|
-
root /var/www;
|
|
47
|
-
try_files /$project/$version/current/dist/assets/$asset
|
|
48
|
-
/$project/$version/current/out/assets/$asset =404;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
# SPA bundle assets (dist|out/…/file.ext or dist|out/assets/file.ext)
|
|
52
|
-
location ~ ^/(?<project>[^/]+)/(?<version>[^/]+)/(?<bundle>dist|out)/(?:[^/]+/)*(?<asset>.+\.(?:js|css|mjs|map|woff2?|ttf|eot|svg|png|jpe?g|gif|ico|webp))$ {
|
|
53
|
-
auth_basic "Restricted";
|
|
54
|
-
auth_basic_user_file /etc/nginx/htpasswd/${project}_${version};
|
|
55
|
-
root /var/www;
|
|
56
|
-
try_files /$project/$version/current/$bundle/$asset
|
|
57
|
-
/$project/$version/current/$bundle/assets/$asset =404;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
# SPA client routes — any path under dist|out falls back to index.html
|
|
61
|
-
location ~ ^/(?<project>[^/]+)/(?<version>[^/]+)/(?<bundle>dist|out)/?(?<route>.*?)/?$ {
|
|
62
|
-
auth_basic "Restricted";
|
|
63
|
-
auth_basic_user_file /etc/nginx/htpasswd/${project}_${version};
|
|
64
|
-
root /var/www;
|
|
65
|
-
try_files /$project/$version/current/$bundle/index.html =404;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
# Static HTML pages (explicit .html under src/)
|
|
69
|
-
location ~ ^/(?<project>[^/]+)/(?<version>[^/]+)/src/(?<page>.+\.html)$ {
|
|
70
|
-
auth_basic "Restricted";
|
|
71
|
-
auth_basic_user_file /etc/nginx/htpasswd/${project}_${version};
|
|
72
|
-
root /var/www;
|
|
73
|
-
try_files /$project/$version/current/src/$page =404;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
# Static assets co-located with HTML (src/assets/, src/*.css, etc.)
|
|
77
|
-
location ~ ^/(?<project>[^/]+)/(?<version>[^/]+)/src/(?<asset>.+)$ {
|
|
78
|
-
auth_basic "Restricted";
|
|
79
|
-
auth_basic_user_file /etc/nginx/htpasswd/${project}_${version};
|
|
80
|
-
root /var/www;
|
|
81
|
-
try_files /$project/$version/current/src/$asset =404;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
# Catch-all files under project version (fallback)
|
|
85
|
-
location ~ ^/(?<project>[^/]+)/(?<version>[^/]+)(?<rest>/.*)?$ {
|
|
86
|
-
auth_basic "Restricted";
|
|
87
|
-
auth_basic_user_file /etc/nginx/htpasswd/${project}_${version};
|
|
88
|
-
root /var/www;
|
|
89
|
-
try_files /$project/$version/current$rest =404;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
listen 443 ssl;
|
|
93
|
-
ssl_certificate /etc/letsencrypt/live/poc.dev.kaopiz.com/fullchain.pem;
|
|
94
|
-
ssl_certificate_key /etc/letsencrypt/live/poc.dev.kaopiz.com/privkey.pem;
|
|
95
|
-
include /etc/letsencrypt/options-ssl-nginx.conf;
|
|
96
|
-
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
server {
|
|
100
|
-
if ($host = poc.dev.kaopiz.com) {
|
|
101
|
-
return 301 https://$host$request_uri;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
listen 80;
|
|
105
|
-
server_name poc.dev.kaopiz.com;
|
|
106
|
-
|
|
107
|
-
location /.well-known/acme-challenge/ {
|
|
108
|
-
root /var/www/certbot;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
location / {
|
|
112
|
-
return 301 https://$host$request_uri;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
@@ -1,434 +0,0 @@
|
|
|
1
|
-
# Prototype URL mapping — Web handover
|
|
2
|
-
|
|
3
|
-
> **Audience:** Web team building the prototype browser / screen picker (e.g. on poc.dev.kaopiz.com).
|
|
4
|
-
> **Input:** One JSON file — `prototype/screen-map.json` (from the project repo or release bundle).
|
|
5
|
-
> **Output:** A list of screens; each row links to a prototype URL.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Quick start
|
|
10
|
-
|
|
11
|
-
1. **Load** `screen-map.json` at build time or runtime (it is not served as a public static file — ship it with your app or fetch from your backend).
|
|
12
|
-
2. **Iterate** `screens[]`.
|
|
13
|
-
3. **Link** each row using `reviewUrl` when present (recommended). Otherwise build the URL from top-level fields (section 2).
|
|
14
|
-
4. **Label** with `displayName`.
|
|
15
|
-
5. **Disable or badge** rows where `route_exists === false` (“Prototype not ready”).
|
|
16
|
-
6. **Default / landing screen:** use top-level **`defaultScreen`** — open `defaultScreen.reviewUrl` (or resolve href from `defaultScreen` like any row). `defaultScreenId` is the same screen’s id for reference.
|
|
17
|
-
|
|
18
|
-
You do **not** need `path-map.json`, `manifest.json`, or nginx config to build the UI — only `screen-map.json`.
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 1. Resolve the link (implementation)
|
|
23
|
-
|
|
24
|
-
Use this logic for every screen row:
|
|
25
|
-
|
|
26
|
-
```typescript
|
|
27
|
-
interface ScreenMap {
|
|
28
|
-
reviewHost?: string;
|
|
29
|
-
projectId?: string;
|
|
30
|
-
deployVersion?: string;
|
|
31
|
-
directReviewUrl?: boolean;
|
|
32
|
-
defaultScreenId?: string;
|
|
33
|
-
/** Landing screen — use for primary CTA / “Open prototype” button. */
|
|
34
|
-
defaultScreen?: Screen;
|
|
35
|
-
buildMode: "static" | "spa";
|
|
36
|
-
screens: Screen[];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
interface Screen {
|
|
40
|
-
screenId: string;
|
|
41
|
-
displayName: string;
|
|
42
|
-
prototypePath: string;
|
|
43
|
-
route_exists: boolean;
|
|
44
|
-
reviewUrl?: string;
|
|
45
|
-
screenDocPath?: string;
|
|
46
|
-
screenDocs?: Record<string, string>; // e.g. { en: "docs/...", vi: "..." }
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function resolvePrototypeHref(map: ScreenMap, screen: Screen): string | null {
|
|
50
|
-
// 1. Pre-built URL (always prefer this)
|
|
51
|
-
if (screen.reviewUrl?.trim()) {
|
|
52
|
-
return screen.reviewUrl.trim();
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// 2. Direct mode — prototypePath is already a full URL
|
|
56
|
-
if (map.directReviewUrl) {
|
|
57
|
-
return screen.prototypePath.trim();
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// 3. Construct from host + optional segments + path
|
|
61
|
-
const host = map.reviewHost?.trim();
|
|
62
|
-
if (!host) return null;
|
|
63
|
-
|
|
64
|
-
const base = host.replace(/\/$/, "");
|
|
65
|
-
const path = screen.prototypePath.replace(/^\//, "");
|
|
66
|
-
const segments = [map.projectId, map.deployVersion]
|
|
67
|
-
.filter((s): s is string => Boolean(s?.trim()))
|
|
68
|
-
.map((s) => encodeURIComponent(s!.trim()));
|
|
69
|
-
segments.push(path);
|
|
70
|
-
return `${base}/${segments.join("/")}`;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/** Primary prototype entry — use on landing page and “Open prototype” CTA. */
|
|
74
|
-
function resolveDefaultPrototypeHref(map: ScreenMap): string | null {
|
|
75
|
-
if (map.defaultScreen) {
|
|
76
|
-
return resolvePrototypeHref(map, map.defaultScreen);
|
|
77
|
-
}
|
|
78
|
-
if (!map.defaultScreenId) return null;
|
|
79
|
-
const screen = map.screens.find((s) => s.screenId === map.defaultScreenId);
|
|
80
|
-
return screen ? resolvePrototypeHref(map, screen) : null;
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
```javascript
|
|
85
|
-
// Same logic in plain JS
|
|
86
|
-
function resolvePrototypeHref(map, screen) {
|
|
87
|
-
if (screen.reviewUrl?.trim()) return screen.reviewUrl.trim();
|
|
88
|
-
if (map.directReviewUrl) return screen.prototypePath.trim();
|
|
89
|
-
const host = map.reviewHost?.trim();
|
|
90
|
-
if (!host) return null;
|
|
91
|
-
const base = host.replace(/\/$/, "");
|
|
92
|
-
const path = screen.prototypePath.replace(/^\//, "");
|
|
93
|
-
const segments = [map.projectId, map.deployVersion]
|
|
94
|
-
.filter(Boolean)
|
|
95
|
-
.map((s) => encodeURIComponent(String(s).trim()));
|
|
96
|
-
segments.push(path);
|
|
97
|
-
return `${base}/${segments.join("/")}`;
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### Decision table
|
|
102
|
-
|
|
103
|
-
| Condition | href source |
|
|
104
|
-
|-----------|-------------|
|
|
105
|
-
| `screen.reviewUrl` is set | Use `reviewUrl` as-is |
|
|
106
|
-
| `directReviewUrl === true` | Use `screen.prototypePath` (must be `https://…`) |
|
|
107
|
-
| `reviewHost` is set | `{reviewHost}/{projectId?}/{deployVersion?}/{prototypePath}` |
|
|
108
|
-
| None of the above | No link — show “URL not configured” or hide row |
|
|
109
|
-
|
|
110
|
-
**Important:** `projectId` and `deployVersion` are **optional**. Many deploys use flat URLs like `https://poc.dev.kaopiz.com/login` with no project or version segment.
|
|
111
|
-
|
|
112
|
-
### URL examples
|
|
113
|
-
|
|
114
|
-
| Mode | Top-level config | `prototypePath` | Result |
|
|
115
|
-
|------|------------------|-----------------|--------|
|
|
116
|
-
| Full POC path | `reviewHost` + `projectId` + `deployVersion` | `dist/login` | `https://poc.dev.kaopiz.com/acme-crm/1.4/dist/login` |
|
|
117
|
-
| Project, no version | `reviewHost` + `projectId` | `dist/login` | `https://poc.dev.kaopiz.com/acme-crm/dist/login` |
|
|
118
|
-
| Host only | `reviewHost` only | `login` | `https://poc.dev.kaopiz.com/login` |
|
|
119
|
-
| Static HTML | `reviewHost` + segments | `src/login.html` | `…/src/login.html` |
|
|
120
|
-
| External host | `directReviewUrl: true` | `https://legacy.example.com/app/login` | same as `prototypePath` |
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## 2. Build the screen picker UI
|
|
125
|
-
|
|
126
|
-
### Minimum UI
|
|
127
|
-
|
|
128
|
-
| UI element | JSON source | Notes |
|
|
129
|
-
|------------|-------------|-------|
|
|
130
|
-
| Screen name | `displayName` | Primary label |
|
|
131
|
-
| Open prototype | `resolvePrototypeHref(…)` | `<a href="…" target="_blank" rel="noopener">` |
|
|
132
|
-
| Pending state | `route_exists === false` | Disable link; show badge “Pending” |
|
|
133
|
-
| Default / home | `defaultScreen` | **Primary CTA** — use `defaultScreen.reviewUrl` or `resolvePrototypeHref(map, defaultScreen)` |
|
|
134
|
-
| Default id (reference) | `defaultScreenId` | Same as `defaultScreen.screenId` |
|
|
135
|
-
|
|
136
|
-
### Optional UI
|
|
137
|
-
|
|
138
|
-
| UI element | JSON source | Notes |
|
|
139
|
-
|------------|-------------|-------|
|
|
140
|
-
| Design doc link | `screenDocs[locale]` or `screenDocPath` | Link to spec viewer if you have one |
|
|
141
|
-
| Build type hint | `buildMode` | `"static"` = one HTML file; `"spa"` = client router |
|
|
142
|
-
| Staleness | `generatedAt` | Show “map updated …” if helpful |
|
|
143
|
-
|
|
144
|
-
### `route_exists`
|
|
145
|
-
|
|
146
|
-
| Value | Meaning for web UI |
|
|
147
|
-
|-------|-------------------|
|
|
148
|
-
| `true` | Prototype is expected to load at the href |
|
|
149
|
-
| `false` | Not deployed yet — do not treat as broken URL; show as pending |
|
|
150
|
-
|
|
151
|
-
Do **not** infer readiness from missing `reviewUrl` alone — use `route_exists`.
|
|
152
|
-
|
|
153
|
-
### `buildMode` (opening the link)
|
|
154
|
-
|
|
155
|
-
| `buildMode` | What happens when user clicks |
|
|
156
|
-
|-------------|-------------------------------|
|
|
157
|
-
| `static` | Browser loads one HTML file (path ends in `.html`) |
|
|
158
|
-
| `spa` | Browser loads SPA shell; client router shows the route (no `.html` in URL) |
|
|
159
|
-
|
|
160
|
-
Open in a **new tab** (`target="_blank"`). Basic auth is handled by the browser when nginx requires it — no extra headers from your app.
|
|
161
|
-
|
|
162
|
-
### Param routes
|
|
163
|
-
|
|
164
|
-
Some SPA screens use demo IDs in the path, e.g. `dist/orders/demo-001`. Use `reviewUrl` / `prototypePath` **exactly as given**. Do not substitute or parse route params in the web UI.
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## 3. JSON reference
|
|
169
|
-
|
|
170
|
-
**File:** `prototype/screen-map.json`
|
|
171
|
-
|
|
172
|
-
### Top-level fields
|
|
173
|
-
|
|
174
|
-
| Field | Type | Web team uses? | Description |
|
|
175
|
-
|-------|------|----------------|-------------|
|
|
176
|
-
| `schemaVersion` | `1` | Ignore if unknown | Schema version |
|
|
177
|
-
| `buildMode` | `"static"` \| `"spa"` | Optional | How prototype opens |
|
|
178
|
-
| `themeName` | string | Display only | Theme name |
|
|
179
|
-
| `generatedAt` | string (ISO) | Optional | When map was generated |
|
|
180
|
-
| `defaultScreenId` | string? | Reference | Id of landing screen; equals `defaultScreen.screenId` |
|
|
181
|
-
| **`defaultScreen`** | object? | **Yes** | **Landing screen** — full row with `reviewUrl`, `displayName`, etc. |
|
|
182
|
-
| `buildDest` | string? | Rarely | SPA output dir, usually `"dist"` |
|
|
183
|
-
| `prototypeBypassAuth` | boolean? | No | Dev/router hint only |
|
|
184
|
-
| `reviewHost` | string? | Fallback URLs | e.g. `https://poc.dev.kaopiz.com` |
|
|
185
|
-
| `projectId` | string? | Fallback URLs | Optional project slug |
|
|
186
|
-
| `deployVersion` | string? | Fallback URLs | Optional version slug |
|
|
187
|
-
| `directReviewUrl` | boolean? | **Yes** | When true, paths are full URLs |
|
|
188
|
-
| `screens` | array | **Yes** | Screen list |
|
|
189
|
-
|
|
190
|
-
### Per-screen fields (`screens[]`)
|
|
191
|
-
|
|
192
|
-
| Field | Type | Web team uses? | Description |
|
|
193
|
-
|-------|------|----------------|-------------|
|
|
194
|
-
| `screenId` | string | **Yes** | Stable id; match `defaultScreenId` |
|
|
195
|
-
| `displayName` | string | **Yes** | Label in UI |
|
|
196
|
-
| `prototypePath` | string | Fallback URLs | Deploy path or full URL (direct mode) |
|
|
197
|
-
| `route_exists` | boolean | **Yes** | `false` = pending |
|
|
198
|
-
| `reviewUrl` | string? | **Yes** | **Preferred** full href |
|
|
199
|
-
| `screenDocPath` | string | Optional | Neutral design doc path |
|
|
200
|
-
| `screenDocs` | object? | Optional | Per-locale doc paths |
|
|
201
|
-
|
|
202
|
-
Fields not listed above may appear in future schema versions — ignore unknown keys.
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## 4. Full JSON examples
|
|
207
|
-
|
|
208
|
-
### A — SPA with project + version (typical POC)
|
|
209
|
-
|
|
210
|
-
```json
|
|
211
|
-
{
|
|
212
|
-
"schemaVersion": 1,
|
|
213
|
-
"buildMode": "spa",
|
|
214
|
-
"buildDest": "dist",
|
|
215
|
-
"reviewHost": "https://poc.dev.kaopiz.com",
|
|
216
|
-
"projectId": "acme-crm",
|
|
217
|
-
"deployVersion": "1.4",
|
|
218
|
-
"defaultScreenId": "login",
|
|
219
|
-
"defaultScreen": {
|
|
220
|
-
"screenId": "login",
|
|
221
|
-
"displayName": "Login",
|
|
222
|
-
"screenDocPath": "basic-design/screens/login.md",
|
|
223
|
-
"prototypePath": "dist/login",
|
|
224
|
-
"route_exists": true,
|
|
225
|
-
"reviewUrl": "https://poc.dev.kaopiz.com/acme-crm/1.4/dist/login"
|
|
226
|
-
},
|
|
227
|
-
"generatedAt": "2026-06-16T00:00:00.000Z",
|
|
228
|
-
"screens": [
|
|
229
|
-
{
|
|
230
|
-
"screenId": "login",
|
|
231
|
-
"displayName": "Login",
|
|
232
|
-
"screenDocPath": "basic-design/screens/login.md",
|
|
233
|
-
"prototypePath": "dist/login",
|
|
234
|
-
"route_exists": true,
|
|
235
|
-
"reviewUrl": "https://poc.dev.kaopiz.com/acme-crm/1.4/dist/login"
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
"screenId": "order-detail",
|
|
239
|
-
"displayName": "Order Detail",
|
|
240
|
-
"screenDocPath": "basic-design/screens/order-detail.md",
|
|
241
|
-
"prototypePath": "dist/orders/demo-001",
|
|
242
|
-
"route_exists": true,
|
|
243
|
-
"reviewUrl": "https://poc.dev.kaopiz.com/acme-crm/1.4/dist/orders/demo-001"
|
|
244
|
-
}
|
|
245
|
-
]
|
|
246
|
-
}
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### B — Host only (no project / version)
|
|
250
|
-
|
|
251
|
-
```json
|
|
252
|
-
{
|
|
253
|
-
"schemaVersion": 1,
|
|
254
|
-
"buildMode": "spa",
|
|
255
|
-
"reviewHost": "https://poc.dev.kaopiz.com",
|
|
256
|
-
"defaultScreenId": "login",
|
|
257
|
-
"defaultScreen": {
|
|
258
|
-
"screenId": "login",
|
|
259
|
-
"displayName": "Login",
|
|
260
|
-
"screenDocPath": "basic-design/screens/login.md",
|
|
261
|
-
"prototypePath": "login",
|
|
262
|
-
"route_exists": true,
|
|
263
|
-
"reviewUrl": "https://poc.dev.kaopiz.com/login"
|
|
264
|
-
},
|
|
265
|
-
"screens": [
|
|
266
|
-
{
|
|
267
|
-
"screenId": "login",
|
|
268
|
-
"displayName": "Login",
|
|
269
|
-
"screenDocPath": "basic-design/screens/login.md",
|
|
270
|
-
"prototypePath": "login",
|
|
271
|
-
"route_exists": true,
|
|
272
|
-
"reviewUrl": "https://poc.dev.kaopiz.com/login"
|
|
273
|
-
}
|
|
274
|
-
]
|
|
275
|
-
}
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
### C — Static HTML
|
|
279
|
-
|
|
280
|
-
```json
|
|
281
|
-
{
|
|
282
|
-
"schemaVersion": 1,
|
|
283
|
-
"buildMode": "static",
|
|
284
|
-
"reviewHost": "https://poc.dev.kaopiz.com",
|
|
285
|
-
"projectId": "acme-crm",
|
|
286
|
-
"deployVersion": "1.4",
|
|
287
|
-
"defaultScreenId": "login",
|
|
288
|
-
"defaultScreen": {
|
|
289
|
-
"screenId": "login",
|
|
290
|
-
"displayName": "Login",
|
|
291
|
-
"screenDocPath": "basic-design/screens/login.md",
|
|
292
|
-
"screenDocs": {
|
|
293
|
-
"en": "docs/basic-design/en/screens/login.md",
|
|
294
|
-
"vi": "docs/basic-design/vi/screens/login.md"
|
|
295
|
-
},
|
|
296
|
-
"prototypePath": "src/login.html",
|
|
297
|
-
"route_exists": true,
|
|
298
|
-
"reviewUrl": "https://poc.dev.kaopiz.com/acme-crm/1.4/src/login.html"
|
|
299
|
-
},
|
|
300
|
-
"screens": [
|
|
301
|
-
{
|
|
302
|
-
"screenId": "login",
|
|
303
|
-
"displayName": "Login",
|
|
304
|
-
"screenDocPath": "basic-design/screens/login.md",
|
|
305
|
-
"screenDocs": {
|
|
306
|
-
"en": "docs/basic-design/en/screens/login.md",
|
|
307
|
-
"vi": "docs/basic-design/vi/screens/login.md"
|
|
308
|
-
},
|
|
309
|
-
"prototypePath": "src/login.html",
|
|
310
|
-
"route_exists": true,
|
|
311
|
-
"reviewUrl": "https://poc.dev.kaopiz.com/acme-crm/1.4/src/login.html"
|
|
312
|
-
}
|
|
313
|
-
]
|
|
314
|
-
}
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### D — External host (`directReviewUrl`)
|
|
318
|
-
|
|
319
|
-
```json
|
|
320
|
-
{
|
|
321
|
-
"schemaVersion": 1,
|
|
322
|
-
"buildMode": "spa",
|
|
323
|
-
"directReviewUrl": true,
|
|
324
|
-
"defaultScreenId": "login",
|
|
325
|
-
"defaultScreen": {
|
|
326
|
-
"screenId": "login",
|
|
327
|
-
"displayName": "Login",
|
|
328
|
-
"screenDocPath": "basic-design/screens/login.md",
|
|
329
|
-
"prototypePath": "https://legacy.example.com/prototypes/login",
|
|
330
|
-
"route_exists": true,
|
|
331
|
-
"reviewUrl": "https://legacy.example.com/prototypes/login"
|
|
332
|
-
},
|
|
333
|
-
"screens": [
|
|
334
|
-
{
|
|
335
|
-
"screenId": "login",
|
|
336
|
-
"displayName": "Login",
|
|
337
|
-
"screenDocPath": "basic-design/screens/login.md",
|
|
338
|
-
"prototypePath": "https://legacy.example.com/prototypes/login",
|
|
339
|
-
"route_exists": true,
|
|
340
|
-
"reviewUrl": "https://legacy.example.com/prototypes/login"
|
|
341
|
-
}
|
|
342
|
-
]
|
|
343
|
-
}
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
### E — Pending screen
|
|
347
|
-
|
|
348
|
-
```json
|
|
349
|
-
{
|
|
350
|
-
"screenId": "checkout",
|
|
351
|
-
"displayName": "Checkout",
|
|
352
|
-
"screenDocPath": "basic-design/screens/checkout.md",
|
|
353
|
-
"prototypePath": "dist/checkout",
|
|
354
|
-
"route_exists": false
|
|
355
|
-
}
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
Show in the list but disable the link until ops regenerates the map with `route_exists: true`.
|
|
359
|
-
|
|
360
|
-
---
|
|
361
|
-
|
|
362
|
-
## 5. Implementation checklist
|
|
363
|
-
|
|
364
|
-
- [ ] Load `screen-map.json` for the active project release
|
|
365
|
-
- [ ] Implement `resolvePrototypeHref()` (section 1)
|
|
366
|
-
- [ ] Render `screens[]` sorted by `displayName` (or your product order)
|
|
367
|
-
- [ ] Use `reviewUrl` when present; fallback only when missing
|
|
368
|
-
- [ ] Respect `route_exists === false` (pending badge, no link)
|
|
369
|
-
- [ ] Landing / “Open prototype” CTA from **`defaultScreen`** (or `resolveDefaultPrototypeHref()`)
|
|
370
|
-
- [ ] Open prototype links in new tab; rely on browser basic auth
|
|
371
|
-
- [ ] Optional: link `screenDocs[userLocale]` to design docs
|
|
372
|
-
- [ ] Do not rewrite SPA paths or strip `.html` on static paths
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
|
-
## 6. FAQ
|
|
377
|
-
|
|
378
|
-
**How do I get the landing / default prototype URL?**
|
|
379
|
-
Use **`defaultScreen.reviewUrl`** when present, or `resolveDefaultPrototypeHref(map)` (section 1). `defaultScreen` is the same row as in `screens[]` — you do not need to search by id unless `defaultScreen` is missing (legacy file).
|
|
380
|
-
|
|
381
|
-
**Is there a `link` field?**
|
|
382
|
-
No. Use `reviewUrl`, or build from `reviewHost` + optional segments + `prototypePath`.
|
|
383
|
-
|
|
384
|
-
**Must every URL include `{project}/{version}`?**
|
|
385
|
-
No. Omit `projectId` and/or `deployVersion` when the deploy uses flat URLs.
|
|
386
|
-
|
|
387
|
-
**What if `reviewUrl` is missing but `reviewHost` is set?**
|
|
388
|
-
Build the URL with the fallback function in section 1.
|
|
389
|
-
|
|
390
|
-
**What if both are missing?**
|
|
391
|
-
Show the screen as not linkable; check with ops that `prototype manifest` or `prototype map` was run with host config.
|
|
392
|
-
|
|
393
|
-
**Trailing slashes on SPA routes?**
|
|
394
|
-
Do not add them. Use paths exactly as in JSON (`dist/login`, not `dist/login/`).
|
|
395
|
-
|
|
396
|
-
**Multiple projects on one web app?**
|
|
397
|
-
Load one `screen-map.json` per project release. Top-level `projectId` / `deployVersion` describe that file’s URLs only.
|
|
398
|
-
|
|
399
|
-
**Where does the file come from?**
|
|
400
|
-
Dev/ops generates it (`npx ai-spector prototype manifest` or `prototype map`). You receive it via git, CI artifact, or API — not from a public POC URL.
|
|
401
|
-
|
|
402
|
-
---
|
|
403
|
-
|
|
404
|
-
## 7. Static vs SPA (reference)
|
|
405
|
-
|
|
406
|
-
| | Static | SPA |
|
|
407
|
-
|---|--------|-----|
|
|
408
|
-
| `prototypePath` | File: `src/login.html` | Route: `dist/login` |
|
|
409
|
-
| URL shape | Ends with `.html` | No `.html`; path is a route |
|
|
410
|
-
| Server | Serves the HTML file | Serves `index.html`; app router handles route |
|
|
411
|
-
|
|
412
|
-
---
|
|
413
|
-
|
|
414
|
-
## 8. Deploy context (ops / infra — not required for UI code)
|
|
415
|
-
|
|
416
|
-
nginx serves files under `/var/www/{projectId}/{deployVersion}/current/` when using the versioned layout. Public URL:
|
|
417
|
-
|
|
418
|
-
```text
|
|
419
|
-
https://poc.dev.kaopiz.com/{projectId}/{deployVersion}/{prototypePath}
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
Flat deploys (no project/version) are valid — the JSON `reviewUrl` values are the source of truth for your links.
|
|
423
|
-
|
|
424
|
-
- nginx config: [nginx-poc.conf](./nginx-poc.conf)
|
|
425
|
-
- Hosted / external mapping workflow: [external-prototype-map.md](./external-prototype-map.md)
|
|
426
|
-
|
|
427
|
-
### Regenerating the map (ops only)
|
|
428
|
-
|
|
429
|
-
```bash
|
|
430
|
-
npx ai-spector prototype manifest # in-repo prototype
|
|
431
|
-
npx ai-spector prototype map --strict # hosted / path-map workflow
|
|
432
|
-
```
|
|
433
|
-
|
|
434
|
-
Web team consumes the updated JSON on the next deploy.
|