@peerbit/identity-access-controller 3.0.38 → 3.0.40-0691c73
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/{lib/esm → dist/src}/access.d.ts +4 -2
- package/dist/src/access.d.ts.map +1 -0
- package/{lib/esm → dist/src}/access.js +5 -3
- package/dist/src/access.js.map +1 -0
- package/{lib/esm → dist/src}/acl-db.d.ts +6 -5
- package/dist/src/acl-db.d.ts.map +1 -0
- package/{lib/esm → dist/src}/acl-db.js +41 -9
- package/dist/src/acl-db.js.map +1 -0
- package/{lib/esm → dist/src}/condition.d.ts +2 -1
- package/dist/src/condition.d.ts.map +1 -0
- package/{lib/esm → dist/src}/condition.js +1 -0
- package/dist/src/condition.js.map +1 -0
- package/{lib/esm → dist/src}/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/package.json +66 -40
- package/src/access.ts +4 -3
- package/src/acl-db.ts +52 -18
- package/src/condition.ts +1 -1
- package/lib/esm/access.js.map +0 -1
- package/lib/esm/acl-db.js.map +0 -1
- package/lib/esm/condition.js.map +0 -1
- /package/{lib/esm → dist/src}/index.js +0 -0
- /package/{lib/esm → dist/src}/index.js.map +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccessCondition } from "./condition";
|
|
1
|
+
import { AccessCondition } from "./condition.js";
|
|
2
2
|
export declare enum AccessType {
|
|
3
3
|
Any = 0,
|
|
4
4
|
Read = 1,
|
|
@@ -6,9 +6,10 @@ export declare enum AccessType {
|
|
|
6
6
|
}
|
|
7
7
|
export declare class AccessData {
|
|
8
8
|
}
|
|
9
|
+
export declare const ACCESS_TYPE_PROPERTY = "accessTypes";
|
|
9
10
|
export declare class Access extends AccessData {
|
|
10
11
|
id: string;
|
|
11
|
-
|
|
12
|
+
[ACCESS_TYPE_PROPERTY]: AccessType[];
|
|
12
13
|
accessCondition: AccessCondition<any>;
|
|
13
14
|
constructor(options?: {
|
|
14
15
|
accessTypes: AccessType[];
|
|
@@ -18,3 +19,4 @@ export declare class Access extends AccessData {
|
|
|
18
19
|
initialize(): Access;
|
|
19
20
|
assertId(): void;
|
|
20
21
|
}
|
|
22
|
+
//# sourceMappingURL=access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,oBAAY,UAAU;IACrB,GAAG,IAAI;IACP,IAAI,IAAI;IACR,KAAK,IAAI;CACT;AAED,qBACa,UAAU;CAAI;AAE3B,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,qBACa,MAAO,SAAQ,UAAU;IAErC,EAAE,EAAE,MAAM,CAAC;IAGX,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC;IAGrC,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;gBAE1B,OAAO,CAAC,EAAE;QACrB,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;KACtC;IASD,WAAW,IAAI,MAAM;IAUrB,UAAU,IAAI,MAAM;IAKpB,QAAQ;CAQR"}
|
|
@@ -8,9 +8,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
var Access_1;
|
|
11
|
+
var _a;
|
|
11
12
|
import { field, option, variant, vec } from "@dao-xyz/borsh";
|
|
12
13
|
import { serialize } from "@dao-xyz/borsh";
|
|
13
|
-
import { AccessCondition } from "./condition";
|
|
14
|
+
import { AccessCondition } from "./condition.js";
|
|
14
15
|
import { toBase64 } from "@peerbit/crypto";
|
|
15
16
|
export var AccessType;
|
|
16
17
|
(function (AccessType) {
|
|
@@ -24,9 +25,10 @@ AccessData = __decorate([
|
|
|
24
25
|
variant(0)
|
|
25
26
|
], AccessData);
|
|
26
27
|
export { AccessData };
|
|
28
|
+
export const ACCESS_TYPE_PROPERTY = "accessTypes";
|
|
27
29
|
let Access = Access_1 = class Access extends AccessData {
|
|
28
30
|
id;
|
|
29
|
-
|
|
31
|
+
[_a = ACCESS_TYPE_PROPERTY];
|
|
30
32
|
accessCondition;
|
|
31
33
|
constructor(options) {
|
|
32
34
|
super();
|
|
@@ -63,7 +65,7 @@ __decorate([
|
|
|
63
65
|
__decorate([
|
|
64
66
|
field({ type: vec("u8") }),
|
|
65
67
|
__metadata("design:type", Array)
|
|
66
|
-
], Access.prototype,
|
|
68
|
+
], Access.prototype, _a, void 0);
|
|
67
69
|
__decorate([
|
|
68
70
|
field({ type: AccessCondition }),
|
|
69
71
|
__metadata("design:type", AccessCondition)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,yCAAO,CAAA;IACP,2CAAQ,CAAA;IACR,6CAAS,CAAA;AACV,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAGM,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAI,CAAA;AAAd,UAAU;IADtB,OAAO,CAAC,CAAC,CAAC;GACE,UAAU,CAAI;;AAE3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,UAAU;IAErC,EAAE,CAAS;IAGX,MAAC,oBAAoB,CAAC,CAAe;IAGrC,eAAe,CAAuB;IAEtC,YAAY,OAGX;QACA,KAAK,EAAE,CAAC;QACR,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,QAAM,EAAE,CAAC;QACvB,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACzC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,mBAAmB,IAAI,CAAC,EAAE,iBAAiB,YAAY,EAAE,CACzD,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAA;AA3CA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;;kCACvB;AAGX;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;;gCACU;AAGrC;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;8BAChB,eAAe;+CAAM;AAR1B,MAAM;IADlB,OAAO,CAAC,CAAC,CAAC;;GACE,MAAM,CA6ClB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Documents,
|
|
1
|
+
import { Documents, type CanPerformOperations } from "@peerbit/document";
|
|
2
2
|
import { TrustedNetwork, IdentityGraph } from "@peerbit/trusted-network";
|
|
3
|
-
import { Access } from "./access";
|
|
3
|
+
import { Access } from "./access.js";
|
|
4
4
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
5
5
|
import { Program } from "@peerbit/program";
|
|
6
|
-
import { PeerId } from "@libp2p/interface";
|
|
7
|
-
import { RoleOptions } from "@peerbit/shared-log";
|
|
6
|
+
import { type PeerId } from "@libp2p/interface";
|
|
7
|
+
import { type RoleOptions } from "@peerbit/shared-log";
|
|
8
8
|
export declare class IdentityAccessController extends Program {
|
|
9
9
|
access: Documents<Access>;
|
|
10
10
|
identityGraphController: IdentityGraph;
|
|
@@ -15,8 +15,9 @@ export declare class IdentityAccessController extends Program {
|
|
|
15
15
|
trustedNetwork?: TrustedNetwork;
|
|
16
16
|
});
|
|
17
17
|
canRead(_obj: any, s: PublicSignKey | undefined): Promise<boolean>;
|
|
18
|
-
canPerform(
|
|
18
|
+
canPerform(properties: CanPerformOperations<any>): Promise<boolean>;
|
|
19
19
|
open(properties?: {
|
|
20
20
|
role?: RoleOptions;
|
|
21
21
|
}): Promise<void>;
|
|
22
22
|
}
|
|
23
|
+
//# sourceMappingURL=acl-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl-db.d.ts","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"AACA,OAAO,EACN,SAAS,EAKT,KAAK,oBAAoB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEN,cAAc,EAEd,aAAa,EAEb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAwB,MAAM,EAAc,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAc,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBACa,wBAAyB,SAAQ,OAAO;IAEpD,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAG1B,uBAAuB,EAAE,aAAa,CAAC;IAGvC,cAAc,EAAE,cAAc,CAAC;gBAEnB,IAAI,EAAE;QACjB,EAAE,CAAC,EAAE,UAAU,CAAC;QAChB,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC;QAClC,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC;IA6BK,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAiElE,UAAU,CAAC,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAqEnE,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAA;KAAE;CAe9C"}
|
|
@@ -8,12 +8,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import { field, variant } from "@dao-xyz/borsh";
|
|
11
|
-
import { Documents } from "@peerbit/document";
|
|
11
|
+
import { Documents, SearchRequest, IntegerCompare, Compare, Or } from "@peerbit/document";
|
|
12
12
|
import { getPathGenerator, TrustedNetwork, getFromByTo, IdentityGraph, createIdentityGraphStore } from "@peerbit/trusted-network";
|
|
13
|
-
import { Access, AccessType } from "./access";
|
|
14
|
-
import { sha256Sync } from "@peerbit/crypto";
|
|
13
|
+
import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
|
|
14
|
+
import { PublicSignKey, sha256Sync } from "@peerbit/crypto";
|
|
15
15
|
import { Program } from "@peerbit/program";
|
|
16
|
+
import {} from "@libp2p/interface";
|
|
16
17
|
import { concat } from "uint8arrays";
|
|
18
|
+
import {} from "@peerbit/shared-log";
|
|
17
19
|
let IdentityAccessController = class IdentityAccessController extends Program {
|
|
18
20
|
access;
|
|
19
21
|
identityGraphController;
|
|
@@ -51,8 +53,23 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
51
53
|
}
|
|
52
54
|
// Else check whether its trusted by this access controller
|
|
53
55
|
const canReadCheck = async (key) => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
const accessReadOrAny = await this.access.index.search(new SearchRequest({
|
|
57
|
+
query: [
|
|
58
|
+
new Or([
|
|
59
|
+
new IntegerCompare({
|
|
60
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
61
|
+
compare: Compare.Equal,
|
|
62
|
+
value: AccessType.Any
|
|
63
|
+
}),
|
|
64
|
+
new IntegerCompare({
|
|
65
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
66
|
+
compare: Compare.Equal,
|
|
67
|
+
value: AccessType.Read
|
|
68
|
+
})
|
|
69
|
+
])
|
|
70
|
+
]
|
|
71
|
+
}));
|
|
72
|
+
for (const access of accessReadOrAny) {
|
|
56
73
|
if (access instanceof Access) {
|
|
57
74
|
if (access.accessTypes.find((x) => x === AccessType.Any || x === AccessType.Read) !== undefined) {
|
|
58
75
|
// check condition
|
|
@@ -74,7 +91,7 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
74
91
|
}
|
|
75
92
|
return false;
|
|
76
93
|
}
|
|
77
|
-
async canPerform(
|
|
94
|
+
async canPerform(properties) {
|
|
78
95
|
// TODO, improve, caching etc
|
|
79
96
|
// Check whether it is trusted by trust web
|
|
80
97
|
const canPerformByKey = async (key) => {
|
|
@@ -83,8 +100,23 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
83
100
|
}
|
|
84
101
|
// Else check whether its trusted by this access controller
|
|
85
102
|
const canPerformCheck = async (key) => {
|
|
86
|
-
|
|
87
|
-
|
|
103
|
+
const accessWritedOrAny = await this.access.index.search(new SearchRequest({
|
|
104
|
+
query: [
|
|
105
|
+
new Or([
|
|
106
|
+
new IntegerCompare({
|
|
107
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
108
|
+
compare: Compare.Equal,
|
|
109
|
+
value: AccessType.Any
|
|
110
|
+
}),
|
|
111
|
+
new IntegerCompare({
|
|
112
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
113
|
+
compare: Compare.Equal,
|
|
114
|
+
value: AccessType.Write
|
|
115
|
+
})
|
|
116
|
+
])
|
|
117
|
+
]
|
|
118
|
+
}));
|
|
119
|
+
for (const access of accessWritedOrAny) {
|
|
88
120
|
if (access instanceof Access) {
|
|
89
121
|
if (access.accessTypes.find((x) => x === AccessType.Any || x === AccessType.Write) !== undefined) {
|
|
90
122
|
// check condition
|
|
@@ -106,7 +138,7 @@ let IdentityAccessController = class IdentityAccessController extends Program {
|
|
|
106
138
|
}
|
|
107
139
|
return false;
|
|
108
140
|
};
|
|
109
|
-
for (const key of await
|
|
141
|
+
for (const key of await properties.entry.getPublicKeys()) {
|
|
110
142
|
if (await canPerformByKey(key)) {
|
|
111
143
|
return true;
|
|
112
144
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl-db.js","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
2
|
-
import { PeerId } from "@libp2p/interface";
|
|
2
|
+
import { type PeerId } from "@libp2p/interface";
|
|
3
3
|
export declare class Network {
|
|
4
4
|
type: string;
|
|
5
5
|
rpc: string;
|
|
@@ -18,3 +18,4 @@ export declare class PublicKeyAccessCondition<T> extends AccessCondition<T> {
|
|
|
18
18
|
});
|
|
19
19
|
allowed(identity: PublicSignKey): Promise<boolean>;
|
|
20
20
|
}
|
|
21
|
+
//# sourceMappingURL=condition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQhD,qBACa,OAAO;IAEnB,IAAI,EAAE,MAAM,CAAC;IAGb,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,qBAAa,eAAe,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpD;AAED,qBACa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;;IAItD,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpD;AAED,qBACa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IAElE,GAAG,EAAE,aAAa,CAAC;gBAEP,OAAO,EAAE;QAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAAA;KAAE;IAK9C,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGxD"}
|
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import { field, variant } from "@dao-xyz/borsh";
|
|
11
11
|
import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
12
|
+
import {} from "@libp2p/interface";
|
|
12
13
|
const coercePublicKey = (publicKey) => {
|
|
13
14
|
return publicKey instanceof PublicSignKey
|
|
14
15
|
? publicKey
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,eAAe,GAAG,CAAC,SAAiC,EAAE,EAAE;IAC7D,OAAO,SAAS,YAAY,aAAa;QACxC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC,CAAC;AAGK,IAAM,OAAO,GAAb,MAAM,OAAO;IAEnB,IAAI,CAAS;IAGb,GAAG,CAAS;CACZ,CAAA;AAJA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;qCACb;AAGb;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;oCACd;AALA,OAAO;IADnB,OAAO,CAAC,CAAC,CAAC;GACE,OAAO,CAMnB;;AAED,MAAM,OAAO,eAAe;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAsB,SAAQ,eAAkB;IAC5D;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AAPY,kBAAkB;IAD9B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,kBAAkB,CAO9B;;AAGM,IAAM,wBAAwB,GAA9B,MAAM,wBAA4B,SAAQ,eAAkB;IAElE,GAAG,CAAgB;IAEnB,YAAY,OAAwC;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAuB;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACD,CAAA;AAVA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAC1B,aAAa;qDAAC;AAFP,wBAAwB;IADpC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,wBAAwB,CAYpC;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,42 +1,68 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
2
|
+
"name": "@peerbit/identity-access-controller",
|
|
3
|
+
"version": "3.0.40-0691c73",
|
|
4
|
+
"description": "Access controller that operates on a DB",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"types": "./dist/src/index.d.ts",
|
|
8
|
+
"typesVersions": {
|
|
9
|
+
"*": {
|
|
10
|
+
"*": [
|
|
11
|
+
"*",
|
|
12
|
+
"dist/*",
|
|
13
|
+
"dist/src/*",
|
|
14
|
+
"dist/src/*/index"
|
|
15
|
+
],
|
|
16
|
+
"src/*": [
|
|
17
|
+
"*",
|
|
18
|
+
"dist/*",
|
|
19
|
+
"dist/src/*",
|
|
20
|
+
"dist/src/*/index"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"src",
|
|
26
|
+
"dist",
|
|
27
|
+
"!dist/e2e",
|
|
28
|
+
"!dist/test",
|
|
29
|
+
"!**/*.tsbuildinfo"
|
|
30
|
+
],
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./dist/src/index.d.ts",
|
|
34
|
+
"import": "./dist/src/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"eslintConfig": {
|
|
38
|
+
"extends": "ipfs",
|
|
39
|
+
"parserOptions": {
|
|
40
|
+
"project": true,
|
|
41
|
+
"sourceType": "module"
|
|
42
|
+
},
|
|
43
|
+
"ignorePatterns": [
|
|
44
|
+
"!.aegir.js",
|
|
45
|
+
"test/ts-use",
|
|
46
|
+
"*.d.ts"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"scripts": {
|
|
53
|
+
"clean": "aegir clean",
|
|
54
|
+
"build": "aegir build --no-bundle",
|
|
55
|
+
"test": "aegir test --target node"
|
|
56
|
+
},
|
|
57
|
+
"author": "dao.xyz",
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@dao-xyz/borsh": "^5.2.2",
|
|
61
|
+
"@peerbit/document": "6.0.7-0691c73",
|
|
62
|
+
"@peerbit/trusted-network": "3.0.40-0691c73"
|
|
63
|
+
},
|
|
64
|
+
"devDependencies": {
|
|
65
|
+
"@peerbit/time": "2.0.6-0691c73",
|
|
66
|
+
"@peerbit/test-utils": "2.0.33-0691c73"
|
|
67
|
+
}
|
|
42
68
|
}
|
package/src/access.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { field, option, variant, vec } from "@dao-xyz/borsh";
|
|
2
2
|
import { serialize } from "@dao-xyz/borsh";
|
|
3
|
-
import { AccessCondition } from "./condition";
|
|
3
|
+
import { AccessCondition } from "./condition.js";
|
|
4
4
|
import { toBase64 } from "@peerbit/crypto";
|
|
5
5
|
|
|
6
6
|
export enum AccessType {
|
|
@@ -10,15 +10,16 @@ export enum AccessType {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
@variant(0)
|
|
13
|
-
export class AccessData {}
|
|
13
|
+
export class AccessData { }
|
|
14
14
|
|
|
15
|
+
export const ACCESS_TYPE_PROPERTY = "accessTypes";
|
|
15
16
|
@variant(0)
|
|
16
17
|
export class Access extends AccessData {
|
|
17
18
|
@field({ type: option("string") })
|
|
18
19
|
id: string;
|
|
19
20
|
|
|
20
21
|
@field({ type: vec("u8") })
|
|
21
|
-
|
|
22
|
+
[ACCESS_TYPE_PROPERTY]: AccessType[];
|
|
22
23
|
|
|
23
24
|
@field({ type: AccessCondition })
|
|
24
25
|
accessCondition: AccessCondition<any>;
|
package/src/acl-db.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { field, variant } from "@dao-xyz/borsh";
|
|
2
2
|
import {
|
|
3
3
|
Documents,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
SearchRequest,
|
|
5
|
+
IntegerCompare,
|
|
6
|
+
Compare,
|
|
7
|
+
Or,
|
|
8
|
+
type CanPerformOperations
|
|
7
9
|
} from "@peerbit/document";
|
|
8
10
|
import {
|
|
9
11
|
getPathGenerator,
|
|
@@ -12,12 +14,12 @@ import {
|
|
|
12
14
|
IdentityGraph,
|
|
13
15
|
createIdentityGraphStore
|
|
14
16
|
} from "@peerbit/trusted-network";
|
|
15
|
-
import { Access, AccessType } from "./access";
|
|
17
|
+
import { ACCESS_TYPE_PROPERTY, Access, AccessType } from "./access.js";
|
|
16
18
|
import { PublicSignKey, sha256Sync } from "@peerbit/crypto";
|
|
17
19
|
import { Program } from "@peerbit/program";
|
|
18
|
-
import { PeerId } from "@libp2p/interface";
|
|
20
|
+
import { type PeerId } from "@libp2p/interface";
|
|
19
21
|
import { concat } from "uint8arrays";
|
|
20
|
-
import { RoleOptions } from "@peerbit/shared-log";
|
|
22
|
+
import { type RoleOptions } from "@peerbit/shared-log";
|
|
21
23
|
|
|
22
24
|
@variant("identity_acl")
|
|
23
25
|
export class IdentityAccessController extends Program {
|
|
@@ -46,9 +48,9 @@ export class IdentityAccessController extends Program {
|
|
|
46
48
|
this.trustedNetwork = opts.trustedNetwork
|
|
47
49
|
? opts.trustedNetwork
|
|
48
50
|
: new TrustedNetwork({
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
id: opts.id && sha256Sync(concat([opts.id, new Uint8Array([1])])),
|
|
52
|
+
rootTrust: opts.rootTrust
|
|
53
|
+
});
|
|
52
54
|
this.identityGraphController = new IdentityGraph({
|
|
53
55
|
relationGraph: createIdentityGraphStore(
|
|
54
56
|
opts.id && sha256Sync(concat([opts.id, new Uint8Array([2])]))
|
|
@@ -77,8 +79,25 @@ export class IdentityAccessController extends Program {
|
|
|
77
79
|
|
|
78
80
|
// Else check whether its trusted by this access controller
|
|
79
81
|
const canReadCheck = async (key: PublicSignKey) => {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
+
const accessReadOrAny = await this.access.index.search(
|
|
83
|
+
new SearchRequest({
|
|
84
|
+
query: [
|
|
85
|
+
new Or([
|
|
86
|
+
new IntegerCompare({
|
|
87
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
88
|
+
compare: Compare.Equal,
|
|
89
|
+
value: AccessType.Any
|
|
90
|
+
}),
|
|
91
|
+
new IntegerCompare({
|
|
92
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
93
|
+
compare: Compare.Equal,
|
|
94
|
+
value: AccessType.Read
|
|
95
|
+
})
|
|
96
|
+
])
|
|
97
|
+
]
|
|
98
|
+
})
|
|
99
|
+
);
|
|
100
|
+
for (const access of accessReadOrAny) {
|
|
82
101
|
if (access instanceof Access) {
|
|
83
102
|
if (
|
|
84
103
|
access.accessTypes.find(
|
|
@@ -111,10 +130,7 @@ export class IdentityAccessController extends Program {
|
|
|
111
130
|
return false;
|
|
112
131
|
}
|
|
113
132
|
|
|
114
|
-
async canPerform(
|
|
115
|
-
_operation: PutOperation<Access> | DeleteOperation,
|
|
116
|
-
context: TransactionContext<Access>
|
|
117
|
-
): Promise<boolean> {
|
|
133
|
+
async canPerform(properties: CanPerformOperations<any>): Promise<boolean> {
|
|
118
134
|
// TODO, improve, caching etc
|
|
119
135
|
|
|
120
136
|
// Check whether it is trusted by trust web
|
|
@@ -124,8 +140,26 @@ export class IdentityAccessController extends Program {
|
|
|
124
140
|
}
|
|
125
141
|
// Else check whether its trusted by this access controller
|
|
126
142
|
const canPerformCheck = async (key: PublicSignKey) => {
|
|
127
|
-
|
|
128
|
-
|
|
143
|
+
const accessWritedOrAny = await this.access.index.search(
|
|
144
|
+
new SearchRequest({
|
|
145
|
+
query: [
|
|
146
|
+
new Or([
|
|
147
|
+
new IntegerCompare({
|
|
148
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
149
|
+
compare: Compare.Equal,
|
|
150
|
+
value: AccessType.Any
|
|
151
|
+
}),
|
|
152
|
+
new IntegerCompare({
|
|
153
|
+
key: ACCESS_TYPE_PROPERTY,
|
|
154
|
+
compare: Compare.Equal,
|
|
155
|
+
value: AccessType.Write
|
|
156
|
+
})
|
|
157
|
+
])
|
|
158
|
+
]
|
|
159
|
+
})
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
for (const access of accessWritedOrAny) {
|
|
129
163
|
if (access instanceof Access) {
|
|
130
164
|
if (
|
|
131
165
|
access.accessTypes.find(
|
|
@@ -157,7 +191,7 @@ export class IdentityAccessController extends Program {
|
|
|
157
191
|
return false;
|
|
158
192
|
};
|
|
159
193
|
|
|
160
|
-
for (const key of await
|
|
194
|
+
for (const key of await properties.entry.getPublicKeys()) {
|
|
161
195
|
if (await canPerformByKey(key)) {
|
|
162
196
|
return true;
|
|
163
197
|
}
|
package/src/condition.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { field, variant } from "@dao-xyz/borsh";
|
|
2
2
|
import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
3
|
-
import { PeerId } from "@libp2p/interface";
|
|
3
|
+
import { type PeerId } from "@libp2p/interface";
|
|
4
4
|
|
|
5
5
|
const coercePublicKey = (publicKey: PublicSignKey | PeerId) => {
|
|
6
6
|
return publicKey instanceof PublicSignKey
|
package/lib/esm/access.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/access.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,yCAAO,CAAA;IACP,2CAAQ,CAAA;IACR,6CAAS,CAAA;AACV,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAGM,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,UAAU;IADtB,OAAO,CAAC,CAAC,CAAC;GACE,UAAU,CAAG;;AAGnB,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,UAAU;IAErC,EAAE,CAAS;IAGX,WAAW,CAAe;IAG1B,eAAe,CAAuB;IAEtC,YAAY,OAGX;QACA,KAAK,EAAE,CAAC;QACR,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,QAAM,EAAE,CAAC;QACvB,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACzC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,QAAQ;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,mBAAmB,IAAI,CAAC,EAAE,iBAAiB,YAAY,EAAE,CACzD,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAA;AA3CA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;;kCACvB;AAGX;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;;2CACD;AAG1B;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;8BAChB,eAAe;+CAAM;AAR1B,MAAM;IADlB,OAAO,CAAC,CAAC,CAAC;;GACE,MAAM,CA6ClB"}
|
package/lib/esm/acl-db.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acl-db.js","sourceRoot":"","sources":["../../src/acl-db.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/condition.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/condition.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGxE,MAAM,eAAe,GAAG,CAAC,SAAiC,EAAE,EAAE;IAC7D,OAAO,SAAS,YAAY,aAAa;QACxC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC,CAAC;AAGK,IAAM,OAAO,GAAb,MAAM,OAAO;IAEnB,IAAI,CAAS;IAGb,GAAG,CAAS;CACZ,CAAA;AAJA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;qCACb;AAGb;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;oCACd;AALA,OAAO;IADnB,OAAO,CAAC,CAAC,CAAC;GACE,OAAO,CAMnB;;AAED,MAAM,OAAO,eAAe;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAsB,SAAQ,eAAkB;IAC5D;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAmB;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AAPY,kBAAkB;IAD9B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,kBAAkB,CAO9B;;AAGM,IAAM,wBAAwB,GAA9B,MAAM,wBAA4B,SAAQ,eAAkB;IAElE,GAAG,CAAgB;IAEnB,YAAY,OAAwC;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAuB;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACD,CAAA;AAVA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BAC1B,aAAa;qDAAC;AAFP,wBAAwB;IADpC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,wBAAwB,CAYpC;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG"}
|
|
File without changes
|
|
File without changes
|