@owlmeans/server-auth-identity 0.1.18-rc.45 → 0.1.18-rc.46
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 +2 -2
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/server-auth-identity/SKILL.md +1 -1
- package/build/consts.local.d.ts +10 -0
- package/build/consts.local.d.ts.map +1 -0
- package/build/consts.local.js +10 -0
- package/build/consts.local.js.map +1 -0
- package/build/groups.d.ts +1 -3
- package/build/groups.d.ts.map +1 -1
- package/build/groups.js.map +1 -1
- package/build/identity.d.ts +1 -3
- package/build/identity.d.ts.map +1 -1
- package/build/identity.js.map +1 -1
- package/build/resolver.d.ts +1 -1
- package/build/resolver.d.ts.map +1 -1
- package/build/resolver.js +1 -9
- package/build/resolver.js.map +1 -1
- package/build/service.d.ts.map +1 -1
- package/build/service.js.map +1 -1
- package/build/types.local.d.ts +11 -0
- package/build/types.local.d.ts.map +1 -0
- package/build/types.local.js +2 -0
- package/build/types.local.js.map +1 -0
- package/package.json +12 -12
- package/src/consts.local.ts +9 -0
- package/src/groups.ts +1 -3
- package/src/identity.ts +2 -5
- package/src/resolver.ts +4 -21
- package/src/service.ts +11 -19
- package/src/types.local.ts +14 -0
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ whose grants decide access (use `@owlmeans/server-oidc-rp`'s guard and gate, or
|
|
|
10
10
|
## Installation
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
bun add @owlmeans/server-auth-identity@^0.1.18-rc.
|
|
13
|
+
bun add @owlmeans/server-auth-identity@^0.1.18-rc.46
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
## Concepts
|
|
@@ -308,7 +308,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
308
308
|
your project's skill store (`.agents/skills/`):
|
|
309
309
|
|
|
310
310
|
```sh
|
|
311
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
311
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.48
|
|
312
312
|
```
|
|
313
313
|
|
|
314
314
|
The embedded files are version-matched to this package release. Do not edit them
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/server-auth-identity",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-10-
|
|
4
|
+
"version": "0.1.18-rc.46",
|
|
5
|
+
"generatedAt": "2026-10-05T08:32:19.089Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -8,7 +8,7 @@ user-invocable: false
|
|
|
8
8
|
# @owlmeans/server-auth-identity
|
|
9
9
|
|
|
10
10
|
**Layer:** Server
|
|
11
|
-
**Install:** `"@owlmeans/server-auth-identity": "^0.1.18-rc.
|
|
11
|
+
**Install:** `"@owlmeans/server-auth-identity": "^0.1.18-rc.46"` in `dependencies`
|
|
12
12
|
|
|
13
13
|
The identity store a deployment owns when it does not delegate identity to an external IAM. It
|
|
14
14
|
answers *who is this person* (account + credentials), *what are they in this app and organization*
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long a resolution is trusted without re-reading the registry.
|
|
3
|
+
*
|
|
4
|
+
* Every authenticated request resolves an entity, so an uncached resolver would put a database
|
|
5
|
+
* round-trip in front of the whole API. The cost of the cache is a rename taking up to this long
|
|
6
|
+
* to be seen by other replicas — which is survivable precisely because the old slug keeps
|
|
7
|
+
* resolving through `formerSlugs` rather than failing.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CACHE_TTL = 30000;
|
|
10
|
+
//# sourceMappingURL=consts.local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.local.d.ts","sourceRoot":"","sources":["../src/consts.local.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,QAAS,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long a resolution is trusted without re-reading the registry.
|
|
3
|
+
*
|
|
4
|
+
* Every authenticated request resolves an entity, so an uncached resolver would put a database
|
|
5
|
+
* round-trip in front of the whole API. The cost of the cache is a rename taking up to this long
|
|
6
|
+
* to be seen by other replicas — which is survivable precisely because the old slug keeps
|
|
7
|
+
* resolving through `formerSlugs` rather than failing.
|
|
8
|
+
*/
|
|
9
|
+
export const CACHE_TTL = 30_000;
|
|
10
|
+
//# sourceMappingURL=consts.local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.local.js","sourceRoot":"","sources":["../src/consts.local.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAA"}
|
package/build/groups.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { BasicContext } from '@owlmeans/context';
|
|
2
1
|
import type { OrgGroup } from './types.js';
|
|
3
|
-
type Context
|
|
2
|
+
import type { Context } from './types.local.js';
|
|
4
3
|
/** The groups one app keeps in an organization. */
|
|
5
4
|
export declare const listOrgGroups: (ctx: Context, entityId: string, service: string) => Promise<OrgGroup[]>;
|
|
6
5
|
/**
|
|
@@ -19,5 +18,4 @@ export declare const putOrgGroup: (ctx: Context, entityId: string, group: OrgGro
|
|
|
19
18
|
* name it in their `groups` are the caller's to update.
|
|
20
19
|
*/
|
|
21
20
|
export declare const removeOrgGroup: (ctx: Context, entityId: string, service: string, key: string) => Promise<boolean>;
|
|
22
|
-
export {};
|
|
23
21
|
//# sourceMappingURL=groups.d.ts.map
|
package/build/groups.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../src/groups.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../src/groups.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAqB,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAI/C,mDAAmD;AACnD,eAAO,MAAM,aAAa,QAAe,OAAO,YAAY,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,QAAQ,EAAE,CACT,CAAA;AAE/F;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,QAAe,OAAO,YAAY,MAAM,SAAS,QAAQ,KAAG,OAAO,CAAC,QAAQ,CA2BnG,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAe,OAAO,YAAY,MAAM,WAAW,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,OAAO,CAQlH,CAAA"}
|
package/build/groups.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../src/groups.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../src/groups.ts"],"names":[],"mappings":"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"}
|
package/build/identity.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { BasicContext } from '@owlmeans/context';
|
|
2
1
|
import type { ProviderProfileDetails } from '@owlmeans/oidc';
|
|
3
2
|
import type { EnsureAccountArgs, EnsuredAccount, EnsureProfileArgs, IdentityAccount, IdentityCredentials, IdentityProfile } from './types.js';
|
|
4
|
-
type Context
|
|
3
|
+
import type { Context } from './types.local.js';
|
|
5
4
|
/**
|
|
6
5
|
* The profile id of an (account, app) — computed, never minted, the same on every row of the pair.
|
|
7
6
|
*
|
|
@@ -45,5 +44,4 @@ export declare const ensureAccount: (ctx: Context, args: EnsureAccountArgs, deta
|
|
|
45
44
|
* membership without it.
|
|
46
45
|
*/
|
|
47
46
|
export declare const ensureProfile: (ctx: Context, args: EnsureProfileArgs) => Promise<IdentityProfile>;
|
|
48
|
-
export {};
|
|
49
47
|
//# sourceMappingURL=identity.d.ts.map
|
package/build/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAI5D,OAAO,KAAK,EACV,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EACrE,mBAAmB,EAA+B,eAAe,EAElE,MAAM,YAAY,CAAA;AAQnB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,YAAa,MAAM,aAAa,MAAM,KAAG,MAE3B,CAAA;AAEtC;;;GAGG;AACH,eAAO,MAAM,eAAe,YAAa,sBAAsB,KAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,CAI1H,CAAA;AAEF,iEAAiE;AACjE,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,MAAoC,CAAA;AAOnF,oFAAoF;AACpF,eAAO,MAAM,YAAY,QAClB,OAAO,WAAW,sBAAsB,KAC5C,OAAO,CAAC;IAAE,UAAU,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAKrF,CAAA;AA0ED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,QACnB,OAAO,QAAQ,iBAAiB,YAAY,sBAAsB,KACtE,OAAO,CAAC,cAAc,CAwBxB,CAAA;AA8CD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,QAAe,OAAO,QAAQ,iBAAiB,KAAG,OAAO,CAAC,eAAe,CAWlG,CAAA"}
|
package/build/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/build/resolver.d.ts
CHANGED
package/build/resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAA2D,MAAM,uBAAuB,CAAA;AAiB3H,eAAO,MAAM,yBAAyB,WAC7B,MAAM,KACZ,qBA2JF,CAAA"}
|
package/build/resolver.js
CHANGED
|
@@ -3,15 +3,7 @@ import { ENTITY_RESOLVER, ENTITY_SLUG_PATTERN } from '@owlmeans/auth-common';
|
|
|
3
3
|
import { generateWordSlug, nextSlugCandidate } from '@owlmeans/basic-ids';
|
|
4
4
|
import { AUTH_IDENTITY_ORG_ENTITY, MAX_ENTITY_SLUG_ATTEMPTS, MAX_GUARDED_UPDATE_ATTEMPTS } from './consts.js';
|
|
5
5
|
import { idFilter, isDuplicateKey } from './native.js';
|
|
6
|
-
|
|
7
|
-
* How long a resolution is trusted without re-reading the registry.
|
|
8
|
-
*
|
|
9
|
-
* Every authenticated request resolves an entity, so an uncached resolver would put a database
|
|
10
|
-
* round-trip in front of the whole API. The cost of the cache is a rename taking up to this long
|
|
11
|
-
* to be seen by other replicas — which is survivable precisely because the old slug keeps
|
|
12
|
-
* resolving through `formerSlugs` rather than failing.
|
|
13
|
-
*/
|
|
14
|
-
const CACHE_TTL = 30_000;
|
|
6
|
+
import { CACHE_TTL } from './consts.local.js';
|
|
15
7
|
/**
|
|
16
8
|
* A stored record as the contract exposes it. Persisted records always carry an id. The cache keeps
|
|
17
9
|
* only this: the record itself carries groups and minted names nobody resolving a request needs.
|
package/build/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|
package/build/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA8F,sBAAsB,EAAE,wBAAwB,EAAwC,MAAM,YAAY,CAAA;AAYpN;;;GAGG;AACH,eAAO,MAAM,0BAA0B,UAAU,wBAAwB,KAAQ,sBAwJhF,CAAA"}
|
package/build/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BasicContext } from '@owlmeans/context';
|
|
2
|
+
import type { ServerConfig, ServerContext } from '@owlmeans/server-context';
|
|
3
|
+
import type { OrgEntityRef } from '@owlmeans/auth-common';
|
|
4
|
+
export type Context = BasicContext<any>;
|
|
5
|
+
export type ResolverContext = ServerContext<ServerConfig>;
|
|
6
|
+
export interface CacheEntry {
|
|
7
|
+
entity: OrgEntityRef | null;
|
|
8
|
+
at: number;
|
|
9
|
+
}
|
|
10
|
+
export type ServiceContext = ServerContext<ServerConfig>;
|
|
11
|
+
//# sourceMappingURL=types.local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.local.d.ts","sourceRoot":"","sources":["../src/types.local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;AAEvC,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AAEzD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.local.js","sourceRoot":"","sources":["../src/types.local.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/server-auth-identity",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.46",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -22,23 +22,23 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@owlmeans/auth": "^0.1.18-rc.
|
|
26
|
-
"@owlmeans/auth-common": "^0.1.18-rc.
|
|
27
|
-
"@owlmeans/basic-ids": "^0.1.18-rc.
|
|
28
|
-
"@owlmeans/context": "^0.1.18-rc.
|
|
29
|
-
"@owlmeans/log": "^0.1.18-rc.
|
|
30
|
-
"@owlmeans/mongo-resource": "^0.1.18-rc.
|
|
31
|
-
"@owlmeans/oidc": "^0.1.18-rc.
|
|
32
|
-
"@owlmeans/resource": "^0.1.18-rc.
|
|
33
|
-
"@owlmeans/server-context": "^0.1.18-rc.
|
|
34
|
-
"@scure/base": "^2.
|
|
25
|
+
"@owlmeans/auth": "^0.1.18-rc.39",
|
|
26
|
+
"@owlmeans/auth-common": "^0.1.18-rc.46",
|
|
27
|
+
"@owlmeans/basic-ids": "^0.1.18-rc.36",
|
|
28
|
+
"@owlmeans/context": "^0.1.18-rc.33",
|
|
29
|
+
"@owlmeans/log": "^0.1.18-rc.1",
|
|
30
|
+
"@owlmeans/mongo-resource": "^0.1.18-rc.42",
|
|
31
|
+
"@owlmeans/oidc": "^0.1.18-rc.54",
|
|
32
|
+
"@owlmeans/resource": "^0.1.18-rc.39",
|
|
33
|
+
"@owlmeans/server-context": "^0.1.18-rc.42",
|
|
34
|
+
"@scure/base": "^2.4.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"mongodb": "*"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@owlmeans/dep-config": "workspace:*",
|
|
41
|
-
"@types/bun": "^1.4.
|
|
41
|
+
"@types/bun": "^1.4.2",
|
|
42
42
|
"nodemon": "^3.1.14",
|
|
43
43
|
"typescript": "^7.0.2"
|
|
44
44
|
},
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long a resolution is trusted without re-reading the registry.
|
|
3
|
+
*
|
|
4
|
+
* Every authenticated request resolves an entity, so an uncached resolver would put a database
|
|
5
|
+
* round-trip in front of the whole API. The cost of the cache is a rename taking up to this long
|
|
6
|
+
* to be seen by other replicas — which is survivable precisely because the old slug keeps
|
|
7
|
+
* resolving through `formerSlugs` rather than failing.
|
|
8
|
+
*/
|
|
9
|
+
export const CACHE_TTL = 30_000
|
package/src/groups.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type { BasicContext } from '@owlmeans/context'
|
|
2
1
|
import { UnknownRecordError } from '@owlmeans/resource'
|
|
3
2
|
import type { Document } from 'mongodb'
|
|
4
3
|
import type { OrgEntityResource, OrgGroup } from './types.js'
|
|
5
4
|
import { AUTH_IDENTITY_ORG_ENTITY, MAX_GUARDED_UPDATE_ATTEMPTS } from './consts.js'
|
|
6
5
|
import { idFilter } from './native.js'
|
|
7
|
-
|
|
8
|
-
type Context = BasicContext<any>
|
|
6
|
+
import type { Context } from './types.local.js'
|
|
9
7
|
|
|
10
8
|
const entities = (ctx: Context) => ctx.resource<OrgEntityResource>(AUTH_IDENTITY_ORG_ENTITY)
|
|
11
9
|
|
package/src/identity.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto'
|
|
2
2
|
import { base58 } from '@scure/base'
|
|
3
|
-
import type { BasicContext } from '@owlmeans/context'
|
|
4
3
|
import { AuthRole } from '@owlmeans/auth'
|
|
5
4
|
import type { ProviderProfileDetails } from '@owlmeans/oidc'
|
|
6
5
|
import { createIdOfLength, IdStyle } from '@owlmeans/basic-ids'
|
|
7
6
|
import { UnknownRecordError } from '@owlmeans/resource'
|
|
8
|
-
import type
|
|
9
|
-
import { ENTITY_RESOLVER } from '@owlmeans/auth-common'
|
|
7
|
+
import { type EntityResolverService, ENTITY_RESOLVER } from '@owlmeans/auth-common'
|
|
10
8
|
import type {
|
|
11
9
|
EnsureAccountArgs, EnsuredAccount, EnsureProfileArgs, IdentityAccount, IdentityAccountResource,
|
|
12
10
|
IdentityCredentials, IdentityCredentialsResource, IdentityProfile, IdentityProfileResource, OrgEntity,
|
|
@@ -19,8 +17,7 @@ import {
|
|
|
19
17
|
} from './consts.js'
|
|
20
18
|
import { identityEvents } from './events.js'
|
|
21
19
|
import { isDuplicateKey } from './native.js'
|
|
22
|
-
|
|
23
|
-
type Context = BasicContext<any>
|
|
20
|
+
import type { Context } from './types.local.js'
|
|
24
21
|
|
|
25
22
|
/**
|
|
26
23
|
* The profile id of an (account, app) — computed, never minted, the same on every row of the pair.
|
package/src/resolver.ts
CHANGED
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
import { appendContextual } from '@owlmeans/context'
|
|
2
|
-
import type { ServerConfig, ServerContext } from '@owlmeans/server-context'
|
|
3
2
|
import type { Criteria } from '@owlmeans/resource'
|
|
4
|
-
import type
|
|
5
|
-
import { ENTITY_RESOLVER, ENTITY_SLUG_PATTERN } from '@owlmeans/auth-common'
|
|
3
|
+
import { type EntityResolverService, type OrgEntityRef, ENTITY_RESOLVER, ENTITY_SLUG_PATTERN } from '@owlmeans/auth-common'
|
|
6
4
|
import { generateWordSlug, nextSlugCandidate } from '@owlmeans/basic-ids'
|
|
7
5
|
import type { OrgEntity, OrgEntityResource } from './types.js'
|
|
8
6
|
import { AUTH_IDENTITY_ORG_ENTITY, MAX_ENTITY_SLUG_ATTEMPTS, MAX_GUARDED_UPDATE_ATTEMPTS } from './consts.js'
|
|
9
7
|
import { idFilter, isDuplicateKey } from './native.js'
|
|
10
|
-
|
|
11
|
-
type
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* How long a resolution is trusted without re-reading the registry.
|
|
15
|
-
*
|
|
16
|
-
* Every authenticated request resolves an entity, so an uncached resolver would put a database
|
|
17
|
-
* round-trip in front of the whole API. The cost of the cache is a rename taking up to this long
|
|
18
|
-
* to be seen by other replicas — which is survivable precisely because the old slug keeps
|
|
19
|
-
* resolving through `formerSlugs` rather than failing.
|
|
20
|
-
*/
|
|
21
|
-
const CACHE_TTL = 30_000
|
|
8
|
+
import { CACHE_TTL } from './consts.local.js'
|
|
9
|
+
import type { CacheEntry, ResolverContext } from './types.local.js'
|
|
22
10
|
|
|
23
11
|
/**
|
|
24
12
|
* A stored record as the contract exposes it. Persisted records always carry an id. The cache keeps
|
|
@@ -29,11 +17,6 @@ const toRef = (entity: OrgEntity | null): OrgEntityRef | null =>
|
|
|
29
17
|
id: entity.id!, slug: entity.slug, formerSlugs: entity.formerSlugs, iamKey: entity.iamKey,
|
|
30
18
|
}
|
|
31
19
|
|
|
32
|
-
interface CacheEntry {
|
|
33
|
-
entity: OrgEntityRef | null
|
|
34
|
-
at: number
|
|
35
|
-
}
|
|
36
|
-
|
|
37
20
|
export const makeEntityResolverService = (
|
|
38
21
|
alias: string = ENTITY_RESOLVER
|
|
39
22
|
): EntityResolverService => {
|
|
@@ -64,7 +47,7 @@ export const makeEntityResolverService = (
|
|
|
64
47
|
}
|
|
65
48
|
|
|
66
49
|
const resource = (): OrgEntityResource =>
|
|
67
|
-
(service.ctx as
|
|
50
|
+
(service.ctx as ResolverContext).resource<OrgEntityResource>(AUTH_IDENTITY_ORG_ENTITY)
|
|
68
51
|
|
|
69
52
|
const load = async (value: string): Promise<OrgEntityRef | null> => {
|
|
70
53
|
const cached = cache.get(value)
|
package/src/service.ts
CHANGED
|
@@ -1,24 +1,16 @@
|
|
|
1
1
|
import { appendContextual } from '@owlmeans/context'
|
|
2
|
-
import type
|
|
3
|
-
import type { AuthCredentials, AuthPayload, Profile } from '@owlmeans/auth'
|
|
4
|
-
import { ALL_SCOPES } from '@owlmeans/auth'
|
|
2
|
+
import { type AuthCredentials, type AuthPayload, type Profile, ALL_SCOPES } from '@owlmeans/auth'
|
|
5
3
|
import type { ProviderProfileDetails } from '@owlmeans/oidc'
|
|
6
4
|
import type { Criteria } from '@owlmeans/resource'
|
|
7
|
-
import type {
|
|
8
|
-
|
|
9
|
-
IdentityResourcesOptions,
|
|
10
|
-
} from './types.js'
|
|
11
|
-
import type { IdentityCredentials, IdentityProfile } from './types.js'
|
|
12
|
-
import type { EntityResolverService } from '@owlmeans/auth-common'
|
|
13
|
-
import { ENTITY_RESOLVER } from '@owlmeans/auth-common'
|
|
5
|
+
import type { AccountMeta, IdentityAccountResource, IdentityProfileResource, IdentityCredentialsResource, IdentityLinkingService, IdentityResourcesOptions, IdentityCredentials, IdentityProfile } from './types.js'
|
|
6
|
+
import { type EntityResolverService, ENTITY_RESOLVER } from '@owlmeans/auth-common'
|
|
14
7
|
import {
|
|
15
8
|
AUTH_IDENTITY_ACCOUNT, AUTH_IDENTITY_PROFILE, AUTH_IDENTITY_CREDENTIALS, AUTH_IDENTITY_LINKING, DEFAULT_APP_SERVICE,
|
|
16
9
|
} from './consts.js'
|
|
17
10
|
import { identityEvents } from './events.js'
|
|
18
11
|
import { credentialKeyOf, credentialOf, ensureAccount, ensureProfile, profileIdOf } from './identity.js'
|
|
19
12
|
import { logger } from '@owlmeans/log'
|
|
20
|
-
|
|
21
|
-
type Context = ServerContext<ServerConfig>
|
|
13
|
+
import type { ServiceContext } from './types.local.js'
|
|
22
14
|
|
|
23
15
|
const log = logger('server-auth-identity')
|
|
24
16
|
|
|
@@ -37,7 +29,7 @@ export const makeIdentityLinkingService = (opts: IdentityResourcesOptions = {}):
|
|
|
37
29
|
* id onto the wire, where a consumer would mistake it for a slug and compose names from it.
|
|
38
30
|
*/
|
|
39
31
|
const slugOf = async (entityId: string): Promise<string | undefined> => {
|
|
40
|
-
const ctx = service.ctx as
|
|
32
|
+
const ctx = service.ctx as ServiceContext
|
|
41
33
|
const entity = await ctx.service<EntityResolverService>(ENTITY_RESOLVER).byId(entityId)
|
|
42
34
|
|
|
43
35
|
return entity?.slug
|
|
@@ -54,7 +46,7 @@ export const makeIdentityLinkingService = (opts: IdentityResourcesOptions = {}):
|
|
|
54
46
|
|
|
55
47
|
const service: IdentityLinkingService = appendContextual<IdentityLinkingService>(AUTH_IDENTITY_LINKING, {
|
|
56
48
|
getLinkedProfile: async (details: ProviderProfileDetails): Promise<AuthPayload | null> => {
|
|
57
|
-
const ctx = service.ctx as
|
|
49
|
+
const ctx = service.ctx as ServiceContext
|
|
58
50
|
const account = (await credentialOf(ctx, details))?.account
|
|
59
51
|
if (account == null) return null
|
|
60
52
|
|
|
@@ -68,7 +60,7 @@ export const makeIdentityLinkingService = (opts: IdentityResourcesOptions = {}):
|
|
|
68
60
|
},
|
|
69
61
|
|
|
70
62
|
linkProfile: async (details: ProviderProfileDetails, meta: AccountMeta): Promise<AuthPayload> => {
|
|
71
|
-
const ctx = service.ctx as
|
|
63
|
+
const ctx = service.ctx as ServiceContext
|
|
72
64
|
const { account, registered } = await ensureAccount(ctx, {
|
|
73
65
|
email: meta.username, ...(details.username != null ? { name: details.username } : {}),
|
|
74
66
|
}, details)
|
|
@@ -99,7 +91,7 @@ export const makeIdentityLinkingService = (opts: IdentityResourcesOptions = {}):
|
|
|
99
91
|
},
|
|
100
92
|
|
|
101
93
|
linkCredentials: async (details: ProviderProfileDetails): Promise<AuthPayload> => {
|
|
102
|
-
const ctx = service.ctx as
|
|
94
|
+
const ctx = service.ctx as ServiceContext
|
|
103
95
|
if (details.profileId != null) {
|
|
104
96
|
const row = await ctx.resource<IdentityProfileResource>(AUTH_IDENTITY_PROFILE)
|
|
105
97
|
.load({ profileId: details.profileId })
|
|
@@ -129,7 +121,7 @@ export const makeIdentityLinkingService = (opts: IdentityResourcesOptions = {}):
|
|
|
129
121
|
},
|
|
130
122
|
|
|
131
123
|
unlinkCredentials: async (details: ProviderProfileDetails): Promise<void> => {
|
|
132
|
-
const ctx = service.ctx as
|
|
124
|
+
const ctx = service.ctx as ServiceContext
|
|
133
125
|
const credsResource = ctx.resource<IdentityCredentialsResource>(AUTH_IDENTITY_CREDENTIALS)
|
|
134
126
|
const cred = await credsResource.load(credentialKeyOf(details))
|
|
135
127
|
if (cred?.id == null) return
|
|
@@ -137,7 +129,7 @@ export const makeIdentityLinkingService = (opts: IdentityResourcesOptions = {}):
|
|
|
137
129
|
},
|
|
138
130
|
|
|
139
131
|
getOwnerProfiles: async (entityId: string): Promise<Profile[]> => {
|
|
140
|
-
const ctx = service.ctx as
|
|
132
|
+
const ctx = service.ctx as ServiceContext
|
|
141
133
|
const { items: profiles } = await ctx.resource<IdentityProfileResource>(AUTH_IDENTITY_PROFILE)
|
|
142
134
|
.list({ entityId, service: app }, { size: 0 })
|
|
143
135
|
const entitySlug = await slugOf(entityId)
|
|
@@ -154,7 +146,7 @@ export const makeIdentityLinkingService = (opts: IdentityResourcesOptions = {}):
|
|
|
154
146
|
},
|
|
155
147
|
|
|
156
148
|
getOwnerCredentials: async (userId: string, entityId?: string, type?: string): Promise<AuthCredentials | undefined> => {
|
|
157
|
-
const ctx = service.ctx as
|
|
149
|
+
const ctx = service.ctx as ServiceContext
|
|
158
150
|
const account = await ctx.resource<IdentityAccountResource>(AUTH_IDENTITY_ACCOUNT).load(userId)
|
|
159
151
|
if (account == null) return undefined
|
|
160
152
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BasicContext } from '@owlmeans/context'
|
|
2
|
+
import type { ServerConfig, ServerContext } from '@owlmeans/server-context'
|
|
3
|
+
import type { OrgEntityRef } from '@owlmeans/auth-common'
|
|
4
|
+
|
|
5
|
+
export type Context = BasicContext<any>
|
|
6
|
+
|
|
7
|
+
export type ResolverContext = ServerContext<ServerConfig>
|
|
8
|
+
|
|
9
|
+
export interface CacheEntry {
|
|
10
|
+
entity: OrgEntityRef | null
|
|
11
|
+
at: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type ServiceContext = ServerContext<ServerConfig>
|