Skip to content

Commit 52264d9

Browse files
author
Corey B
committed
chore: mark v1.2.0 TODOs complete, expand version-bump agent workflow with full did:web architecture docs
1 parent 784649c commit 52264d9

2 files changed

Lines changed: 97 additions & 15 deletions

File tree

TODO.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ This list outlines the remaining steps to transition the OpenFDD project from a
66
- [x] **Zero-Trust Embed Scrubbing**: `<script>`, `<iframe>`, `<object>` blocked in both parsers.
77
- [x] **Compiler Security Rejection**: `fdd-pack` fatally rejects templates containing hostile embedding vectors.
88
- [x] **v1.2.0 did:web Identity**: `identity.js`, `signFdd()`, `parse()`, `verify()`, client `resolveIssuer()` + `verifySignature()`.
9-
- [ ] **Publish v1.2.0**: Run `npm publish --access=public` in `lib/node-fdd/`, then `git tag v1.2.0 && git push origin v1.2.0`.
9+
- [x] **Published v1.2.0**: `@coreyburns/node-fdd@1.2.0` live on NPM. Git tag `v1.2.0` pushed.
10+
- [x] **Docs Updated**: `README.md`, `site/index.html`, and `spec/SPEC.md` all reflect v1.2.0 did:web workflow and CDN tag.
1011
- [ ] **Security Audit**: Test Zero-Trust regex against obfuscated `<scr+ipt>` payloads.
1112

1213
## 📦 Distribution & Tooling
@@ -18,8 +19,8 @@ This list outlines the remaining steps to transition the OpenFDD project from a
1819
- [x] **Medical Example**: `examples/medical_lab_result.fdd` — signed lab results with editable physician notes.
1920
- [x] **Legal Example**: `examples/legal_contract.fdd` — consulting agreement with client signature binding.
2021
- [x] **Finance Example**: `examples/bank_statement_v2.fdd` — bank statement with transaction table.
22+
- [x] **Update SPEC.md**: Complete rewrite to v1.2 covering did:web lifecycle, trust badge, Zero-Trust policy.
2123
- [ ] **Developer Sandbox**: Live Builder on GitHub Pages for in-browser `.fdd` generation.
22-
- [ ] **Update SPEC.md**: Document the `did:web` workflow, `signFdd()` API, and trust badge behavior.
2324

2425
## 📣 Community & Growth
2526
- [ ] **Social Launch**: Execute sharing block in README (X, LinkedIn, Reddit, YouTube).

_agents/workflows/version-bump.md

Lines changed: 94 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,102 @@ description: OpenFDD System Version Bumping Workflow
44

55
# Updating OpenFDD Versions
66

7-
As an Agent maintaining the pristine layout of the OpenFDD project, any time we deploy a major logic upgrade that necessitates an `npm publish` or a native `git tag` push affecting CDN endpoints, you MUST execute the following cascade in order to prevent fractured dependency versions:
7+
When deploying a new version of the OpenFDD ecosystem, follow this full cascade in order. Do NOT skip steps — fractured versions between CDN, npm, and git tags will break users pinning to specific releases.
88

9-
1. **Update `lib/node-fdd/package.json`**:
10-
Ensure `version` is properly bumped matching SEMVER standards (e.g. `"1.2.0"`).
9+
## Required Files to Update per Release
1110

12-
2. **Update the Global `jsDelivr` CDN Maps**:
13-
Cross-reference `site/index.html` and `README.md`. You must parse for `cdn.jsdelivr.net/gh/Spuds0588/open-fdd@v[VERSION]` and rigidly adjust that embedded marker in the code so all public instructions route to your brand new release.
11+
| File | What to change |
12+
|---|---|
13+
| `lib/node-fdd/package.json` | Bump `version` field |
14+
| `lib/node-fdd/README.md` | Update any CLI usage or API examples if commands changed |
15+
| `README.md` | Update CDN `@v[VERSION]` tag in the `<script>` snippet |
16+
| `site/index.html` | Update CDN `@v[VERSION]` tag in the tooling section |
17+
| `spec/SPEC.md` | Update version number in the title (e.g. `Specification v1.2`) |
18+
| `TODO.md` | Mark completed items; add new items for work in progress |
19+
| `_agents/workflows/version-bump.md` | Update if new CLi commands or modules were added |
1420

15-
3. **Verify the NPM Scoped Install Commands**:
16-
Ensure all install code blocks accurately suggest `npm install -g @coreyburns/node-fdd` globally.
21+
## Step-by-Step Release Cascade
1722

18-
4. **Verify The Executables**:
19-
If CLI logic logic shifts, ensure `package.json` > `bin` explicitly maps `fdd-pack` and `fdd-sign` pipelines accurately.
23+
### 1. Bump `lib/node-fdd/package.json`
24+
Set `version` to the new SEMVER (e.g. `"1.3.0"`). Verify `engines.node` is still `">=18.0.0"`.
2025

21-
5. **Commit, Tag, and Publish**:
22-
- `git add . && git commit -m "chore: bump ecosystem verions"`
23-
- Prompt the explicit User to invoke `npm publish --access=public` inside `/lib/node-fdd`.
24-
- Prompt the User to issue an official git tag mirroring the release boundary via `git tag v1.x.x` and pushing `git push origin v1.x.x` to force native CDN hydration.
26+
### 2. Verify All CLI Executables in `package.json > bin`
27+
Current expected binaries:
28+
```json
29+
{
30+
"fdd-pack": "./src/pack.js",
31+
"fdd-sign": "./src/sign.js",
32+
"fdd-identity": "./src/identity.js"
33+
}
34+
```
35+
If new CLI tools were added, register them here.
36+
37+
### 3. Verify `package.json > exports` Subpath Map
38+
Current expected exports:
39+
```json
40+
{
41+
".": "./src/sign.js",
42+
"./identity": "./src/identity.js",
43+
"./pack": "./src/pack.js"
44+
}
45+
```
46+
Add new subpath exports if new modules were introduced.
47+
48+
### 4. Update the Global jsDelivr CDN Tag
49+
Search `README.md` and `site/index.html` for the string:
50+
```
51+
cdn.jsdelivr.net/gh/Spuds0588/open-fdd@v
52+
```
53+
Replace the version at the end with the new release tag (e.g. `@v1.3.0`).
54+
55+
### 5. Update SPEC.md Version Number
56+
Update the `# The Formatted Data Document (.fdd) Specification v[X.Y]` heading.
57+
58+
### 6. Commit & Push
59+
```bash
60+
git add -A
61+
git commit -m "chore: release vX.Y.Z — [short summary of changes]"
62+
git push
63+
```
64+
65+
### 7. Prompt User to Publish to NPM
66+
The user must run this from inside `lib/node-fdd/`:
67+
```bash
68+
npm login # Only needed if session has expired
69+
npm publish --access=public
70+
```
71+
72+
### 8. Tag the Git Release
73+
This is required for jsDelivr to serve the new CDN version:
74+
```bash
75+
git tag vX.Y.Z
76+
git push origin vX.Y.Z
77+
```
78+
79+
## Architecture Overview (for context)
80+
81+
The OpenFDD ecosystem has three library layers:
82+
83+
| Layer | Path | Purpose |
84+
|---|---|---|
85+
| `node-fdd` (server) | `lib/node-fdd/` | Identity gen, pack, sign, parse, verify — for Node 18+ issuers |
86+
| `fdd-js` (client) | `lib/fdd-js/` | Browser rendering, did:web resolution, trust badge, auto-save |
87+
| `extension` (viewer) | `extension/` | Chrome extension for local `.fdd` file viewing + Security Shield |
88+
89+
### Key Modules (node-fdd)
90+
- **`src/identity.js`**`generateIdentity()`, `createDidDocument()`. CLI: `fdd-identity`
91+
- **`src/sign.js`**`signFdd()`, `parse()`, `verify()`. CLI: `fdd-sign`
92+
- **`src/pack.js`** — Legacy unsigned packing. CLI: `fdd-pack`
93+
94+
### Key Methods (fdd-js `OpenFDDContainer`)
95+
- **`resolveIssuer(uri)`** — Resolves `did:web:domain` → fetches `/.well-known/did.json` → imports `CryptoKey`
96+
- **`verifySignature()`** — Web Crypto API Ed25519 verify. Runs non-blocking after render.
97+
- **`showTrustBadge(state, issuer)`** — States: `checking`, `valid`, `invalid`, `unresolved`
98+
- All Declarative Action Framework methods (`fdd-push`, `fdd-delete`, `fdd-set`, `fdd-match`, `set-ui`, etc.)
99+
100+
### Signature Payload Convention
101+
To keep server (`sign.js`) and client (`fdd.js`) in sync, the signed payload MUST always be:
102+
```
103+
JSON.stringify(vcWithoutProof) + '\n---template---\n' + templateInnerHTML
104+
```
105+
If this convention ever changes, both `src/sign.js` and `lib/fdd-js/src/fdd.js` MUST be updated together.

0 commit comments

Comments
 (0)