@owlmeans/auth-common 0.1.18-rc.43 → 0.1.18-rc.44

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/README.md CHANGED
@@ -12,7 +12,7 @@ Predefined authentication protocols, guards, and constants shared between server
12
12
  ## Installation
13
13
 
14
14
  ```bash
15
- bun add @owlmeans/auth-common@^0.1.18-rc.43
15
+ bun add @owlmeans/auth-common@^0.1.18-rc.44
16
16
  ```
17
17
 
18
18
  ## Usage
@@ -98,7 +98,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
98
98
  your project's skill store (`.agents/skills/`):
99
99
 
100
100
  ```sh
101
- npx @owlmeans/agent-skills@^0.1.18-rc.45
101
+ npx @owlmeans/agent-skills@^0.1.18-rc.46
102
102
  ```
103
103
 
104
104
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/auth-common",
4
- "version": "0.1.18-rc.43",
5
- "generatedAt": "2026-10-01T23:27:48.728Z",
4
+ "version": "0.1.18-rc.44",
5
+ "generatedAt": "2026-10-03T11:19:50.778Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ user-invocable: false
8
8
  # @owlmeans/auth-common
9
9
 
10
10
  **Layer:** Core
11
- **Install:** `"@owlmeans/auth-common": "^0.1.18-rc.43"` in `dependencies`
11
+ **Install:** `"@owlmeans/auth-common": "^0.1.18-rc.44"` in `dependencies`
12
12
 
13
13
  Everything a server and a browser must agree on to talk authentication: aliases, the shared
14
14
  protocol declarations, the signature guard, and the contract for resolving the organization
@@ -97,7 +97,10 @@ A guard may attach the entity itself when its authority names the organization
97
97
  does for a session of a tenanted client (`@owlmeans/oidc`), whose relying party has no registry to
98
98
  resolve from. `attachEntity` trusts that attachment only while its `slug` is the token's
99
99
  `entitySlugOf(request.auth)`; on any mismatch it removes it and resolves as if nothing had been
100
- attached, so a stale or foreign entity can never reach a handler.
100
+ attached, so a stale or foreign entity can never reach a handler. That attached entity is keyed by
101
+ the organization's frozen IAM key (`{ id: entityKey, slug, iamKey: entityKey }`) — the registry's
102
+ record id never leaves the provider — so on such a relying party `requireEntityKey(req)` answers the
103
+ `entityKey`, which survives a rename exactly as a record id would.
101
104
 
102
105
  Never build a user-facing name (a hostname, a display label) from `entityKeyOf`. Those want the
103
106
  current slug, `req.entity?.slug`.
@@ -120,13 +123,10 @@ protocol(
120
123
  )
121
124
  ```
122
125
 
123
- `{entity}` is a placeholder each **gate service** substitutes for itself — `@owlmeans/auth-common`
124
- declares neither the token nor the substitution — so what it stands for depends on the gate the
125
- alias resolves to. `@owlmeans/server-iam` substitutes `req.entity?.id`, falling back to the token's
126
- slug, because its grants are stored against the organization entity's stable id wherever one is
127
- resolvable. `@owlmeans/server-oidc-rp`'s gate model substitutes the token's slug only. Both write
128
- `'-'` when neither is available. Read the gate you are wiring before writing a parameter that
129
- depends on the value.
126
+ `{entity}` is a placeholder each **gate service** substitutes for itself — this package declares
127
+ neither the token nor the substitution. `@owlmeans/server-iam` substitutes the resolved id
128
+ (`server-iam` → "`{entity}` in a permission name"); `@owlmeans/server-oidc-rp`'s gate model the
129
+ token's slug only; both write `'-'` when neither is available. Read the gate you are wiring first.
130
130
 
131
131
  ## Rules
132
132
 
@@ -138,8 +138,7 @@ depends on the value.
138
138
  accepts only canonical timestamps inside its symmetric 60-second window and claims the
139
139
  credential-and-nonce pair until that timestamp's absolute expiry; a replay-store error refuses
140
140
  authentication rather than disabling deduplication.
141
- - An OIDC gate is not required when OIDC is only the login/bootstrap provider. Where the provider
142
- issues a local bearer token, authorize with a product-specific gate against local identity scopes.
141
+ - OIDC used only to sign in authorizes with a product gate, not `OIDC_GATE` (`server-oidc-rp` → Rules).
143
142
  - The trust resource (`TRUSTED`, from `@owlmeans/config`) is the system's source of truth for known
144
143
  signing identities — the auth service, peer services, wallet providers, supervisors.
145
144
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/auth-common",
3
- "version": "0.1.18-rc.43",
3
+ "version": "0.1.18-rc.44",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -29,19 +29,19 @@
29
29
  }
30
30
  },
31
31
  "dependencies": {
32
- "@owlmeans/auth": "^0.1.18-rc.37",
33
- "@owlmeans/auth-common": "^0.1.18-rc.43",
32
+ "@owlmeans/auth": "^0.1.18-rc.38",
33
+ "@owlmeans/auth-common": "^0.1.18-rc.44",
34
34
  "@owlmeans/basic-ids": "^0.1.18-rc.34",
35
- "@owlmeans/basic-keys": "^0.1.18-rc.44",
36
- "@owlmeans/client-entrypoint": "^0.1.18-rc.43",
35
+ "@owlmeans/basic-keys": "^0.1.18-rc.45",
36
+ "@owlmeans/client-entrypoint": "^0.1.18-rc.44",
37
37
  "@owlmeans/context": "^0.1.18-rc.32",
38
- "@owlmeans/entrypoint": "^0.1.18-rc.38",
38
+ "@owlmeans/entrypoint": "^0.1.18-rc.39",
39
39
  "@owlmeans/resource": "^0.1.18-rc.37",
40
40
  "@owlmeans/route": "^0.1.18-rc.33"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@owlmeans/dep-config": "workspace:*",
44
- "@owlmeans/test-auth": "^0.1.18-rc.42",
44
+ "@owlmeans/test-auth": "^0.1.18-rc.43",
45
45
  "@types/bun": "^1.4.0",
46
46
  "nodemon": "^3.1.14",
47
47
  "typescript": "^7.0.2"