@owlmeans/oidc 0.1.18-rc.51 → 0.1.18-rc.52

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 @@ Shared OIDC protocol abstractions — guard/gate aliases, models, and immutable
12
12
  ## Installation
13
13
 
14
14
  ```bash
15
- bun add @owlmeans/oidc@^0.1.18-rc.51
15
+ bun add @owlmeans/oidc@^0.1.18-rc.52
16
16
  ```
17
17
 
18
18
  ## Usage
@@ -95,7 +95,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
95
95
  your project's skill store (`.agents/skills/`):
96
96
 
97
97
  ```sh
98
- npx @owlmeans/agent-skills@^0.1.18-rc.45
98
+ npx @owlmeans/agent-skills@^0.1.18-rc.46
99
99
  ```
100
100
 
101
101
  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/oidc",
4
- "version": "0.1.18-rc.51",
5
- "generatedAt": "2026-10-01T23:27:48.732Z",
4
+ "version": "0.1.18-rc.52",
5
+ "generatedAt": "2026-10-03T11:19:50.782Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ user-invocable: false
8
8
  # @owlmeans/oidc
9
9
 
10
10
  **Layer:** Core
11
- **Install:** `"@owlmeans/oidc": "^0.1.18-rc.51"` in `dependencies`
11
+ **Install:** `"@owlmeans/oidc": "^0.1.18-rc.52"` in `dependencies`
12
12
 
13
13
  The shared half of the OIDC stack: no transport, no library. It owns the names, the shapes and the
14
14
  guard that the server relying party (`@owlmeans/server-oidc-rp`), the browser relying party
@@ -43,7 +43,7 @@ guard that the server relying party (`@owlmeans/server-oidc-rp`), the browser re
43
43
  | `OidcIamConfig` | `{ iamMode?: 'keycloak' \| 'integrated' }` — the IAM-mode seam, kept here to avoid a cycle with `@owlmeans/iam` |
44
44
  | `OidcGuard`, `OidcGuardOptions` | The guard service type, and `{ coguards, cache?, tokenService? }` — only `coguards` (its **first** entry, default `DEFAULT_GUARD`) and `tokenService` are read; `cache` is declared and never used |
45
45
  | `OIDCAuthInitParams`, `OIDCClientAuthPayload`, `OIDCTokenUpdate`, `CommonTokenSetParams` | The dispatcher wire shapes; init's `entitySlug?` is the organization the person asks to act in |
46
- | `OIDCAuthInitParamsSchema`, `OIDCClientAuthPayloadSchema`, `OIDCTokenUpdateSchema`, `ProviderProfileDetailsSchema`, `OidcOrganizationSwitchSchema` | Their AJV schemas — closed: the server's AJV strips an undeclared field silently, so every field a caller sends is declared |
46
+ | `OIDCAuthInitParamsSchema`, `OIDCClientAuthPayloadSchema`, `OIDCTokenUpdateSchema`, `ProviderProfileDetailsSchema`, `OidcOrganizationSwitchSchema` | Their AJV schemas — closed (the server's AJV strips an undeclared field silently, so every field a caller sends is declared), except `OIDCClientAuthPayloadSchema`, which admits any further string param of the provider's redirect |
47
47
  | `OidcOrganizationClaim` | `{ entitySlug, entityKey, title?, owner, groups?, home? }` — one organization of the subject as the provider claims it; `entityKey` is the frozen IAM key and never leaves a server |
48
48
  | `OidcPermissionSetClaim` | `PermissionSet` + `entitySlug?` — a set bound to that organization |
49
49
  | `OidcOrganizationItem`, `OidcOrganizationList`, `OidcOrganizationSwitch` | The switch's wire shapes: `{ entitySlug, title?, owner, groups?, home?, acting }` items (no key), the `{ items }` list, the `{ entitySlug }` body |
@@ -68,8 +68,7 @@ protocol(
68
68
 
69
69
  The verification itself happens in `@owlmeans/server-oidc-rp` (server) and `@owlmeans/web-oidc-rp`
70
70
  (browser); this package gives both sides one name to refer to. `OIDC_GATE` is for OIDC/UMA-style
71
- authorization. A product that authenticates over OIDC but authorizes against its own identity
72
- resources declares its own gate alias instead.
71
+ authorization only (`server-oidc-rp` → Rules).
73
72
 
74
73
  ## Scope names are a cross-package contract
75
74
 
@@ -90,11 +89,11 @@ A client that asks for `ORGANIZATIONS_SCOPE` gets two claims from the integrated
90
89
  `organizations` claim (`OidcOrganizationClaim[]`) and the FULL `permissions` claim, in which a set
91
90
  bound to an organization carries `entitySlug`. A client that never asks gets the flattened claim of
92
91
  the one organization it acts in and no `organizations` claim — so the scope is what turns tenancy
93
- on, and an old client is untouched by it.
92
+ on, and a single-organization client never sees an `organizations` claim or a set carrying
93
+ `entitySlug`.
94
94
 
95
- Only the relying party's server sees the claims. The browser token carries the acting
96
- organization's `entitySlug`, `groups` and its sets with the binding stripped; `entityKey` and the
97
- bound sets of other organizations never leave the server (`@owlmeans/server-oidc-rp`).
95
+ Only the relying party's server sees the claims; what the session keeps and what the browser token
96
+ carries is governed by `server-oidc-rp` → "Organizations".
98
97
 
99
98
  The guard attaches `updated.entity` to the request whenever the wrapping service answers one. A
100
99
  relying party of a tenanted client has no organization registry of its own, so this is the only
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/oidc",
3
- "version": "0.1.18-rc.51",
3
+ "version": "0.1.18-rc.52",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -21,12 +21,12 @@
21
21
  }
22
22
  },
23
23
  "dependencies": {
24
- "@owlmeans/auth": "^0.1.18-rc.37",
25
- "@owlmeans/auth-common": "^0.1.18-rc.43",
26
- "@owlmeans/basic-envelope": "^0.1.18-rc.42",
27
- "@owlmeans/config": "^0.1.18-rc.40",
24
+ "@owlmeans/auth": "^0.1.18-rc.38",
25
+ "@owlmeans/auth-common": "^0.1.18-rc.44",
26
+ "@owlmeans/basic-envelope": "^0.1.18-rc.43",
27
+ "@owlmeans/config": "^0.1.18-rc.41",
28
28
  "@owlmeans/context": "^0.1.18-rc.32",
29
- "@owlmeans/entrypoint": "^0.1.18-rc.38",
29
+ "@owlmeans/entrypoint": "^0.1.18-rc.39",
30
30
  "@owlmeans/resource": "^0.1.18-rc.37",
31
31
  "@owlmeans/route": "^0.1.18-rc.33"
32
32
  },