@firetail/finchly 0.0.4 → 0.0.5

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +7 -16
  2. package/README.md +8 -75
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,37 +4,28 @@ All notable changes to `@firetail/finchly`. Versions follow semver.
4
4
 
5
5
  ## Unreleased
6
6
 
7
- ## 0.0.4 - 2026-11-12
8
-
9
- No change to the package. The first release published by the release
10
- workflow: 0.0.2 and 0.0.3 were tagged but did not reach npm, because the
11
- workflow published with a placeholder token in place of the trusted
12
- publisher. Everything listed under them arrives in this release.
7
+ ## 0.0.5 - 2026-11-12
13
8
 
14
- ## 0.0.3 - 2026-11-12
9
+ - The README covers using the SDK only. Notes for people working on the
10
+ SDK are no longer part of the package.
15
11
 
16
- Tagged but not published to npm.
12
+ ## 0.0.4 - 2026-11-12
17
13
 
18
14
  - Every request to the platform carries three headers: `x-platform-sdk`
19
15
  (the package name), `x-platform-sdk-version` (this release) and
20
16
  `x-platform-api-version` (the platform API version it speaks). A caller
21
17
  cannot replace them. Exported as `SDK_REQUEST_HEADERS`.
22
-
23
- ## 0.0.2 - 2026-11-12
24
-
25
- Tagged but not published to npm.
26
-
27
18
  - An app can register itself: `createServiceClient` takes an `enrolment`
28
19
  (token, manifest, address) in place of a credential, and
29
20
  `enrolmentFrom(config, manifest)` builds one from the platform settings.
30
21
  Registration is what gets an app's instance key accepted.
31
22
  - New error codes: `app_pending_approval`, `app_registration_refused`.
32
23
 
24
+ 0.0.2 and 0.0.3 were not published.
25
+
33
26
  ## 0.0.1 - 2026-11-11
34
27
 
35
- The first release, published by hand so that the package exists and
36
- trusted publishing can be set up. Later releases come from the release
37
- workflow.
28
+ The first release.
38
29
 
39
30
  - Package skeleton under its final name.
40
31
  - `loadConfig`: read and validate the `PLATFORM_*` settings.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @firetail/finchly
2
2
 
3
- Node SDK for the [Finchly](https://github.com/firetail-io/finchly) platform.
3
+ Node SDK for the [Finchly](https://github.com/FireTail-io/finchly) platform.
4
4
  A service or app uses it to register with a Finchly deployment, verify who
5
5
  is calling it, and reach the platform's database, object store, queue and
6
6
  other services.
@@ -9,7 +9,7 @@ Status: early. The package builds and is tested, but only the first four
9
9
  modules exist.
10
10
 
11
11
  The SDK implements the platform API, which is specified in
12
- `firetail-io/finchly` under `spec/`. This release speaks platform API `v1`
12
+ `FireTail-io/finchly` under `spec/`. This release speaks platform API `v1`
13
13
  (draft).
14
14
 
15
15
  ## Install
@@ -69,7 +69,7 @@ try {
69
69
  A token is rejected unless it is signed with ES256 by a key the gateway
70
70
  publishes, names that gateway as issuer and this service as its only
71
71
  audience, and has not expired. The rules are in `spec/identity-token.md` in
72
- `firetail-io/finchly`.
72
+ `FireTail-io/finchly`.
73
73
 
74
74
  No other header is ever consulted. On a path the manifest declares in
75
75
  `publicPaths` there is no token, and the service authenticates the request
@@ -115,7 +115,7 @@ The instance makes an ES256 key pair in memory the first time it is needed.
115
115
  The private half never leaves the process. The public half is registered
116
116
  with the gateway using the credential the service was deployed with, and
117
117
  extended by itself for as long as the instance runs. The rules are in
118
- `spec/service-token.md` and `spec/registration.md` in `firetail-io/finchly`.
118
+ `spec/service-token.md` and `spec/registration.md` in `FireTail-io/finchly`.
119
119
 
120
120
  ### An app registers itself
121
121
 
@@ -153,7 +153,7 @@ exactly as it was loaded. What can come back:
153
153
  | `app_registration_refused` | The platform refused, and `problems` says why: a bad token, a manifest or address it will not accept, a lower version than the one running | Fix the deployment. Trying again will not help |
154
154
  | `gateway_unreachable` | The gateway could not be reached | Try again |
155
155
 
156
- The protocol is in `spec/registration.md` in `firetail-io/finchly`.
156
+ The protocol is in `spec/registration.md` in `FireTail-io/finchly`.
157
157
 
158
158
  The other half of the `app` module is not built: serving the
159
159
  `/{slug}/_platform/*` endpoints, which let an administrator register an app
@@ -168,7 +168,7 @@ release is asking:
168
168
  | Header | Value |
169
169
  |---|---|
170
170
  | `x-platform-sdk` | `@firetail/finchly` |
171
- | `x-platform-sdk-version` | This release, for example `0.0.4` |
171
+ | `x-platform-sdk-version` | This release, for example `0.0.5` |
172
172
  | `x-platform-api-version` | The platform API version it speaks, `v1` |
173
173
 
174
174
  That covers fetching the gateway's issuer and keys, registering an instance
@@ -209,73 +209,6 @@ not leak them.
209
209
  The manifest check here is not the full schema. The platform runs the full
210
210
  check at registration and is the authority.
211
211
 
212
- ## Develop
212
+ ## Changes
213
213
 
214
- ```
215
- npm install
216
- npm test
217
- ```
218
-
219
- `npm test` compiles with `tsc` and runs the tests in `test/` against the
220
- build, which is what a consumer imports.
221
-
222
- ### Conformance vectors
223
-
224
- `test/conformance/` holds test vectors copied from `firetail-io/finchly`
225
- (`conformance/vectors/`). Both SDKs must reach the verdict each vector
226
- states. Do not edit them here: change them in `finchly`, regenerate, and
227
- copy the file to both SDK repositories. Until `finchly` publishes its
228
- conformance suite as an image, the copy is made by hand.
229
-
230
- ## Release
231
-
232
- Each package version is semver, independent of the Python SDK and of the
233
- platform.
234
-
235
- 1. Changes land on `main` by pull request. Each one adds a line to
236
- `CHANGELOG.md` under "Unreleased".
237
- 2. To release, set the version in `package.json`, move the changelog
238
- entries under that version, merge, and tag the merge commit `vX.Y.Z`.
239
- 3. The `release` workflow checks the tag matches `package.json`, runs the
240
- tests, and publishes.
241
- 4. A version with a pre-release part (`1.2.0-rc.1`) is published under the
242
- `next` dist-tag. Anything else is published as `latest`.
243
- 5. A bad release is deprecated with `npm deprecate` and followed by a patch
244
- release. It is not unpublished.
245
-
246
- Publishing is meant to use npm trusted publishing: the workflow proves its
247
- identity to npm with its GitHub Actions token, so no npm token is stored,
248
- and npm attaches a provenance attestation.
249
-
250
- npm matches the trusted publisher against the identity GitHub issues to the
251
- workflow, and every field must match exactly, including case:
252
-
253
- | Field on npmjs.com | Value |
254
- | -------------------- | ------------- |
255
- | Organization or user | `FireTail-io` |
256
- | Repository | `finchly-sdk-js` |
257
- | Workflow filename | `release.yml` |
258
- | Environment name | `npm` |
259
-
260
- The organisation is `FireTail-io`, not `firetail-io`. GitHub accepts either
261
- spelling in a URL; npm does not, and answers "package not found" when the
262
- two differ. `repository.url` in `package.json` must use the same spelling.
263
- The workflow prints the identity it was issued, so a refusal can be compared
264
- with what npmjs.com holds. A trusted publisher's fields cannot be edited: to
265
- correct one, delete it and create another.
266
-
267
- The workflow can also be given a token, for a release that trusted
268
- publishing refuses:
269
-
270
- - `NPM_TOKEN`, a secret of the `npm` environment in this repository. It is
271
- a granular access token that can publish `@firetail/finchly` and nothing
272
- else, with a short expiry.
273
- - npm tries the trusted publisher first and uses the token only when that
274
- is refused. Without the secret, nothing in the workflow needs to change.
275
- - While a token is in use, the package's "Publishing access" on npmjs.com
276
- must allow a granular access token with bypass 2FA.
277
- - No provenance attestation is attached to a release published with the
278
- token. npm also does not generate one from a private repository.
279
-
280
- Still to add: the conformance suite from `firetail-io/finchly`, run in CI on
281
- every change, once that suite exists.
214
+ See `CHANGELOG.md`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firetail/finchly",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Node SDK for the Finchly platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",