32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# Portal requirements
|
|
|
|
Regex Tools is a static nested-path-safe application.
|
|
|
|
Required delivery behavior:
|
|
|
|
- JavaScript workers use a JavaScript MIME type.
|
|
- `toolbox-app.json`, HTML and legal/source documents should remain
|
|
revalidation/no-cache resources.
|
|
- Hashed Vite assets may use immutable long-term caching.
|
|
- CSP must allow `worker-src 'self' blob:`.
|
|
- `engines/pcre2/pcre2.wasm` and
|
|
`engines/python/pyodide.asm.wasm` must use `application/wasm`.
|
|
- Engine `.mjs` files must use a JavaScript MIME type;
|
|
`engines/python/python_stdlib.zip`, JSON, licence, notice and checksum files
|
|
must be delivered without content transformation.
|
|
- `script-src` must permit self-hosted WebAssembly compilation, normally with
|
|
`'wasm-unsafe-eval'`; broad `'unsafe-eval'` is neither needed nor recommended.
|
|
- `connect-src 'self'` must allow the Pyodide worker to fetch its own
|
|
same-origin WebAssembly, standard-library and lock files.
|
|
- Every file below `engines/pcre2/`, `engines/python/` and `engines/java/`
|
|
should use revalidation or a release-scoped immutable cache. These are not
|
|
content-hashed filenames and must never drift under one release identity.
|
|
|
|
The Portal must consume the immutable release ZIP, verify its SHA-256, verify
|
|
manifest ID `de.add-ideas.regex-tools` and version `0.3.0`, and mount it at a
|
|
relative target such as `apps/regex/`.
|
|
|
|
The package, manifest, tag, artifact URL and checksum must all use the v0.3.0
|
|
identity. Historical artifact coordinates remain immutable and must not be
|
|
overwritten or reused.
|