@enbox/dwn-server 0.0.8 → 0.0.9
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/dist/esm/src/admin/admin-store.d.ts +4 -0
- package/dist/esm/src/admin/admin-store.d.ts.map +1 -1
- package/dist/esm/src/admin/admin-store.js +6 -2
- package/dist/esm/src/admin/admin-store.js.map +1 -1
- package/dist/esm/src/connect/connect-server.d.ts +75 -0
- package/dist/esm/src/connect/connect-server.d.ts.map +1 -0
- package/dist/esm/src/{web5-connect/web5-connect-server.js → connect/connect-server.js} +22 -20
- package/dist/esm/src/connect/connect-server.js.map +1 -0
- package/dist/esm/src/connect/sql-ttl-cache.d.ts.map +1 -0
- package/dist/esm/src/connect/sql-ttl-cache.js.map +1 -0
- package/dist/esm/src/http-api.d.ts +2 -2
- package/dist/esm/src/http-api.d.ts.map +1 -1
- package/dist/esm/src/http-api.js +19 -15
- package/dist/esm/src/http-api.js.map +1 -1
- package/package.json +7 -27
- package/src/admin/admin-store.ts +6 -2
- package/src/connect/connect-server.ts +150 -0
- package/src/http-api.ts +19 -15
- package/dist/esm/src/web5-connect/sql-ttl-cache.d.ts.map +0 -1
- package/dist/esm/src/web5-connect/sql-ttl-cache.js.map +0 -1
- package/dist/esm/src/web5-connect/web5-connect-server.d.ts +0 -65
- package/dist/esm/src/web5-connect/web5-connect-server.d.ts.map +0 -1
- package/dist/esm/src/web5-connect/web5-connect-server.js.map +0 -1
- package/src/web5-connect/web5-connect-server.ts +0 -132
- /package/dist/esm/src/{web5-connect → connect}/sql-ttl-cache.d.ts +0 -0
- /package/dist/esm/src/{web5-connect → connect}/sql-ttl-cache.js +0 -0
- /package/src/{web5-connect → connect}/sql-ttl-cache.ts +0 -0
|
@@ -55,6 +55,10 @@ export declare class AdminStore {
|
|
|
55
55
|
getTenantMessageCount(did: string): Promise<number>;
|
|
56
56
|
/**
|
|
57
57
|
* Returns the total data storage in bytes for a tenant.
|
|
58
|
+
*
|
|
59
|
+
* Uses `messageStoreMessages.dataSize` rather than `dataRefs.dataSize` so that
|
|
60
|
+
* **all** data is accounted for — including small payloads (<=30 KB) that the
|
|
61
|
+
* DWN SDK stores inline as `encodedData` and never writes to the data store.
|
|
58
62
|
*/
|
|
59
63
|
getTenantStorageSize(did: string): Promise<number>;
|
|
60
64
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-store.d.ts","sourceRoot":"","sources":["../../../../src/admin/admin-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOpH;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO;IAKP;;;;;OAKG;WACW,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,SAAS,GAAG,UAAU,GAAG,SAAS;IAerF;;;;OAIG;WACW,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,SAAS,GAAG,UAAU;IAQlF;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAa5C;;;;OAIG;IACU,kBAAkB,CAAC,OAAO,CAAC,EAAE;QACxC,MAAM,CAAC,EAAG,MAAM,CAAC;QACjB,KAAK,CAAC,EAAG,MAAM,CAAC;QAChB,MAAM,CAAC,EAAG,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BnD;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAe9C;;OAEG;IACU,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAe9D;;OAEG;IACU,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhE
|
|
1
|
+
{"version":3,"file":"admin-store.d.ts","sourceRoot":"","sources":["../../../../src/admin/admin-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOpH;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO;IAKP;;;;;OAKG;WACW,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,SAAS,GAAG,UAAU,GAAG,SAAS;IAerF;;;;OAIG;WACW,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,SAAS,GAAG,UAAU;IAQlF;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAa5C;;;;OAIG;IACU,kBAAkB,CAAC,OAAO,CAAC,EAAE;QACxC,MAAM,CAAC,EAAG,MAAM,CAAC;QACjB,KAAK,CAAC,EAAG,MAAM,CAAC;QAChB,MAAM,CAAC,EAAG,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BnD;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAe9C;;OAEG;IACU,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAe9D;;OAEG;IACU,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhE;;;;;;OAMG;IACU,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/D;;OAEG;IACU,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgB/D;;;OAGG;IACU,cAAc,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA4ClF;;;OAGG;IACU,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8C1D;;;OAGG;IACU,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAkBvD;;;OAGG;IACU,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpD,SAAS,CAAC,EAAG,MAAM,CAAC;QACpB,MAAM,CAAC,EAAG,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAG,MAAM,CAAC;QACnB,KAAK,CAAC,EAAG,MAAM,CAAC;QAChB,MAAM,CAAC,EAAG,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAyDjE;;OAEG;IACU,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmBlF;;;;;OAKG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCjE;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
|
|
@@ -133,10 +133,14 @@ export class AdminStore {
|
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
135
135
|
* Returns the total data storage in bytes for a tenant.
|
|
136
|
+
*
|
|
137
|
+
* Uses `messageStoreMessages.dataSize` rather than `dataRefs.dataSize` so that
|
|
138
|
+
* **all** data is accounted for — including small payloads (<=30 KB) that the
|
|
139
|
+
* DWN SDK stores inline as `encodedData` and never writes to the data store.
|
|
136
140
|
*/
|
|
137
141
|
async getTenantStorageSize(did) {
|
|
138
142
|
const result = await this.db
|
|
139
|
-
.selectFrom('
|
|
143
|
+
.selectFrom('messageStoreMessages')
|
|
140
144
|
.select(this.db.fn.sum('dataSize').as('totalBytes'))
|
|
141
145
|
.where('tenant', '=', did)
|
|
142
146
|
.executeTakeFirstOrThrow();
|
|
@@ -176,7 +180,7 @@ export class AdminStore {
|
|
|
176
180
|
.select(this.db.fn.countAll().as('count'))
|
|
177
181
|
.executeTakeFirstOrThrow(),
|
|
178
182
|
this.db
|
|
179
|
-
.selectFrom('
|
|
183
|
+
.selectFrom('messageStoreMessages')
|
|
180
184
|
.select(this.db.fn.sum('dataSize').as('totalBytes'))
|
|
181
185
|
.executeTakeFirstOrThrow(),
|
|
182
186
|
this.db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-store.js","sourceRoot":"","sources":["../../../../src/admin/admin-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin-store.js","sourceRoot":"","sources":["../../../../src/admin/admin-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { Dialect } from '@enbox/dwn-sql-store';
|
|
2
|
+
/**
|
|
3
|
+
* The Connect Request object.
|
|
4
|
+
*/
|
|
5
|
+
export type ConnectRequest = any;
|
|
6
|
+
/**
|
|
7
|
+
* The Connect Response object, which is also an OIDC ID token
|
|
8
|
+
*/
|
|
9
|
+
export type ConnectResponse = any;
|
|
10
|
+
/**
|
|
11
|
+
* The result of the setConnectRequest() method.
|
|
12
|
+
*/
|
|
13
|
+
export type SetConnectRequestResult = {
|
|
14
|
+
/**
|
|
15
|
+
* The Request URI that the wallet should use to retrieve the request object.
|
|
16
|
+
*/
|
|
17
|
+
request_uri: string;
|
|
18
|
+
/**
|
|
19
|
+
* The time in seconds that the Request URI is valid for.
|
|
20
|
+
*/
|
|
21
|
+
expires_in: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* The Connect Server is responsible for handling the DWeb Connect flow.
|
|
25
|
+
*/
|
|
26
|
+
export declare class ConnectServer {
|
|
27
|
+
static readonly ttlInSeconds = 600;
|
|
28
|
+
private baseUrl;
|
|
29
|
+
private cache;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new instance of the Connect Server.
|
|
32
|
+
* @param params.baseUrl The the base URL of the connect server including the port.
|
|
33
|
+
* This is given to the Identity Provider (wallet) to fetch the Connect Request object.
|
|
34
|
+
* @param params.sqlDialect The SQL dialect to use for the TTL cache. Must point to a database
|
|
35
|
+
* where server migrations have already been run.
|
|
36
|
+
*/
|
|
37
|
+
static create({ baseUrl, sqlDialect }: {
|
|
38
|
+
baseUrl: string;
|
|
39
|
+
sqlDialect: Dialect;
|
|
40
|
+
}): Promise<ConnectServer>;
|
|
41
|
+
private constructor();
|
|
42
|
+
/**
|
|
43
|
+
* Stores the given Connect Request object, which is also an OAuth 2 Pushed Authorization Request (PAR) object.
|
|
44
|
+
* This is the initial call to the connect server to start the DWeb Connect flow.
|
|
45
|
+
*/
|
|
46
|
+
setConnectRequest(request: ConnectRequest): Promise<SetConnectRequestResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Returns the Connect Request object. The request ID can only be used once.
|
|
49
|
+
*/
|
|
50
|
+
getConnectRequest(requestId: string): Promise<ConnectRequest | undefined>;
|
|
51
|
+
/**
|
|
52
|
+
* Sets the Connect Response object, which is also an OIDC ID token.
|
|
53
|
+
*/
|
|
54
|
+
setConnectResponse(state: string, response: ConnectResponse): Promise<any>;
|
|
55
|
+
/**
|
|
56
|
+
* Gets the Connect Response object. The `state` string can only be used once.
|
|
57
|
+
*/
|
|
58
|
+
getConnectResponse(state: string): Promise<ConnectResponse | undefined>;
|
|
59
|
+
/**
|
|
60
|
+
* Stops the TTL cache cleanup timer. Must be called during shutdown to
|
|
61
|
+
* prevent leaked timers.
|
|
62
|
+
*/
|
|
63
|
+
close(): void;
|
|
64
|
+
}
|
|
65
|
+
/** @deprecated Use {@link ConnectRequest} instead. Will be removed in a future version. */
|
|
66
|
+
export type Web5ConnectRequest = ConnectRequest;
|
|
67
|
+
/** @deprecated Use {@link ConnectResponse} instead. Will be removed in a future version. */
|
|
68
|
+
export type Web5ConnectResponse = ConnectResponse;
|
|
69
|
+
/** @deprecated Use {@link SetConnectRequestResult} instead. Will be removed in a future version. */
|
|
70
|
+
export type SetWeb5ConnectRequestResult = SetConnectRequestResult;
|
|
71
|
+
/** @deprecated Use {@link ConnectServer} instead. Will be removed in a future version. */
|
|
72
|
+
export declare const Web5ConnectServer: typeof ConnectServer;
|
|
73
|
+
/** @deprecated Use {@link ConnectServer} instead. Will be removed in a future version. */
|
|
74
|
+
export type Web5ConnectServer = ConnectServer;
|
|
75
|
+
//# sourceMappingURL=connect-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-server.d.ts","sourceRoot":"","sources":["../../../../src/connect/connect-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAMpD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,gBAAuB,YAAY,OAAO;IAE1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAc;IAE3B;;;;;;OAMG;WACiB,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;QAClD,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,aAAa,CAAC;IAS1B,OAAO;IAMP;;;OAGG;IACU,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAczF;;OAEG;IACU,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IActF;;OAEG;IACU,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvF;;OAEG;IACU,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAcpF;;;OAGG;IACI,KAAK,IAAI,IAAI;CAGrB;AAMD,2FAA2F;AAC3F,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEhD,4FAA4F;AAC5F,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAElD,oGAAoG;AACpG,MAAM,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAElE,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,sBAAgB,CAAC;AAC/C,0FAA0F;AAC1F,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC"}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
import { CryptoUtils } from '@enbox/crypto';
|
|
2
2
|
import { SqlTtlCache } from './sql-ttl-cache.js';
|
|
3
3
|
/**
|
|
4
|
-
* The
|
|
4
|
+
* The Connect Server is responsible for handling the DWeb Connect flow.
|
|
5
5
|
*/
|
|
6
|
-
export class
|
|
6
|
+
export class ConnectServer {
|
|
7
7
|
static ttlInSeconds = 600;
|
|
8
8
|
baseUrl;
|
|
9
9
|
cache;
|
|
10
10
|
/**
|
|
11
|
-
* Creates a new instance of the
|
|
11
|
+
* Creates a new instance of the Connect Server.
|
|
12
12
|
* @param params.baseUrl The the base URL of the connect server including the port.
|
|
13
|
-
* This is given to the Identity Provider (wallet) to fetch the
|
|
13
|
+
* This is given to the Identity Provider (wallet) to fetch the Connect Request object.
|
|
14
14
|
* @param params.sqlDialect The SQL dialect to use for the TTL cache. Must point to a database
|
|
15
15
|
* where server migrations have already been run.
|
|
16
16
|
*/
|
|
17
17
|
static async create({ baseUrl, sqlDialect }) {
|
|
18
|
-
const
|
|
18
|
+
const connectServer = new ConnectServer({ baseUrl });
|
|
19
19
|
// Initialize TTL cache.
|
|
20
|
-
|
|
21
|
-
return
|
|
20
|
+
connectServer.cache = await SqlTtlCache.create(sqlDialect);
|
|
21
|
+
return connectServer;
|
|
22
22
|
}
|
|
23
23
|
constructor({ baseUrl }) {
|
|
24
24
|
this.baseUrl = baseUrl;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* Stores the given
|
|
28
|
-
* This is the initial call to the connect server to start the
|
|
27
|
+
* Stores the given Connect Request object, which is also an OAuth 2 Pushed Authorization Request (PAR) object.
|
|
28
|
+
* This is the initial call to the connect server to start the DWeb Connect flow.
|
|
29
29
|
*/
|
|
30
|
-
async
|
|
30
|
+
async setConnectRequest(request) {
|
|
31
31
|
// Generate a request URI
|
|
32
32
|
const requestId = CryptoUtils.randomUuid();
|
|
33
33
|
const request_uri = `${this.baseUrl}/connect/authorize/${requestId}.jwt`;
|
|
34
34
|
// Store the Request Object.
|
|
35
|
-
this.cache.insert(`request:${requestId}`, request,
|
|
35
|
+
this.cache.insert(`request:${requestId}`, request, ConnectServer.ttlInSeconds);
|
|
36
36
|
return {
|
|
37
37
|
request_uri,
|
|
38
|
-
expires_in:
|
|
38
|
+
expires_in: ConnectServer.ttlInSeconds,
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* Returns the
|
|
42
|
+
* Returns the Connect Request object. The request ID can only be used once.
|
|
43
43
|
*/
|
|
44
|
-
async
|
|
44
|
+
async getConnectRequest(requestId) {
|
|
45
45
|
const request = await this.cache.get(`request:${requestId}`);
|
|
46
46
|
// Delete the Request Object from cache once it has been retrieved.
|
|
47
47
|
// IMPORTANT: only delete if the object exists, otherwise there could be a race condition
|
|
@@ -53,15 +53,15 @@ export class Web5ConnectServer {
|
|
|
53
53
|
return request;
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
|
-
* Sets the
|
|
56
|
+
* Sets the Connect Response object, which is also an OIDC ID token.
|
|
57
57
|
*/
|
|
58
|
-
async
|
|
59
|
-
this.cache.insert(`response:${state}`, response,
|
|
58
|
+
async setConnectResponse(state, response) {
|
|
59
|
+
this.cache.insert(`response:${state}`, response, ConnectServer.ttlInSeconds);
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
* Gets the
|
|
62
|
+
* Gets the Connect Response object. The `state` string can only be used once.
|
|
63
63
|
*/
|
|
64
|
-
async
|
|
64
|
+
async getConnectResponse(state) {
|
|
65
65
|
const response = await this.cache.get(`response:${state}`);
|
|
66
66
|
// Delete the Response object from the cache once it has been retrieved.
|
|
67
67
|
// IMPORTANT: only delete if the object exists, otherwise there could be a race condition
|
|
@@ -80,4 +80,6 @@ export class Web5ConnectServer {
|
|
|
80
80
|
this.cache.close();
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
|
|
83
|
+
/** @deprecated Use {@link ConnectServer} instead. Will be removed in a future version. */
|
|
84
|
+
export const Web5ConnectServer = ConnectServer;
|
|
85
|
+
//# sourceMappingURL=connect-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-server.js","sourceRoot":"","sources":["../../../../src/connect/connect-server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA2BjD;;GAEG;AACH,MAAM,OAAO,aAAa;IACjB,MAAM,CAAU,YAAY,GAAG,GAAG,CAAC;IAElC,OAAO,CAAS;IAChB,KAAK,CAAc;IAE3B;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAG/C;QACC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAErD,wBAAwB;QACxB,aAAa,CAAC,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE3D,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,YAAoB,EAAE,OAAO,EAE5B;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,iBAAiB,CAAC,OAAuB;QACpD,yBAAyB;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,OAAO,sBAAsB,SAAS,MAAM,CAAC;QAEzE,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,SAAS,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAE/E,OAAO;YACL,WAAW;YACX,UAAU,EAAE,aAAa,CAAC,YAAY;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QAE7D,mEAAmE;QACnE,yFAAyF;QACzF,wFAAwF;QACxF,mEAAmE;QACnE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,QAAyB;QACtE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAAC,KAAa;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QAE3D,wEAAwE;QACxE,yFAAyF;QACzF,wFAAwF;QACxF,mEAAmE;QACnE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;;AAgBH,0FAA0F;AAC1F,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-ttl-cache.d.ts","sourceRoot":"","sources":["../../../../src/connect/sql-ttl-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAM;IAEtD,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,YAAY,CAAiB;IAErC,OAAO;IAIP;;OAEG;WACiB,MAAM,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAQrE;;;OAGG;YACW,UAAU;IAaxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;OAGG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3E;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA+B1D;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnD;;;;;OAKG;IACI,KAAK,IAAI,IAAI;CAGrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-ttl-cache.js","sourceRoot":"","sources":["../../../../src/connect/sql-ttl-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,14 @@ import type { RegistrationManager } from './registration/registration-manager.js
|
|
|
12
12
|
import type { RegistrationStore } from './registration/registration-store.js';
|
|
13
13
|
import type { SocketConnection } from './connection/socket-connection.js';
|
|
14
14
|
import { type Dwn } from '@enbox/dwn-sdk-js';
|
|
15
|
-
import {
|
|
15
|
+
import { ConnectServer } from './connect/connect-server.js';
|
|
16
16
|
/** Data attached to each Bun WebSocket via `ws.data`. */
|
|
17
17
|
export interface WsData {
|
|
18
18
|
connection: SocketConnection;
|
|
19
19
|
}
|
|
20
20
|
export declare class HttpApi {
|
|
21
21
|
#private;
|
|
22
|
-
|
|
22
|
+
connectServer: ConnectServer;
|
|
23
23
|
registrationManager: RegistrationManager;
|
|
24
24
|
dwn: Dwn;
|
|
25
25
|
/** Called by WsApi/ConnectionManager when a new WS connection is established. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-api.d.ts","sourceRoot":"","sources":["../../../src/http-api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,OAAO,EAAwB,KAAK,GAAG,EAA6C,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"http-api.d.ts","sourceRoot":"","sources":["../../../src/http-api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,OAAO,EAAwB,KAAK,GAAG,EAA6C,MAAM,mBAAmB,CAAC;AAK9G,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAmB5D,yDAAyD;AACzD,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,qBAAa,OAAO;;IAclB,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,GAAG,EAAE,GAAG,CAAC;IAET,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAE9D,OAAO;WAEa,MAAM,CACxB,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,EAC5E,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,WAAW,EAC9C,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAG,UAAU,CAAC;QACzB,iBAAiB,CAAC,EAAG,iBAAiB,CAAC;QACvC,aAAa,CAAC,EAAG,WAAW,CAAC;QAC7B,iBAAiB,CAAC,EAAG,WAAW,CAAC;QACjC,qBAAqB,CAAC,EAAG,oBAAoB,EAAE,CAAC;QAChD,eAAe,CAAC,EAAG,eAAe,CAAC;QACnC,cAAc,CAAC,EAAG,mBAAmB,CAAC;QACtC,eAAe,CAAC,EAAG,OAAO,CAAC;KAC5B,GACA,OAAO,CAAC,OAAO,CAAC;IAuDnB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAE3B;IAED,IAAI,aAAa,IAAI,WAAW,GAAG,SAAS,CAE3C;IAED,IAAI,iBAAiB,IAAI,WAAW,GAAG,SAAS,CAE/C;IAED,IAAI,qBAAqB,IAAI,oBAAoB,EAAE,CAElD;IAMK,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyGlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA8nB7B"}
|
package/dist/esm/src/http-api.js
CHANGED
|
@@ -7,10 +7,10 @@ import { DataStream, DateSort, ProtocolsQuery, RecordsQuery, RecordsRead } from
|
|
|
7
7
|
import { existsSync, readFileSync } from 'fs';
|
|
8
8
|
import { join, resolve } from 'path';
|
|
9
9
|
import { config } from './config.js';
|
|
10
|
+
import { ConnectServer } from './connect/connect-server.js';
|
|
10
11
|
import { getDialectFromUrl } from './storage.js';
|
|
11
12
|
import { jsonRpcRouter } from './json-rpc-api.js';
|
|
12
13
|
import { validateAdminAuth } from './admin/admin-auth.js';
|
|
13
|
-
import { Web5ConnectServer } from './web5-connect/web5-connect-server.js';
|
|
14
14
|
import { requestCounter, responseHistogram } from './metrics.js';
|
|
15
15
|
/** Property names that must never be used as keys when building objects from user input. */
|
|
16
16
|
const DANGEROUS_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
|
|
@@ -38,7 +38,7 @@ export class HttpApi {
|
|
|
38
38
|
#openAuthHandler;
|
|
39
39
|
#sessionManager;
|
|
40
40
|
#adminUiPath;
|
|
41
|
-
|
|
41
|
+
connectServer;
|
|
42
42
|
registrationManager;
|
|
43
43
|
dwn;
|
|
44
44
|
/** Called by WsApi/ConnectionManager when a new WS connection is established. */
|
|
@@ -86,7 +86,7 @@ export class HttpApi {
|
|
|
86
86
|
// in-memory SQLite so that migrations and the TTL cache share the same
|
|
87
87
|
// database instance). Falls back to creating a dialect from the URL.
|
|
88
88
|
const ttlDialect = options?.ttlCacheDialect ?? getDialectFromUrl(new URL(config.ttlCacheUrl));
|
|
89
|
-
httpApi.
|
|
89
|
+
httpApi.connectServer = await ConnectServer.create({
|
|
90
90
|
baseUrl: config.baseUrl,
|
|
91
91
|
sqlDialect: ttlDialect,
|
|
92
92
|
});
|
|
@@ -157,6 +157,10 @@ export class HttpApi {
|
|
|
157
157
|
response.headers.set('access-control-allow-methods', 'GET, POST, OPTIONS');
|
|
158
158
|
response.headers.set('access-control-allow-headers', '*');
|
|
159
159
|
response.headers.set('access-control-expose-headers', 'dwn-response');
|
|
160
|
+
// Cache preflight responses for 24 hours to reduce OPTIONS round-trips,
|
|
161
|
+
// which is especially important for local DWN discovery that probes
|
|
162
|
+
// multiple ports from the browser (e.g. `probeLocalDwn()` in @enbox/auth).
|
|
163
|
+
response.headers.set('access-control-max-age', '86400');
|
|
160
164
|
}
|
|
161
165
|
// --- Response-time metrics ---
|
|
162
166
|
const elapsed = performance.now() - startTime;
|
|
@@ -200,8 +204,8 @@ export class HttpApi {
|
|
|
200
204
|
if (this.#openAuthHandler) {
|
|
201
205
|
this.#openAuthHandler.destroy();
|
|
202
206
|
}
|
|
203
|
-
if (this.
|
|
204
|
-
this.
|
|
207
|
+
if (this.connectServer) {
|
|
208
|
+
this.connectServer.close();
|
|
205
209
|
}
|
|
206
210
|
if (this.#server) {
|
|
207
211
|
this.#server.stop(true); // close all connections immediately
|
|
@@ -272,7 +276,7 @@ export class HttpApi {
|
|
|
272
276
|
}
|
|
273
277
|
}
|
|
274
278
|
if (method === 'GET' && path === '/') {
|
|
275
|
-
return new Response('please use
|
|
279
|
+
return new Response('please use an enbox client, for example: https://github.com/enboxorg/enbox ', { headers: { 'content-type': 'text/plain' } });
|
|
276
280
|
}
|
|
277
281
|
if (method === 'GET' && path === '/info') {
|
|
278
282
|
return this.#handleInfo();
|
|
@@ -309,8 +313,8 @@ export class HttpApi {
|
|
|
309
313
|
if (registrationResponse) {
|
|
310
314
|
return registrationResponse;
|
|
311
315
|
}
|
|
312
|
-
// ---
|
|
313
|
-
const connectResponse = await this.#
|
|
316
|
+
// --- Connect routes ---
|
|
317
|
+
const connectResponse = await this.#matchConnectRoutes(req, path, method);
|
|
314
318
|
if (connectResponse) {
|
|
315
319
|
return connectResponse;
|
|
316
320
|
}
|
|
@@ -674,9 +678,9 @@ export class HttpApi {
|
|
|
674
678
|
return null;
|
|
675
679
|
}
|
|
676
680
|
// ---------------------------------------------------------------------------
|
|
677
|
-
//
|
|
681
|
+
// Connect routes
|
|
678
682
|
// ---------------------------------------------------------------------------
|
|
679
|
-
async #
|
|
683
|
+
async #matchConnectRoutes(req, path, method) {
|
|
680
684
|
// POST /connect/par
|
|
681
685
|
if (method === 'POST' && path === '/connect/par') {
|
|
682
686
|
log.info('Storing Pushed Authorization Request (PAR) request...');
|
|
@@ -693,7 +697,7 @@ export class HttpApi {
|
|
|
693
697
|
status: { code: 400, message: 'Bad Request: \'request_uri\' parameter is not allowed in PAR' },
|
|
694
698
|
}, { status: 400 });
|
|
695
699
|
}
|
|
696
|
-
const result = await this.
|
|
700
|
+
const result = await this.connectServer.setConnectRequest(body.request);
|
|
697
701
|
return Response.json(result, { status: 201 });
|
|
698
702
|
}
|
|
699
703
|
// GET /connect/authorize/:requestId.jwt
|
|
@@ -701,8 +705,8 @@ export class HttpApi {
|
|
|
701
705
|
const match = path.match(/^\/connect\/authorize\/([^/]+)\.jwt$/);
|
|
702
706
|
if (match && method === 'GET') {
|
|
703
707
|
const requestId = match[1];
|
|
704
|
-
log.info(`Retrieving
|
|
705
|
-
const requestObjectJwt = await this.
|
|
708
|
+
log.info(`Retrieving Connect Request object of ID: ${requestId}...`);
|
|
709
|
+
const requestObjectJwt = await this.connectServer.getConnectRequest(requestId);
|
|
706
710
|
if (!requestObjectJwt) {
|
|
707
711
|
return Response.json({
|
|
708
712
|
ok: false,
|
|
@@ -726,7 +730,7 @@ export class HttpApi {
|
|
|
726
730
|
const idToken = body.id_token;
|
|
727
731
|
const state = body.state;
|
|
728
732
|
if (idToken !== undefined && state != undefined) {
|
|
729
|
-
await this.
|
|
733
|
+
await this.connectServer.setConnectResponse(state, idToken);
|
|
730
734
|
return Response.json({
|
|
731
735
|
ok: true,
|
|
732
736
|
status: { code: 201, message: 'Created' },
|
|
@@ -745,7 +749,7 @@ export class HttpApi {
|
|
|
745
749
|
if (match && method === 'GET') {
|
|
746
750
|
const state = match[1];
|
|
747
751
|
log.info(`Retrieving ID token for state: ${state}...`);
|
|
748
|
-
const idToken = await this.
|
|
752
|
+
const idToken = await this.connectServer.getConnectResponse(state);
|
|
749
753
|
if (!idToken) {
|
|
750
754
|
return Response.json({
|
|
751
755
|
ok: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-api.js","sourceRoot":"","sources":["../../../src/http-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-api.js","sourceRoot":"","sources":["../../../src/http-api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enbox/dwn-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.9",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@enbox/common": "0.0.
|
|
34
|
-
"@enbox/crypto": "0.0.
|
|
35
|
-
"@enbox/dids": "0.0.
|
|
36
|
-
"@enbox/dwn-clients": "0.0
|
|
37
|
-
"@enbox/dwn-sdk-js": "0.1.
|
|
38
|
-
"@enbox/dwn-sql-store": "0.0.
|
|
33
|
+
"@enbox/common": "0.0.7",
|
|
34
|
+
"@enbox/crypto": "0.0.8",
|
|
35
|
+
"@enbox/dids": "0.0.9",
|
|
36
|
+
"@enbox/dwn-clients": "0.1.0",
|
|
37
|
+
"@enbox/dwn-sdk-js": "0.1.2",
|
|
38
|
+
"@enbox/dwn-sql-store": "0.0.11",
|
|
39
39
|
"@nats-io/jetstream": "^3.3.1",
|
|
40
40
|
"@nats-io/transport-node": "^3.3.1",
|
|
41
41
|
"@simplewebauthn/server": "^13.2.3",
|
|
@@ -63,19 +63,9 @@
|
|
|
63
63
|
"@typescript-eslint/eslint-plugin": "8.32.1",
|
|
64
64
|
"@typescript-eslint/parser": "8.32.1",
|
|
65
65
|
"bun-types": "^1.2.4",
|
|
66
|
-
"crypto-browserify": "^3.12.0",
|
|
67
|
-
"esbuild": "0.16.17",
|
|
68
66
|
"eslint": "9.7.0",
|
|
69
67
|
"eslint-plugin-todo-plz": "^1.3.0",
|
|
70
|
-
"http-proxy": "^1.18.1",
|
|
71
|
-
"husky": "^8.0.0",
|
|
72
|
-
"karma": "^6.4.2",
|
|
73
|
-
"karma-chrome-launcher": "^3.2.0",
|
|
74
|
-
"karma-esbuild": "2.2.5",
|
|
75
|
-
"karma-mocha": "^2.0.1",
|
|
76
|
-
"lint-staged": "^15.2.9",
|
|
77
68
|
"multiformats": "11.0.2",
|
|
78
|
-
"puppeteer": "^22.11.2",
|
|
79
69
|
"rimraf": "^5.0.0",
|
|
80
70
|
"sinon": "17.0.1",
|
|
81
71
|
"typescript": "5.5.4"
|
|
@@ -89,15 +79,5 @@
|
|
|
89
79
|
"test:node": "bun test .test.ts",
|
|
90
80
|
"test:node:coverage": "bun test --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage .test.ts",
|
|
91
81
|
"server": "bun run build:esm && bun dist/esm/src/main.js"
|
|
92
|
-
},
|
|
93
|
-
"husky": {
|
|
94
|
-
"hooks": {
|
|
95
|
-
"pre-commit": "lint-staged"
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
"lint-staged": {
|
|
99
|
-
"*.{js,ts}": [
|
|
100
|
-
"eslint --fix"
|
|
101
|
-
]
|
|
102
82
|
}
|
|
103
83
|
}
|
package/src/admin/admin-store.ts
CHANGED
|
@@ -161,10 +161,14 @@ export class AdminStore {
|
|
|
161
161
|
|
|
162
162
|
/**
|
|
163
163
|
* Returns the total data storage in bytes for a tenant.
|
|
164
|
+
*
|
|
165
|
+
* Uses `messageStoreMessages.dataSize` rather than `dataRefs.dataSize` so that
|
|
166
|
+
* **all** data is accounted for — including small payloads (<=30 KB) that the
|
|
167
|
+
* DWN SDK stores inline as `encodedData` and never writes to the data store.
|
|
164
168
|
*/
|
|
165
169
|
public async getTenantStorageSize(did: string): Promise<number> {
|
|
166
170
|
const result = await this.db
|
|
167
|
-
.selectFrom('
|
|
171
|
+
.selectFrom('messageStoreMessages')
|
|
168
172
|
.select(this.db.fn.sum<number>('dataSize').as('totalBytes'))
|
|
169
173
|
.where('tenant', '=', did)
|
|
170
174
|
.executeTakeFirstOrThrow();
|
|
@@ -212,7 +216,7 @@ export class AdminStore {
|
|
|
212
216
|
.select(this.db.fn.countAll<number>().as('count'))
|
|
213
217
|
.executeTakeFirstOrThrow(),
|
|
214
218
|
this.db
|
|
215
|
-
.selectFrom('
|
|
219
|
+
.selectFrom('messageStoreMessages')
|
|
216
220
|
.select(this.db.fn.sum<number>('dataSize').as('totalBytes'))
|
|
217
221
|
.executeTakeFirstOrThrow(),
|
|
218
222
|
this.db
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { Dialect } from '@enbox/dwn-sql-store';
|
|
2
|
+
|
|
3
|
+
import { CryptoUtils } from '@enbox/crypto';
|
|
4
|
+
|
|
5
|
+
import { SqlTtlCache } from './sql-ttl-cache.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The Connect Request object.
|
|
9
|
+
*/
|
|
10
|
+
export type ConnectRequest = any; // TODO: define type in common repo for reuse (https://github.com/enboxorg/enbox/issues/138)
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The Connect Response object, which is also an OIDC ID token
|
|
14
|
+
*/
|
|
15
|
+
export type ConnectResponse = any; // TODO: define type in common repo for reuse (https://github.com/enboxorg/enbox/issues/138)
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The result of the setConnectRequest() method.
|
|
19
|
+
*/
|
|
20
|
+
export type SetConnectRequestResult = {
|
|
21
|
+
/**
|
|
22
|
+
* The Request URI that the wallet should use to retrieve the request object.
|
|
23
|
+
*/
|
|
24
|
+
request_uri: string;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The time in seconds that the Request URI is valid for.
|
|
28
|
+
*/
|
|
29
|
+
expires_in: number;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The Connect Server is responsible for handling the DWeb Connect flow.
|
|
34
|
+
*/
|
|
35
|
+
export class ConnectServer {
|
|
36
|
+
public static readonly ttlInSeconds = 600;
|
|
37
|
+
|
|
38
|
+
private baseUrl: string;
|
|
39
|
+
private cache: SqlTtlCache;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new instance of the Connect Server.
|
|
43
|
+
* @param params.baseUrl The the base URL of the connect server including the port.
|
|
44
|
+
* This is given to the Identity Provider (wallet) to fetch the Connect Request object.
|
|
45
|
+
* @param params.sqlDialect The SQL dialect to use for the TTL cache. Must point to a database
|
|
46
|
+
* where server migrations have already been run.
|
|
47
|
+
*/
|
|
48
|
+
public static async create({ baseUrl, sqlDialect }: {
|
|
49
|
+
baseUrl: string;
|
|
50
|
+
sqlDialect: Dialect;
|
|
51
|
+
}): Promise<ConnectServer> {
|
|
52
|
+
const connectServer = new ConnectServer({ baseUrl });
|
|
53
|
+
|
|
54
|
+
// Initialize TTL cache.
|
|
55
|
+
connectServer.cache = await SqlTtlCache.create(sqlDialect);
|
|
56
|
+
|
|
57
|
+
return connectServer;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private constructor({ baseUrl }: {
|
|
61
|
+
baseUrl: string;
|
|
62
|
+
}) {
|
|
63
|
+
this.baseUrl = baseUrl;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Stores the given Connect Request object, which is also an OAuth 2 Pushed Authorization Request (PAR) object.
|
|
68
|
+
* This is the initial call to the connect server to start the DWeb Connect flow.
|
|
69
|
+
*/
|
|
70
|
+
public async setConnectRequest(request: ConnectRequest): Promise<SetConnectRequestResult> {
|
|
71
|
+
// Generate a request URI
|
|
72
|
+
const requestId = CryptoUtils.randomUuid();
|
|
73
|
+
const request_uri = `${this.baseUrl}/connect/authorize/${requestId}.jwt`;
|
|
74
|
+
|
|
75
|
+
// Store the Request Object.
|
|
76
|
+
this.cache.insert(`request:${requestId}`, request, ConnectServer.ttlInSeconds);
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
request_uri,
|
|
80
|
+
expires_in: ConnectServer.ttlInSeconds,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Returns the Connect Request object. The request ID can only be used once.
|
|
86
|
+
*/
|
|
87
|
+
public async getConnectRequest(requestId: string): Promise<ConnectRequest | undefined> {
|
|
88
|
+
const request = await this.cache.get(`request:${requestId}`);
|
|
89
|
+
|
|
90
|
+
// Delete the Request Object from cache once it has been retrieved.
|
|
91
|
+
// IMPORTANT: only delete if the object exists, otherwise there could be a race condition
|
|
92
|
+
// where the object does not exist in this call but becomes available immediately after,
|
|
93
|
+
// we would end up deleting it before it is successfully retrieved.
|
|
94
|
+
if (request !== undefined) {
|
|
95
|
+
this.cache.delete(`request:${requestId}`);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return request;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Sets the Connect Response object, which is also an OIDC ID token.
|
|
103
|
+
*/
|
|
104
|
+
public async setConnectResponse(state: string, response: ConnectResponse): Promise<any> {
|
|
105
|
+
this.cache.insert(`response:${state}`, response, ConnectServer.ttlInSeconds);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Gets the Connect Response object. The `state` string can only be used once.
|
|
110
|
+
*/
|
|
111
|
+
public async getConnectResponse(state: string): Promise<ConnectResponse | undefined> {
|
|
112
|
+
const response = await this.cache.get(`response:${state}`);
|
|
113
|
+
|
|
114
|
+
// Delete the Response object from the cache once it has been retrieved.
|
|
115
|
+
// IMPORTANT: only delete if the object exists, otherwise there could be a race condition
|
|
116
|
+
// where the object does not exist in this call but becomes available immediately after,
|
|
117
|
+
// we would end up deleting it before it is successfully retrieved.
|
|
118
|
+
if (response !== undefined) {
|
|
119
|
+
this.cache.delete(`response:${state}`);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return response;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Stops the TTL cache cleanup timer. Must be called during shutdown to
|
|
127
|
+
* prevent leaked timers.
|
|
128
|
+
*/
|
|
129
|
+
public close(): void {
|
|
130
|
+
this.cache.close();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
// Deprecated aliases — migration aid
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
|
|
138
|
+
/** @deprecated Use {@link ConnectRequest} instead. Will be removed in a future version. */
|
|
139
|
+
export type Web5ConnectRequest = ConnectRequest;
|
|
140
|
+
|
|
141
|
+
/** @deprecated Use {@link ConnectResponse} instead. Will be removed in a future version. */
|
|
142
|
+
export type Web5ConnectResponse = ConnectResponse;
|
|
143
|
+
|
|
144
|
+
/** @deprecated Use {@link SetConnectRequestResult} instead. Will be removed in a future version. */
|
|
145
|
+
export type SetWeb5ConnectRequestResult = SetConnectRequestResult;
|
|
146
|
+
|
|
147
|
+
/** @deprecated Use {@link ConnectServer} instead. Will be removed in a future version. */
|
|
148
|
+
export const Web5ConnectServer = ConnectServer;
|
|
149
|
+
/** @deprecated Use {@link ConnectServer} instead. Will be removed in a future version. */
|
|
150
|
+
export type Web5ConnectServer = ConnectServer;
|
package/src/http-api.ts
CHANGED
|
@@ -30,10 +30,10 @@ import { existsSync, readFileSync } from 'fs';
|
|
|
30
30
|
import { join, resolve } from 'path';
|
|
31
31
|
|
|
32
32
|
import { config } from './config.js';
|
|
33
|
+
import { ConnectServer } from './connect/connect-server.js';
|
|
33
34
|
import { getDialectFromUrl } from './storage.js';
|
|
34
35
|
import { jsonRpcRouter } from './json-rpc-api.js';
|
|
35
36
|
import { validateAdminAuth } from './admin/admin-auth.js';
|
|
36
|
-
import { Web5ConnectServer } from './web5-connect/web5-connect-server.js';
|
|
37
37
|
import { requestCounter, responseHistogram } from './metrics.js';
|
|
38
38
|
|
|
39
39
|
/** Property names that must never be used as keys when building objects from user input. */
|
|
@@ -68,7 +68,7 @@ export class HttpApi {
|
|
|
68
68
|
#openAuthHandler: OpenAuthHandler | undefined;
|
|
69
69
|
#sessionManager: AdminSessionManager | undefined;
|
|
70
70
|
#adminUiPath: string | undefined;
|
|
71
|
-
|
|
71
|
+
connectServer: ConnectServer;
|
|
72
72
|
registrationManager: RegistrationManager;
|
|
73
73
|
dwn: Dwn;
|
|
74
74
|
|
|
@@ -137,7 +137,7 @@ export class HttpApi {
|
|
|
137
137
|
// in-memory SQLite so that migrations and the TTL cache share the same
|
|
138
138
|
// database instance). Falls back to creating a dialect from the URL.
|
|
139
139
|
const ttlDialect = options?.ttlCacheDialect ?? getDialectFromUrl(new URL(config.ttlCacheUrl));
|
|
140
|
-
httpApi.
|
|
140
|
+
httpApi.connectServer = await ConnectServer.create({
|
|
141
141
|
baseUrl : config.baseUrl,
|
|
142
142
|
sqlDialect : ttlDialect,
|
|
143
143
|
});
|
|
@@ -223,6 +223,10 @@ export class HttpApi {
|
|
|
223
223
|
response.headers.set('access-control-allow-methods', 'GET, POST, OPTIONS');
|
|
224
224
|
response.headers.set('access-control-allow-headers', '*');
|
|
225
225
|
response.headers.set('access-control-expose-headers', 'dwn-response');
|
|
226
|
+
// Cache preflight responses for 24 hours to reduce OPTIONS round-trips,
|
|
227
|
+
// which is especially important for local DWN discovery that probes
|
|
228
|
+
// multiple ports from the browser (e.g. `probeLocalDwn()` in @enbox/auth).
|
|
229
|
+
response.headers.set('access-control-max-age', '86400');
|
|
226
230
|
}
|
|
227
231
|
|
|
228
232
|
// --- Response-time metrics ---
|
|
@@ -270,8 +274,8 @@ export class HttpApi {
|
|
|
270
274
|
if (this.#openAuthHandler) {
|
|
271
275
|
this.#openAuthHandler.destroy();
|
|
272
276
|
}
|
|
273
|
-
if (this.
|
|
274
|
-
this.
|
|
277
|
+
if (this.connectServer) {
|
|
278
|
+
this.connectServer.close();
|
|
275
279
|
}
|
|
276
280
|
if (this.#server) {
|
|
277
281
|
this.#server.stop(true); // close all connections immediately
|
|
@@ -353,7 +357,7 @@ export class HttpApi {
|
|
|
353
357
|
|
|
354
358
|
if (method === 'GET' && path === '/') {
|
|
355
359
|
return new Response(
|
|
356
|
-
'please use
|
|
360
|
+
'please use an enbox client, for example: https://github.com/enboxorg/enbox ',
|
|
357
361
|
{ headers: { 'content-type': 'text/plain' } },
|
|
358
362
|
);
|
|
359
363
|
}
|
|
@@ -399,8 +403,8 @@ export class HttpApi {
|
|
|
399
403
|
return registrationResponse;
|
|
400
404
|
}
|
|
401
405
|
|
|
402
|
-
// ---
|
|
403
|
-
const connectResponse = await this.#
|
|
406
|
+
// --- Connect routes ---
|
|
407
|
+
const connectResponse = await this.#matchConnectRoutes(req, path, method);
|
|
404
408
|
if (connectResponse) {
|
|
405
409
|
return connectResponse;
|
|
406
410
|
}
|
|
@@ -806,10 +810,10 @@ export class HttpApi {
|
|
|
806
810
|
}
|
|
807
811
|
|
|
808
812
|
// ---------------------------------------------------------------------------
|
|
809
|
-
//
|
|
813
|
+
// Connect routes
|
|
810
814
|
// ---------------------------------------------------------------------------
|
|
811
815
|
|
|
812
|
-
async #
|
|
816
|
+
async #matchConnectRoutes(
|
|
813
817
|
req: Request, path: string, method: string
|
|
814
818
|
): Promise<Response | null> {
|
|
815
819
|
// POST /connect/par
|
|
@@ -831,7 +835,7 @@ export class HttpApi {
|
|
|
831
835
|
}, { status: 400 });
|
|
832
836
|
}
|
|
833
837
|
|
|
834
|
-
const result = await this.
|
|
838
|
+
const result = await this.connectServer.setConnectRequest(body.request);
|
|
835
839
|
return Response.json(result, { status: 201 });
|
|
836
840
|
}
|
|
837
841
|
|
|
@@ -840,9 +844,9 @@ export class HttpApi {
|
|
|
840
844
|
const match = path.match(/^\/connect\/authorize\/([^/]+)\.jwt$/);
|
|
841
845
|
if (match && method === 'GET') {
|
|
842
846
|
const requestId = match[1];
|
|
843
|
-
log.info(`Retrieving
|
|
847
|
+
log.info(`Retrieving Connect Request object of ID: ${requestId}...`);
|
|
844
848
|
|
|
845
|
-
const requestObjectJwt = await this.
|
|
849
|
+
const requestObjectJwt = await this.connectServer.getConnectRequest(requestId);
|
|
846
850
|
if (!requestObjectJwt) {
|
|
847
851
|
return Response.json({
|
|
848
852
|
ok : false,
|
|
@@ -867,7 +871,7 @@ export class HttpApi {
|
|
|
867
871
|
const state = body.state;
|
|
868
872
|
|
|
869
873
|
if (idToken !== undefined && state != undefined) {
|
|
870
|
-
await this.
|
|
874
|
+
await this.connectServer.setConnectResponse(state, idToken);
|
|
871
875
|
return Response.json({
|
|
872
876
|
ok : true,
|
|
873
877
|
status : { code: 201, message: 'Created' },
|
|
@@ -887,7 +891,7 @@ export class HttpApi {
|
|
|
887
891
|
const state = match[1];
|
|
888
892
|
log.info(`Retrieving ID token for state: ${state}...`);
|
|
889
893
|
|
|
890
|
-
const idToken = await this.
|
|
894
|
+
const idToken = await this.connectServer.getConnectResponse(state);
|
|
891
895
|
if (!idToken) {
|
|
892
896
|
return Response.json({
|
|
893
897
|
ok : false,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sql-ttl-cache.d.ts","sourceRoot":"","sources":["../../../../src/web5-connect/sql-ttl-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAM;IAEtD,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,YAAY,CAAiB;IAErC,OAAO;IAIP;;OAEG;WACiB,MAAM,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAQrE;;;OAGG;YACW,UAAU;IAaxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;OAGG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3E;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA+B1D;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnD;;;;;OAKG;IACI,KAAK,IAAI,IAAI;CAGrB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sql-ttl-cache.js","sourceRoot":"","sources":["../../../../src/web5-connect/sql-ttl-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import type { Dialect } from '@enbox/dwn-sql-store';
|
|
2
|
-
/**
|
|
3
|
-
* The Web5 Connect Request object.
|
|
4
|
-
*/
|
|
5
|
-
export type Web5ConnectRequest = any;
|
|
6
|
-
/**
|
|
7
|
-
* The Web5 Connect Response object, which is also an OIDC ID token
|
|
8
|
-
*/
|
|
9
|
-
export type Web5ConnectResponse = any;
|
|
10
|
-
/**
|
|
11
|
-
* The result of the setWeb5ConnectRequest() method.
|
|
12
|
-
*/
|
|
13
|
-
export type SetWeb5ConnectRequestResult = {
|
|
14
|
-
/**
|
|
15
|
-
* The Request URI that the wallet should use to retrieve the request object.
|
|
16
|
-
*/
|
|
17
|
-
request_uri: string;
|
|
18
|
-
/**
|
|
19
|
-
* The time in seconds that the Request URI is valid for.
|
|
20
|
-
*/
|
|
21
|
-
expires_in: number;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* The Web5 Connect Server is responsible for handling the Web5 Connect flow.
|
|
25
|
-
*/
|
|
26
|
-
export declare class Web5ConnectServer {
|
|
27
|
-
static readonly ttlInSeconds = 600;
|
|
28
|
-
private baseUrl;
|
|
29
|
-
private cache;
|
|
30
|
-
/**
|
|
31
|
-
* Creates a new instance of the Web5 Connect Server.
|
|
32
|
-
* @param params.baseUrl The the base URL of the connect server including the port.
|
|
33
|
-
* This is given to the Identity Provider (wallet) to fetch the Web5 Connect Request object.
|
|
34
|
-
* @param params.sqlDialect The SQL dialect to use for the TTL cache. Must point to a database
|
|
35
|
-
* where server migrations have already been run.
|
|
36
|
-
*/
|
|
37
|
-
static create({ baseUrl, sqlDialect }: {
|
|
38
|
-
baseUrl: string;
|
|
39
|
-
sqlDialect: Dialect;
|
|
40
|
-
}): Promise<Web5ConnectServer>;
|
|
41
|
-
private constructor();
|
|
42
|
-
/**
|
|
43
|
-
* Stores the given Web5 Connect Request object, which is also an OAuth 2 Pushed Authorization Request (PAR) object.
|
|
44
|
-
* This is the initial call to the connect server to start the Web5 Connect flow.
|
|
45
|
-
*/
|
|
46
|
-
setWeb5ConnectRequest(request: Web5ConnectRequest): Promise<SetWeb5ConnectRequestResult>;
|
|
47
|
-
/**
|
|
48
|
-
* Returns the Web5 Connect Request object. The request ID can only be used once.
|
|
49
|
-
*/
|
|
50
|
-
getWeb5ConnectRequest(requestId: string): Promise<Web5ConnectRequest | undefined>;
|
|
51
|
-
/**
|
|
52
|
-
* Sets the Web5 Connect Response object, which is also an OIDC ID token.
|
|
53
|
-
*/
|
|
54
|
-
setWeb5ConnectResponse(state: string, response: Web5ConnectResponse): Promise<any>;
|
|
55
|
-
/**
|
|
56
|
-
* Gets the Web5 Connect Response object. The `state` string can only be used once.
|
|
57
|
-
*/
|
|
58
|
-
getWeb5ConnectResponse(state: string): Promise<Web5ConnectResponse | undefined>;
|
|
59
|
-
/**
|
|
60
|
-
* Stops the TTL cache cleanup timer. Must be called during shutdown to
|
|
61
|
-
* prevent leaked timers.
|
|
62
|
-
*/
|
|
63
|
-
close(): void;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=web5-connect-server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web5-connect-server.d.ts","sourceRoot":"","sources":["../../../../src/web5-connect/web5-connect-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAMpD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,gBAAuB,YAAY,OAAO;IAE1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAc;IAE3B;;;;;;OAMG;WACiB,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;QAClD,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAS9B,OAAO;IAMP;;;OAGG;IACU,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAcrG;;OAEG;IACU,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAc9F;;OAEG;IACU,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAI/F;;OAEG;IACU,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAc5F;;;OAGG;IACI,KAAK,IAAI,IAAI;CAGrB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web5-connect-server.js","sourceRoot":"","sources":["../../../../src/web5-connect/web5-connect-server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA2BjD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACrB,MAAM,CAAU,YAAY,GAAG,GAAG,CAAC;IAElC,OAAO,CAAS;IAChB,KAAK,CAAc;IAE3B;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAG/C;QACC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAE7D,wBAAwB;QACxB,iBAAiB,CAAC,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE/D,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,YAAoB,EAAE,OAAO,EAE5B;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,qBAAqB,CAAC,OAA2B;QAC5D,yBAAyB;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,OAAO,sBAAsB,SAAS,MAAM,CAAC;QAEzE,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,SAAS,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEnF,OAAO;YACL,WAAW;YACX,UAAU,EAAE,iBAAiB,CAAC,YAAY;SAC3C,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QAE7D,mEAAmE;QACnE,yFAAyF;QACzF,wFAAwF;QACxF,mEAAmE;QACnE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sBAAsB,CAAC,KAAa,EAAE,QAA6B;QAC9E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sBAAsB,CAAC,KAAa;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QAE3D,wEAAwE;QACxE,yFAAyF;QACzF,wFAAwF;QACxF,mEAAmE;QACnE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import type { Dialect } from '@enbox/dwn-sql-store';
|
|
2
|
-
|
|
3
|
-
import { CryptoUtils } from '@enbox/crypto';
|
|
4
|
-
|
|
5
|
-
import { SqlTtlCache } from './sql-ttl-cache.js';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The Web5 Connect Request object.
|
|
9
|
-
*/
|
|
10
|
-
export type Web5ConnectRequest = any; // TODO: define type in common repo for reuse (https://github.com/enboxorg/enbox/issues/138)
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* The Web5 Connect Response object, which is also an OIDC ID token
|
|
14
|
-
*/
|
|
15
|
-
export type Web5ConnectResponse = any; // TODO: define type in common repo for reuse (https://github.com/enboxorg/enbox/issues/138)
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* The result of the setWeb5ConnectRequest() method.
|
|
19
|
-
*/
|
|
20
|
-
export type SetWeb5ConnectRequestResult = {
|
|
21
|
-
/**
|
|
22
|
-
* The Request URI that the wallet should use to retrieve the request object.
|
|
23
|
-
*/
|
|
24
|
-
request_uri: string;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* The time in seconds that the Request URI is valid for.
|
|
28
|
-
*/
|
|
29
|
-
expires_in: number;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* The Web5 Connect Server is responsible for handling the Web5 Connect flow.
|
|
34
|
-
*/
|
|
35
|
-
export class Web5ConnectServer {
|
|
36
|
-
public static readonly ttlInSeconds = 600;
|
|
37
|
-
|
|
38
|
-
private baseUrl: string;
|
|
39
|
-
private cache: SqlTtlCache;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Creates a new instance of the Web5 Connect Server.
|
|
43
|
-
* @param params.baseUrl The the base URL of the connect server including the port.
|
|
44
|
-
* This is given to the Identity Provider (wallet) to fetch the Web5 Connect Request object.
|
|
45
|
-
* @param params.sqlDialect The SQL dialect to use for the TTL cache. Must point to a database
|
|
46
|
-
* where server migrations have already been run.
|
|
47
|
-
*/
|
|
48
|
-
public static async create({ baseUrl, sqlDialect }: {
|
|
49
|
-
baseUrl: string;
|
|
50
|
-
sqlDialect: Dialect;
|
|
51
|
-
}): Promise<Web5ConnectServer> {
|
|
52
|
-
const web5ConnectServer = new Web5ConnectServer({ baseUrl });
|
|
53
|
-
|
|
54
|
-
// Initialize TTL cache.
|
|
55
|
-
web5ConnectServer.cache = await SqlTtlCache.create(sqlDialect);
|
|
56
|
-
|
|
57
|
-
return web5ConnectServer;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
private constructor({ baseUrl }: {
|
|
61
|
-
baseUrl: string;
|
|
62
|
-
}) {
|
|
63
|
-
this.baseUrl = baseUrl;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Stores the given Web5 Connect Request object, which is also an OAuth 2 Pushed Authorization Request (PAR) object.
|
|
68
|
-
* This is the initial call to the connect server to start the Web5 Connect flow.
|
|
69
|
-
*/
|
|
70
|
-
public async setWeb5ConnectRequest(request: Web5ConnectRequest): Promise<SetWeb5ConnectRequestResult> {
|
|
71
|
-
// Generate a request URI
|
|
72
|
-
const requestId = CryptoUtils.randomUuid();
|
|
73
|
-
const request_uri = `${this.baseUrl}/connect/authorize/${requestId}.jwt`;
|
|
74
|
-
|
|
75
|
-
// Store the Request Object.
|
|
76
|
-
this.cache.insert(`request:${requestId}`, request, Web5ConnectServer.ttlInSeconds);
|
|
77
|
-
|
|
78
|
-
return {
|
|
79
|
-
request_uri,
|
|
80
|
-
expires_in: Web5ConnectServer.ttlInSeconds,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Returns the Web5 Connect Request object. The request ID can only be used once.
|
|
86
|
-
*/
|
|
87
|
-
public async getWeb5ConnectRequest(requestId: string): Promise<Web5ConnectRequest | undefined> {
|
|
88
|
-
const request = await this.cache.get(`request:${requestId}`);
|
|
89
|
-
|
|
90
|
-
// Delete the Request Object from cache once it has been retrieved.
|
|
91
|
-
// IMPORTANT: only delete if the object exists, otherwise there could be a race condition
|
|
92
|
-
// where the object does not exist in this call but becomes available immediately after,
|
|
93
|
-
// we would end up deleting it before it is successfully retrieved.
|
|
94
|
-
if (request !== undefined) {
|
|
95
|
-
this.cache.delete(`request:${requestId}`);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return request;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Sets the Web5 Connect Response object, which is also an OIDC ID token.
|
|
103
|
-
*/
|
|
104
|
-
public async setWeb5ConnectResponse(state: string, response: Web5ConnectResponse): Promise<any> {
|
|
105
|
-
this.cache.insert(`response:${state}`, response, Web5ConnectServer.ttlInSeconds);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Gets the Web5 Connect Response object. The `state` string can only be used once.
|
|
110
|
-
*/
|
|
111
|
-
public async getWeb5ConnectResponse(state: string): Promise<Web5ConnectResponse | undefined> {
|
|
112
|
-
const response = await this.cache.get(`response:${state}`);
|
|
113
|
-
|
|
114
|
-
// Delete the Response object from the cache once it has been retrieved.
|
|
115
|
-
// IMPORTANT: only delete if the object exists, otherwise there could be a race condition
|
|
116
|
-
// where the object does not exist in this call but becomes available immediately after,
|
|
117
|
-
// we would end up deleting it before it is successfully retrieved.
|
|
118
|
-
if (response !== undefined) {
|
|
119
|
-
this.cache.delete(`response:${state}`);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return response;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Stops the TTL cache cleanup timer. Must be called during shutdown to
|
|
127
|
-
* prevent leaked timers.
|
|
128
|
-
*/
|
|
129
|
-
public close(): void {
|
|
130
|
-
this.cache.close();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|