@ibgib/node-gib 0.0.18 → 0.0.19
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/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mjs +6 -3
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mjs +5 -3
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.mjs +10 -5
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.mjs.map +1 -1
- package/e2e/identity-sso-lifecycle.e2e.md +9 -7
- package/package.json +3 -3
- package/src/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mts +6 -3
- package/src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mts +5 -3
- package/src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.respec.mts +1 -1
- package/src/serve-gib/handlers/api/keystone/sso-login.handler.mts +11 -6
- package/data/identity_index/email/hashes/32/13/49/e64f32730f01a61ada211f29eaf0a210fc2386b668ad04d7e8a9b16766.json +0 -4
- package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.d.mts +0 -41
- package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.d.mts.map +0 -1
- package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.mjs +0 -34
- package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.mjs.map +0 -1
- package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.d.mts +0 -26
- package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.d.mts.map +0 -1
- package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.mjs +0 -179
- package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.mjs.map +0 -1
- package/src/serve-gib/handlers/api/ibgib/ibgib-handler-types.mts +0 -49
- package/src/serve-gib/handlers/api/ibgib/ibgib.handler.mts +0 -176
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-custodian-genesis.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAMnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAOxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAK/E,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,aAAa,EAAE,qBAAqB,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IAC1F,UAAmB,EAAE,EAAE,MAAM,CAA+C;IAC5E,UAAmB,MAAM,EAAE,kBAAkB,CAAU;IACvD,UAAmB,KAAK,SAA+C;IAEvE,UAAgB,eAAe,CAC3B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7C,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"keystone-custodian-genesis.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAMnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAOxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAK/E,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,aAAa,EAAE,qBAAqB,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IAC1F,UAAmB,EAAE,EAAE,MAAM,CAA+C;IAC5E,UAAmB,MAAM,EAAE,kBAAkB,CAAU;IACvD,UAAmB,KAAK,SAA+C;IAEvE,UAAgB,eAAe,CAC3B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7C,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAoLrC;CACJ"}
|
|
@@ -89,9 +89,12 @@ export class KeystoneCustodianGenesisHandler extends ServeGibHandlerBase {
|
|
|
89
89
|
const metaspace = await bootstrapDomainMetaspace(primaryTjpAddr, reqCtx.dataDir);
|
|
90
90
|
const space = await metaspace.getLocalUserSpace({ lock: false });
|
|
91
91
|
if (space) {
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
const keystoneService = new KeystoneService_V1();
|
|
93
|
+
primaryKeystone = await keystoneService.getLatestKeystone({
|
|
94
|
+
addr: primaryTjpAddr,
|
|
95
|
+
metaspace,
|
|
96
|
+
space
|
|
97
|
+
});
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
100
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-custodian-genesis.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"keystone-custodian-genesis.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,iDAAiD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAExF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mEAAmE,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AAEpG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AAE/H,MAAM,OAAO,GAAG,gBAAgB,IAAI,IAAI,CAAC;AAkBzC;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,mBAAyC;IACvE,EAAE,GAAW,IAAI,+BAA+B,CAAC,IAAI,GAAG,CAAC;IACzD,MAAM,GAAuB,MAAM,CAAC;IACpC,KAAK,GAAG,gBAAgB,CAAC,0BAA0B,CAAC;IAE7D,KAAK,CAAC,eAAe,CAC3B,MAA4C;QAE5C,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,mDAAmD,CAAC,CAAC;YAAC,CAAC;YAEvF,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,4DAA4D,CAAC,CAAC;YACzF,CAAC;YAED,IAAI,IAAiC,CAAC;YACtC,IAAI,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,sEAAsE,CAAC,CAAC;YACnG,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,mEAAmE,CAAC,CAAC;YAChG,CAAC;YAED,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,uBAAuB,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,SAAS,CAAC,kBAAkB,CAAC;YAElD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,MAAM,uBAAuB,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC;YAE5F,kEAAkE;YAClE,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,4EAA4E,CAAC,CAAC;gBACzG,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;gBACjE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE7H,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,sHAAsH,CAAC,CAAC;gBACnJ,CAAC;gBAED,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC;oBAC7C,UAAU,EAAE,WAAW,CAAC,UAAU;oBAClC,IAAI;iBACP,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAK,IAAI,gEAAgE,CAAC,CAAC;gBACvH,CAAC;YACL,CAAC;YAED,IAAI,cAAsB,CAAC;YAC3B,IAAI,eAAgC,CAAC;YACrC,IAAI,aAAa,GAAG,KAAK,CAAC;YAE1B,IAAI,QAAQ,EAAE,CAAC;gBACX,2DAA2D;gBAC3D,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,gCAAgC,SAAS,KAAK,cAAc,uCAAuC,CAAC,CAAC;gBAEtH,yDAAyD;gBACzD,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjE,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,eAAe,GAAG,IAAI,kBAAkB,EAAE,CAAC;oBACjD,eAAe,GAAG,MAAM,eAAe,CAAC,iBAAiB,CAAC;wBACtD,IAAI,EAAE,cAAc;wBACpB,SAAS;wBACT,KAAK;qBACR,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,kCAAkC;gBAClC,aAAa,GAAG,IAAI,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,gDAAgD,SAAS,uCAAuC,CAAC,CAAC;gBAEnH,MAAM,eAAe,GAAG,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC;gBAC1E,IAAI,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,6LAA6L,CAAC,CAAC;gBACnN,CAAC;gBAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,EAAS,CAAC;qBACxF,YAAY,CAAC,eAAe,CAAC;qBAC7B,eAAe,CAAC,uCAAuC,SAAS,EAAE,CAAC;qBACnE,WAAW,CAAC;oBACT,MAAM,EAAE,CAAC,SAAS,CAAC;oBACnB,WAAW,EAAE,MAAM;iBACtB,CAAC,CAAC;gBAEP,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;gBACtD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,YAAY,cAAc,SAAS,EAAE,EAAE,CAAC,CAAC;gBAElF,0DAA0D;gBAC1D,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,QAAQ,MAAM,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChG,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;gBACvH,CAAC;gBAED,MAAM,eAAe,GAAG,IAAI,kBAAkB,EAAE,CAAC;gBACjD,eAAe,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC;oBAC5C,YAAY,EAAE,aAAa;oBAC3B,MAAM,EAAE,CAAC,SAAS,CAAC;oBACnB,YAAY,EAAE,cAAc,CAAC,eAAe,EAAE;oBAC9C,OAAO;oBACP,SAAS,EAAE,aAAa;oBACxB,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,IAAI;iBAClB,CAAC,CAAC;gBAEH,cAAc,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,CAAE,CAAC;gBAExF,mFAAmF;gBACnF,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,IAAI,KAAK,CAAC,0DAA0D,cAAc,sCAAsC,CAAC,CAAC;gBACpI,CAAC;gBAED,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1D,MAAM,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEpE,qCAAqC;gBACrC,MAAM,YAAY,CAAC,kBAAkB,CAAC;oBAClC,KAAK,EAAE,SAAS;oBAChB,cAAc;iBACjB,CAAC,CAAC;gBAEH,gDAAgD;gBAChD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;gBACjE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7H,IAAI,WAAW,EAAE,UAAU,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBAAC,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,CAAC;gBAC5F,CAAC;YACL,CAAC;YAED,8EAA8E;YAC9E,MAAM,aAAa,GAAG,MAAM,6BAA6B,CAAC;gBACtD,cAAc;gBACd,YAAY;aACf,CAAC,CAAC;YAEH,qDAAqD;YACrD,IAAI,YAAwC,CAAC;YAC7C,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvF,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC7E,IAAI,WAAW,EAAE,CAAC;oBACd,YAAY,GAAG,MAAM,kBAAkB,CAAC;wBACpC,KAAK,EAAE,eAAe;wBACtB,KAAK,EAAE,WAAW;wBAClB,IAAI,EAAE,KAAK;qBACd,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,MAAM,YAAY,GAAiC;gBAC/C,OAAO,EAAE,IAAI;gBACb,aAAa;gBACb,cAAc;gBACd,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,6BAA6B;aACjG,CAAC;YAEF,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;gBAAS,CAAC;YACP,IAAI,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAC,CAAC;QACpD,CAAC;IACL,CAAC;CACJ"}
|
package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-custodian-register-delegate.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAMnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AASxF,MAAM,WAAW,oCAAoC;IACjD,gBAAgB,EAAE,GAAG,CAAC;CACzB;AAED,MAAM,WAAW,qCAAqC;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,wCAAyC,SAAQ,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IACnG,UAAmB,EAAE,EAAE,MAAM,CAAwD;IACrF,UAAmB,MAAM,EAAE,kBAAkB,CAAU;IACvD,UAAmB,KAAK,SAAyD;IAEjF,UAAgB,eAAe,CAC3B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7C,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"keystone-custodian-register-delegate.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAMnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AASxF,MAAM,WAAW,oCAAoC;IACjD,gBAAgB,EAAE,GAAG,CAAC;CACzB;AAED,MAAM,WAAW,qCAAqC;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,wCAAyC,SAAQ,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IACnG,UAAmB,EAAE,EAAE,MAAM,CAAwD;IACrF,UAAmB,MAAM,EAAE,kBAAkB,CAAU;IACvD,UAAmB,KAAK,SAAyD;IAEjF,UAAgB,eAAe,CAC3B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7C,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA2JrC;CACJ"}
|
package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mjs
CHANGED
|
@@ -106,9 +106,11 @@ export class KeystoneCustodianRegisterDelegateHandler extends ServeGibHandlerBas
|
|
|
106
106
|
if (!space) {
|
|
107
107
|
return this.error(500, `Could not load domain space for primary identity ${custodianReqs.primaryTjpAddr}`);
|
|
108
108
|
}
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
const parentKeystone = await keystoneService.getLatestKeystone({
|
|
110
|
+
addr: custodianReqs.primaryTjpAddr,
|
|
111
|
+
metaspace,
|
|
112
|
+
space
|
|
113
|
+
});
|
|
112
114
|
if (!parentKeystone) {
|
|
113
115
|
return this.error(404, `Primary identity keystone not found for address ${custodianReqs.primaryTjpAddr}`);
|
|
114
116
|
}
|
package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-custodian-register-delegate.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"keystone-custodian-register-delegate.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso-login.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/sso-login.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxF,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAevE,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IAC1E,UAAmB,EAAE,EAAE,MAAM,CAA+B;IAC5D,UAAmB,MAAM,EAAE,kBAAkB,CAAU;IACvD,UAAmB,KAAK,SAAuC;IAE/D,UAAyB,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,CAE7D;IAED,UAAyB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAEhE;IAED,UAAgB,eAAe,CAC3B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7C,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"sso-login.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/sso-login.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxF,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAevE,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IAC1E,UAAmB,EAAE,EAAE,MAAM,CAA+B;IAC5D,UAAmB,MAAM,EAAE,kBAAkB,CAAU;IACvD,UAAmB,KAAK,SAAuC;IAE/D,UAAyB,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,CAE7D;IAED,UAAyB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAEhE;IAED,UAAgB,eAAe,CAC3B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7C,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAsIrC;CACJ"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Retrieves verified email, looks up or provisions the custodian primary identity keystone,
|
|
8
8
|
* generates a fresh single-turn `CustodianRequirements` payload, and returns it to the client.
|
|
9
9
|
*/
|
|
10
|
-
import { extractErrorMsg, hash, getUUID } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
10
|
+
import { extractErrorMsg, hash, getUUID, getSaferSubstring } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
11
11
|
import { getTjpAddr } from '@ibgib/core-gib/dist/common/other/ibgib-helper.mjs';
|
|
12
12
|
import { KeystoneProfileBuilder } from '@ibgib/core-gib/dist/keystone/policy/keystone-profile-builder.mjs';
|
|
13
13
|
import { KeystoneService_V1 } from '@ibgib/core-gib/dist/keystone/keystone-service-v1.mjs';
|
|
@@ -71,7 +71,8 @@ export class SsoLoginHandler extends ServeGibHandlerBase {
|
|
|
71
71
|
return this.error(400, `No email address returned from SSO provider ${providerId} (E: 3c3d4e5f67890123c4d5e6f789012345)`);
|
|
72
72
|
}
|
|
73
73
|
const email = userInfo.email.trim().toLowerCase();
|
|
74
|
-
const
|
|
74
|
+
const rawSSOName = userInfo.name || '';
|
|
75
|
+
const username = getSaferSubstring({ text: rawSSOName || email.split('@')[0], length: 62, keepLiterals: ['_', '-'] });
|
|
75
76
|
// 2. Check if primary identity exists for this email
|
|
76
77
|
const ssoConfig = loadSsoServerConfig();
|
|
77
78
|
const serverSecret = ssoConfig.ssoServerKdfSecret;
|
|
@@ -86,9 +87,12 @@ export class SsoLoginHandler extends ServeGibHandlerBase {
|
|
|
86
87
|
primaryTjpAddr = existingLookup.primaryTjpAddr;
|
|
87
88
|
const domainMetaspace = await bootstrapDomainMetaspace(primaryTjpAddr, reqCtx.dataDir);
|
|
88
89
|
const space = await domainMetaspace.getLocalUserSpace({ lock: false });
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
const keystoneService = new KeystoneService_V1();
|
|
91
|
+
primaryKeystone = await keystoneService.getLatestKeystone({
|
|
92
|
+
addr: primaryTjpAddr,
|
|
93
|
+
metaspace: domainMetaspace,
|
|
94
|
+
space: space
|
|
95
|
+
});
|
|
92
96
|
}
|
|
93
97
|
else {
|
|
94
98
|
// First-time custodian identity creation
|
|
@@ -107,6 +111,7 @@ export class SsoLoginHandler extends ServeGibHandlerBase {
|
|
|
107
111
|
client: 'space-gib-server',
|
|
108
112
|
role: 'custodian-primary',
|
|
109
113
|
custodianProvider: providerId,
|
|
114
|
+
[`rawSSOName-${providerId}`]: rawSSOName,
|
|
110
115
|
});
|
|
111
116
|
const configs = await primaryBuilder.compileConfigs();
|
|
112
117
|
const keystoneService = new KeystoneService_V1();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sso-login.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/sso-login.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"sso-login.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/sso-login.handler.mts"],"names":[],"mappings":"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"}
|
|
@@ -99,18 +99,20 @@ Open Identity Manager on `https://local.ibgib.space`, trigger Google OAuth2 link
|
|
|
99
99
|
|
|
100
100
|
|
|
101
101
|
### Phase 4: New-Device Google SSO Sign-In (Incognito Mode)
|
|
102
|
-
Open a clean Incognito browser window to `https://local.ibgib.space`, complete Google SSO
|
|
102
|
+
Open a clean Incognito browser window to `https://local.ibgib.space`, navigate to Sign In, click **Continue with Google**, complete Google SSO authentication, and verify that the client automatically creates the device delegate and signs in without prompting for a password.
|
|
103
103
|
|
|
104
104
|
#### Steps
|
|
105
105
|
1. Open a fresh **Incognito Window** (ctrl+shift+N) to `https://local.ibgib.space`.
|
|
106
|
-
2. In `<ibgib-identity-header>`, click **Sign In
|
|
107
|
-
3.
|
|
108
|
-
4.
|
|
106
|
+
2. In `<ibgib-identity-header>`, click **Sign In** (which renders the streamlined `<ibgib-add-device>` component).
|
|
107
|
+
3. Click **Continue with Google** (or enter `<E2E_TEST_GMAIL_ADDRESS_ALICE>` and complete 2FA).
|
|
108
|
+
4. Complete Google OAuth2 popup authentication with `<E2E_TEST_GMAIL_ADDRESS_ALICE>`.
|
|
109
|
+
5. Verify server log processing:
|
|
109
110
|
- `[IdentityIndexService]` resolves `<E2E_TEST_GMAIL_ADDRESS_ALICE>` -> `primaryTjpAddr`.
|
|
110
|
-
-
|
|
111
|
-
|
|
112
|
-
- Browser
|
|
111
|
+
- `[SsoLoginHandler]` loads domain graph, verifies `custodian-manage-google` challenge pool, and returns `custodianReqs`.
|
|
112
|
+
6. Verify client UI result:
|
|
113
|
+
- Browser creates local sync delegate, registers it with the server, and pairs the device seamlessly.
|
|
113
114
|
- Active identity header updates to `alice` with active status badge `🟢`.
|
|
115
|
+
- Zero password prompts are shown.
|
|
114
116
|
|
|
115
117
|
|
|
116
118
|
### Phase 5: Delegate Device Tagging & Revocation
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibgib/node-gib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"description": "Node and server-specific ibGib code, i.e., things that don't run in the browser.",
|
|
5
5
|
"funding": {
|
|
6
6
|
"type": "individual",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"license": "ISC",
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@ibgib/helper-gib": "^0.0.37",
|
|
28
|
-
"@ibgib/ts-gib": "^0.5.
|
|
29
|
-
"@ibgib/core-gib": "^0.1.
|
|
28
|
+
"@ibgib/ts-gib": "^0.5.34",
|
|
29
|
+
"@ibgib/core-gib": "^0.1.74",
|
|
30
30
|
"@ibgib/encrypt-gib": "^0.3.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -126,9 +126,12 @@ export class KeystoneCustodianGenesisHandler extends ServeGibHandlerBase<undefin
|
|
|
126
126
|
const metaspace = await bootstrapDomainMetaspace(primaryTjpAddr, reqCtx.dataDir);
|
|
127
127
|
const space = await metaspace.getLocalUserSpace({ lock: false });
|
|
128
128
|
if (space) {
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
const keystoneService = new KeystoneService_V1();
|
|
130
|
+
primaryKeystone = await keystoneService.getLatestKeystone({
|
|
131
|
+
addr: primaryTjpAddr,
|
|
132
|
+
metaspace,
|
|
133
|
+
space
|
|
134
|
+
});
|
|
132
135
|
}
|
|
133
136
|
} else {
|
|
134
137
|
// New custodian identity creation
|
package/src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mts
CHANGED
|
@@ -140,9 +140,11 @@ export class KeystoneCustodianRegisterDelegateHandler extends ServeGibHandlerBas
|
|
|
140
140
|
return this.error(500, `Could not load domain space for primary identity ${custodianReqs.primaryTjpAddr}`);
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
const parentKeystone = await keystoneService.getLatestKeystone({
|
|
144
|
+
addr: custodianReqs.primaryTjpAddr,
|
|
145
|
+
metaspace,
|
|
146
|
+
space
|
|
147
|
+
});
|
|
146
148
|
|
|
147
149
|
if (!parentKeystone) {
|
|
148
150
|
return this.error(404, `Primary identity keystone not found for address ${custodianReqs.primaryTjpAddr}`);
|
|
@@ -59,7 +59,7 @@ await respecfully(sir, 'KeystoneCustodianRegisterDelegateHandler', async () => {
|
|
|
59
59
|
|
|
60
60
|
// Step 2: Build client delegate keystone containing custodianReqs
|
|
61
61
|
const delegateSecret = await deriveLocalCustodianDelegateSecret({ primaryTjpAddr });
|
|
62
|
-
const delegateBuilder = KeystoneProfileBuilder.buildKeystone('sync')
|
|
62
|
+
const delegateBuilder = KeystoneProfileBuilder.buildKeystone('sync-profile.dev')
|
|
63
63
|
.withUsername('bob-sync-phone')
|
|
64
64
|
.withDescription('Sync Delegate for bob on phone')
|
|
65
65
|
.withDetails({
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* generates a fresh single-turn `CustodianRequirements` payload, and returns it to the client.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { extractErrorMsg, hash, getUUID } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
11
|
+
import { extractErrorMsg, hash, getUUID, getSaferSubstring } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
12
12
|
import { getTjpAddr } from '@ibgib/core-gib/dist/common/other/ibgib-helper.mjs';
|
|
13
13
|
import { KeystoneProfileBuilder } from '@ibgib/core-gib/dist/keystone/policy/keystone-profile-builder.mjs';
|
|
14
14
|
import { KeystoneService_V1 } from '@ibgib/core-gib/dist/keystone/keystone-service-v1.mjs';
|
|
@@ -103,7 +103,9 @@ export class SsoLoginHandler extends ServeGibHandlerBase<undefined, undefined> {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
const email = userInfo.email.trim().toLowerCase();
|
|
106
|
-
const
|
|
106
|
+
const rawSSOName = userInfo.name || '';
|
|
107
|
+
const username = getSaferSubstring({ text: rawSSOName || email.split('@')[0], length: 62, keepLiterals: ['_', '-'] })
|
|
108
|
+
;
|
|
107
109
|
|
|
108
110
|
// 2. Check if primary identity exists for this email
|
|
109
111
|
const ssoConfig = loadSsoServerConfig();
|
|
@@ -122,10 +124,12 @@ export class SsoLoginHandler extends ServeGibHandlerBase<undefined, undefined> {
|
|
|
122
124
|
primaryTjpAddr = existingLookup.primaryTjpAddr;
|
|
123
125
|
const domainMetaspace = await bootstrapDomainMetaspace(primaryTjpAddr, reqCtx.dataDir);
|
|
124
126
|
const space = await domainMetaspace.getLocalUserSpace({ lock: false });
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
const keystoneService = new KeystoneService_V1();
|
|
128
|
+
primaryKeystone = await keystoneService.getLatestKeystone({
|
|
129
|
+
addr: primaryTjpAddr,
|
|
130
|
+
metaspace: domainMetaspace,
|
|
131
|
+
space: space!
|
|
132
|
+
});
|
|
129
133
|
} else {
|
|
130
134
|
// First-time custodian identity creation
|
|
131
135
|
isNewIdentity = true;
|
|
@@ -145,6 +149,7 @@ export class SsoLoginHandler extends ServeGibHandlerBase<undefined, undefined> {
|
|
|
145
149
|
client: 'space-gib-server',
|
|
146
150
|
role: 'custodian-primary',
|
|
147
151
|
custodianProvider: providerId,
|
|
152
|
+
[`rawSSOName-${providerId}`]: rawSSOName,
|
|
148
153
|
});
|
|
149
154
|
|
|
150
155
|
const configs = await primaryBuilder.compileConfigs();
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { IbGibAddr } from "@ibgib/ts-gib/dist/types.mjs";
|
|
2
|
-
import { DomainInfo } from "../../../types.mjs";
|
|
3
|
-
export interface IbGibParams {
|
|
4
|
-
domainInfo: DomainInfo;
|
|
5
|
-
ibGibIb: string;
|
|
6
|
-
ibGibGib: string;
|
|
7
|
-
ibGibAddr: IbGibAddr;
|
|
8
|
-
}
|
|
9
|
-
export declare const DEFAULT_QUERY_PARAMS_GET_IBGIB: {
|
|
10
|
-
/**
|
|
11
|
-
* If true, will get the latest ibgib.
|
|
12
|
-
*/
|
|
13
|
-
getLatest: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* If true, will get the ibgib's entire dependency graph
|
|
16
|
-
*/
|
|
17
|
-
getGraph: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* If true, returns only the resolved address (addr) rather than the full
|
|
20
|
-
* ibgib or graph body. Useful for a lightweight "tip check" before initiating
|
|
21
|
-
* a full sync: client compares `latestAddr` with its locally known addr.
|
|
22
|
-
*
|
|
23
|
-
* ## notes
|
|
24
|
-
*
|
|
25
|
-
* Typically combined with `getLatest: true` to ask "what is the server's
|
|
26
|
-
* current tip for this timeline?" without paying the cost of fetching the
|
|
27
|
-
* full ibgib body or graph.
|
|
28
|
-
*
|
|
29
|
-
* When `getLatest: false` and `addrOnly: true`, returns the addr as-is
|
|
30
|
-
* (i.e., confirms the given addr exists on the server).
|
|
31
|
-
*/
|
|
32
|
-
addrOnly: boolean;
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* @see {@link DEFAULT_QUERY_PARAMS_GET_IBGIB} key/values for jsdocs
|
|
36
|
-
*/
|
|
37
|
-
export type IbGibGetQueryParams = Partial<typeof DEFAULT_QUERY_PARAMS_GET_IBGIB>;
|
|
38
|
-
export type KNOWN_QUERY_PARAMS_IBGIB_GET = keyof IbGibGetQueryParams;
|
|
39
|
-
export declare const KNOWN_QUERY_PARAMS_IBGIB_GET: KNOWN_QUERY_PARAMS_IBGIB_GET[];
|
|
40
|
-
export declare function isKnownQueryParamsKey_IbGibGet(key: any): key is KNOWN_QUERY_PARAMS_IBGIB_GET;
|
|
41
|
-
//# sourceMappingURL=ibgib-handler-types.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ibgib-handler-types.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/ibgib/ibgib-handler-types.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,WAAW;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;CACxB;AAGD,eAAO,MAAM,8BAA8B;IACvC;;OAEG;IACH,SAAS;IACT;;OAEG;IACH,QAAQ;IACR;;;;;;;;;;;;;OAaG;IACH,QAAQ;CACX,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACjF,MAAM,MAAM,4BAA4B,GAAG,MAAM,mBAAmB,CAAC;AACrE,eAAO,MAAM,4BAA4B,EAAkD,4BAA4B,EAAE,CAAC;AAC1H,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,4BAA4B,CAI5F"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// #region IbGibGetQueryParams
|
|
2
|
-
export const DEFAULT_QUERY_PARAMS_GET_IBGIB = {
|
|
3
|
-
/**
|
|
4
|
-
* If true, will get the latest ibgib.
|
|
5
|
-
*/
|
|
6
|
-
getLatest: false, // Default to false for regular ibgibs
|
|
7
|
-
/**
|
|
8
|
-
* If true, will get the ibgib's entire dependency graph
|
|
9
|
-
*/
|
|
10
|
-
getGraph: false, // Default to false for regular ibgibs
|
|
11
|
-
/**
|
|
12
|
-
* If true, returns only the resolved address (addr) rather than the full
|
|
13
|
-
* ibgib or graph body. Useful for a lightweight "tip check" before initiating
|
|
14
|
-
* a full sync: client compares `latestAddr` with its locally known addr.
|
|
15
|
-
*
|
|
16
|
-
* ## notes
|
|
17
|
-
*
|
|
18
|
-
* Typically combined with `getLatest: true` to ask "what is the server's
|
|
19
|
-
* current tip for this timeline?" without paying the cost of fetching the
|
|
20
|
-
* full ibgib body or graph.
|
|
21
|
-
*
|
|
22
|
-
* When `getLatest: false` and `addrOnly: true`, returns the addr as-is
|
|
23
|
-
* (i.e., confirms the given addr exists on the server).
|
|
24
|
-
*/
|
|
25
|
-
addrOnly: false,
|
|
26
|
-
};
|
|
27
|
-
export const KNOWN_QUERY_PARAMS_IBGIB_GET = Object.keys(DEFAULT_QUERY_PARAMS_GET_IBGIB);
|
|
28
|
-
export function isKnownQueryParamsKey_IbGibGet(key) {
|
|
29
|
-
return !!key && typeof key === 'string' ?
|
|
30
|
-
KNOWN_QUERY_PARAMS_IBGIB_GET.includes(key) :
|
|
31
|
-
false;
|
|
32
|
-
}
|
|
33
|
-
// #endregion IbGibGetQueryParams
|
|
34
|
-
//# sourceMappingURL=ibgib-handler-types.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ibgib-handler-types.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/ibgib/ibgib-handler-types.mts"],"names":[],"mappings":"AAWA,8BAA8B;AAC9B,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC1C;;OAEG;IACH,SAAS,EAAE,KAAK,EAAE,sCAAsC;IACxD;;OAEG;IACH,QAAQ,EAAE,KAAK,EAAE,sCAAsC;IACvD;;;;;;;;;;;;;OAaG;IACH,QAAQ,EAAE,KAAK;CAClB,CAAC;AAMF,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAmC,CAAC;AAC1H,MAAM,UAAU,8BAA8B,CAAC,GAAQ;IACnD,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;QACrC,4BAA4B,CAAC,QAAQ,CAAC,GAAU,CAAC,CAAC,CAAC;QACnD,KAAK,CAAC;AACd,CAAC;AACD,iCAAiC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module serve-gib/handlers/api/ibgib
|
|
3
|
-
*/
|
|
4
|
-
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
5
|
-
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
6
|
-
import { RequestContext, ResponseResult, ServeGibHttpMethod } from '../../../types.mjs';
|
|
7
|
-
import { IbGibGetQueryParams, IbGibParams } from './ibgib-handler-types.mjs';
|
|
8
|
-
export interface IbGibGraphResponseBody {
|
|
9
|
-
addr: string;
|
|
10
|
-
count: number;
|
|
11
|
-
graph: Record<string, IbGib_V1>;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* GET /api/ibgib/:domainAddr/:ibGibAddr
|
|
15
|
-
*/
|
|
16
|
-
export declare class IbGibHandler extends ServeGibHandlerWithMetaspaceBase<IbGibParams, IbGibGetQueryParams> {
|
|
17
|
-
protected lc: string;
|
|
18
|
-
protected method: ServeGibHttpMethod;
|
|
19
|
-
protected regex: RegExp;
|
|
20
|
-
protected parseParamsImpl(reqCtx: RequestContext<IbGibParams, IbGibGetQueryParams>): Promise<IbGibParams | undefined>;
|
|
21
|
-
protected validateQueryParams({ queryParams }: {
|
|
22
|
-
queryParams: any;
|
|
23
|
-
}): Promise<string[]>;
|
|
24
|
-
protected handleRouteImpl(reqCtx: RequestContext<IbGibParams, IbGibGetQueryParams>): Promise<ResponseResult | undefined>;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=ibgib.handler.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ibgib.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/ibgib/ibgib.handler.mts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxF,OAAO,EAC6B,mBAAmB,EAAE,WAAW,EAEnE,MAAM,2BAA2B,CAAC;AAGnC,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACnC;AAID;;GAEG;AACH,qBAAa,YAAa,SAAQ,gCAAgC,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAChG,UAAmB,EAAE,EAAE,MAAM,CAA4B;IACzD,UAAmB,MAAM,EAAE,kBAAkB,CAAS;IACtD,UAAmB,KAAK,SAA+B;IAEvD,UAAyB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAsBnI;IAED,UAAyB,mBAAmB,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,GAAG,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmCtG;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA8E7H;CACJ"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module serve-gib/handlers/api/ibgib
|
|
3
|
-
*/
|
|
4
|
-
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
5
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
6
|
-
import { GLOBAL_LOG_A_LOT } from '../../../constants.mjs';
|
|
7
|
-
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
8
|
-
import { validateAddressSegment } from '../../../path-helper.mjs';
|
|
9
|
-
import { API_PATH_REGEXES } from '../../../path-constants.mjs';
|
|
10
|
-
import { DEFAULT_QUERY_PARAMS_GET_IBGIB, isKnownQueryParamsKey_IbGibGet, KNOWN_QUERY_PARAMS_IBGIB_GET } from './ibgib-handler-types.mjs';
|
|
11
|
-
import { validateAndCoerceBooleanQueryParam } from '../../../serve-gib-helpers.mjs';
|
|
12
|
-
const logalot = GLOBAL_LOG_A_LOT;
|
|
13
|
-
/**
|
|
14
|
-
* GET /api/ibgib/:domainAddr/:ibGibAddr
|
|
15
|
-
*/
|
|
16
|
-
export class IbGibHandler extends ServeGibHandlerWithMetaspaceBase {
|
|
17
|
-
lc = `[${IbGibHandler.name}]`;
|
|
18
|
-
method = 'GET';
|
|
19
|
-
regex = API_PATH_REGEXES.IBGIB_ADDR;
|
|
20
|
-
async parseParamsImpl(reqCtx) {
|
|
21
|
-
const lc = `${this.lc}[${this.parseParamsImpl.name}]`;
|
|
22
|
-
try {
|
|
23
|
-
if (logalot) {
|
|
24
|
-
console.log(`${lc} starting...`);
|
|
25
|
-
}
|
|
26
|
-
const match = reqCtx.pathname.match(this.regex);
|
|
27
|
-
if (!match) {
|
|
28
|
-
throw new Error(`(UNEXPECTED) match falsy for regex? at this point, we have passed canHandleRoute, so this should parse correctly. (E: 8ce0810a3a88f420639bf8286df1d826)`);
|
|
29
|
-
}
|
|
30
|
-
const domainIb = decodeURIComponent(match[1]);
|
|
31
|
-
const domainGib = decodeURIComponent(match[2]);
|
|
32
|
-
const domainAddr = getIbGibAddr({ ib: domainIb, gib: domainGib });
|
|
33
|
-
const ibGibIb = decodeURIComponent(match[3]);
|
|
34
|
-
const ibGibGib = decodeURIComponent(match[4]);
|
|
35
|
-
const ibGibAddr = getIbGibAddr({ ib: ibGibIb, gib: ibGibGib });
|
|
36
|
-
return {
|
|
37
|
-
ibGibIb, ibGibGib, ibGibAddr,
|
|
38
|
-
domainInfo: this.getDomainInfo({ domainAddr }),
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
43
|
-
throw error;
|
|
44
|
-
}
|
|
45
|
-
finally {
|
|
46
|
-
if (logalot) {
|
|
47
|
-
console.log(`${lc} complete.`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
async validateQueryParams({ queryParams }) {
|
|
52
|
-
const lc = `${this.lc}[${this.validateQueryParams.name}]`;
|
|
53
|
-
try {
|
|
54
|
-
if (logalot) {
|
|
55
|
-
console.log(`${lc} starting...`);
|
|
56
|
-
}
|
|
57
|
-
const errors = [];
|
|
58
|
-
// strict checking
|
|
59
|
-
const queryParamsKeys = Object.keys(queryParams);
|
|
60
|
-
const invalidKeys = queryParamsKeys.filter(x => !isKnownQueryParamsKey_IbGibGet(x));
|
|
61
|
-
if (invalidKeys.length > 0) {
|
|
62
|
-
throw new Error(`invalid query params keys: ${invalidKeys.join(', ')}. valid query params keys: ${KNOWN_QUERY_PARAMS_IBGIB_GET.join(', ')} (E: b7e8a9f2c1d34e56b89a01d4f2e7c326)`);
|
|
63
|
-
}
|
|
64
|
-
const ValidationFns = {
|
|
65
|
-
getLatest: async () => validateAndCoerceBooleanQueryParam(queryParams, 'getLatest', errors),
|
|
66
|
-
getGraph: async () => validateAndCoerceBooleanQueryParam(queryParams, 'getGraph', errors),
|
|
67
|
-
addrOnly: async () => validateAndCoerceBooleanQueryParam(queryParams, 'addrOnly', errors),
|
|
68
|
-
};
|
|
69
|
-
// execute all validation functions
|
|
70
|
-
for (const fn of Object.values(ValidationFns)) {
|
|
71
|
-
await fn();
|
|
72
|
-
}
|
|
73
|
-
return errors;
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
77
|
-
throw error;
|
|
78
|
-
}
|
|
79
|
-
finally {
|
|
80
|
-
if (logalot) {
|
|
81
|
-
console.log(`${lc} complete.`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
async handleRouteImpl(reqCtx) {
|
|
86
|
-
const lc = `${this.lc}[${this.handleRouteImpl.name}]`;
|
|
87
|
-
try {
|
|
88
|
-
if (logalot) {
|
|
89
|
-
console.log(`${lc} starting... (I: 03d6a889b1f8af879c0f7158a3b3de26)`);
|
|
90
|
-
}
|
|
91
|
-
if (logalot) {
|
|
92
|
-
console.log(`${lc} starting... (I: 03d6a889b1f8af879c0f7158a3b3de26)`);
|
|
93
|
-
}
|
|
94
|
-
if (!reqCtx.metaspace) {
|
|
95
|
-
throw new Error(`(UNEXPECTED) metaspace falsy? we should have initialized it by now since this is a domain-dependent handler (E: 864661c668d2aa1918b7ee677a7d9c26)`);
|
|
96
|
-
}
|
|
97
|
-
const { ibGibIb, ibGibGib } = reqCtx.params;
|
|
98
|
-
if (!ibGibIb || !ibGibGib) {
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
// Reconstruct addr from params
|
|
102
|
-
const rawAddr = `${ibGibIb}^${ibGibGib}`;
|
|
103
|
-
if (!validateAddressSegment(rawAddr))
|
|
104
|
-
return this.error(400, 'Invalid address format');
|
|
105
|
-
const addr = rawAddr;
|
|
106
|
-
const queryParams = {
|
|
107
|
-
...DEFAULT_QUERY_PARAMS_GET_IBGIB,
|
|
108
|
-
...(reqCtx.queryParams ?? {}),
|
|
109
|
-
};
|
|
110
|
-
const { getLatest, getGraph, addrOnly } = queryParams;
|
|
111
|
-
const space = await reqCtx.metaspace.getLocalUserSpace({ lock: false });
|
|
112
|
-
if (!space) {
|
|
113
|
-
throw new Error(`(UNEXPECTED) couldn't get default local user space? (E: ec6161ea3a08892ad8bfd1b7b0d79826)`);
|
|
114
|
-
}
|
|
115
|
-
let addr_latest = addr;
|
|
116
|
-
if (getLatest) {
|
|
117
|
-
const latestAddr = await reqCtx.metaspace.getLatestAddr({ addr, space });
|
|
118
|
-
if (latestAddr) {
|
|
119
|
-
addr_latest = latestAddr;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
// Lightweight tip-check: return only the resolved address.
|
|
123
|
-
// Client uses this to decide whether a full sync is necessary
|
|
124
|
-
// without incurring the cost of fetching the full ibgib or graph.
|
|
125
|
-
if (addrOnly && !getGraph) {
|
|
126
|
-
return this.ok({ addr: addr_latest, clientAddr: addr });
|
|
127
|
-
} /* <<<<< returns early */
|
|
128
|
-
if (getGraph) {
|
|
129
|
-
const resGraph = await reqCtx.metaspace.getDependencyGraph({
|
|
130
|
-
ibGibAddr: addr_latest,
|
|
131
|
-
space,
|
|
132
|
-
live: getLatest,
|
|
133
|
-
});
|
|
134
|
-
const addrs = Object.keys(resGraph);
|
|
135
|
-
if (addrs.length > 0) {
|
|
136
|
-
if (addrOnly) {
|
|
137
|
-
// Return only the address list for delta negotiation (smart diff):
|
|
138
|
-
// client compares these against what it already has to determine
|
|
139
|
-
// the minimal set it needs to fetch.
|
|
140
|
-
return this.ok({ addr: addr_latest, clientAddr: addr, addrs });
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
const responseBody = {
|
|
144
|
-
addr: addr_latest,
|
|
145
|
-
count: addrs.length,
|
|
146
|
-
graph: resGraph
|
|
147
|
-
};
|
|
148
|
-
return this.ok(responseBody);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
return this.notFound(`Graph not found for ${addr_latest} (E: 89b259f13ae5e4f0d8287f6c0475a826)`);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
const resGet = await reqCtx.metaspace.get({ space, addr: addr_latest });
|
|
157
|
-
if (resGet.success && resGet.ibGibs?.length === 1) {
|
|
158
|
-
const ibGib = resGet.ibGibs[0];
|
|
159
|
-
return this.ok(ibGib);
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
return this.notFound(`IbGib not found for ${addr_latest} (E: 017621e0a8086832ff06cfc884b8c426)`);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
catch (error) {
|
|
167
|
-
if (logalot) {
|
|
168
|
-
console.error(extractErrorMsg(error));
|
|
169
|
-
}
|
|
170
|
-
return this.error(500, extractErrorMsg(error));
|
|
171
|
-
}
|
|
172
|
-
finally {
|
|
173
|
-
if (logalot) {
|
|
174
|
-
console.log(`${lc} complete.`);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
//# sourceMappingURL=ibgib.handler.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ibgib.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/ibgib/ibgib.handler.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { IbGibAddr } from "@ibgib/ts-gib/dist/types.mjs";
|
|
2
|
-
|
|
3
|
-
import { DomainInfo } from "../../../types.mjs";
|
|
4
|
-
|
|
5
|
-
export interface IbGibParams {
|
|
6
|
-
domainInfo: DomainInfo;
|
|
7
|
-
ibGibIb: string;
|
|
8
|
-
ibGibGib: string;
|
|
9
|
-
ibGibAddr: IbGibAddr;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// #region IbGibGetQueryParams
|
|
13
|
-
export const DEFAULT_QUERY_PARAMS_GET_IBGIB = {
|
|
14
|
-
/**
|
|
15
|
-
* If true, will get the latest ibgib.
|
|
16
|
-
*/
|
|
17
|
-
getLatest: false, // Default to false for regular ibgibs
|
|
18
|
-
/**
|
|
19
|
-
* If true, will get the ibgib's entire dependency graph
|
|
20
|
-
*/
|
|
21
|
-
getGraph: false, // Default to false for regular ibgibs
|
|
22
|
-
/**
|
|
23
|
-
* If true, returns only the resolved address (addr) rather than the full
|
|
24
|
-
* ibgib or graph body. Useful for a lightweight "tip check" before initiating
|
|
25
|
-
* a full sync: client compares `latestAddr` with its locally known addr.
|
|
26
|
-
*
|
|
27
|
-
* ## notes
|
|
28
|
-
*
|
|
29
|
-
* Typically combined with `getLatest: true` to ask "what is the server's
|
|
30
|
-
* current tip for this timeline?" without paying the cost of fetching the
|
|
31
|
-
* full ibgib body or graph.
|
|
32
|
-
*
|
|
33
|
-
* When `getLatest: false` and `addrOnly: true`, returns the addr as-is
|
|
34
|
-
* (i.e., confirms the given addr exists on the server).
|
|
35
|
-
*/
|
|
36
|
-
addrOnly: false,
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* @see {@link DEFAULT_QUERY_PARAMS_GET_IBGIB} key/values for jsdocs
|
|
40
|
-
*/
|
|
41
|
-
export type IbGibGetQueryParams = Partial<typeof DEFAULT_QUERY_PARAMS_GET_IBGIB>;
|
|
42
|
-
export type KNOWN_QUERY_PARAMS_IBGIB_GET = keyof IbGibGetQueryParams;
|
|
43
|
-
export const KNOWN_QUERY_PARAMS_IBGIB_GET = Object.keys(DEFAULT_QUERY_PARAMS_GET_IBGIB) as KNOWN_QUERY_PARAMS_IBGIB_GET[];
|
|
44
|
-
export function isKnownQueryParamsKey_IbGibGet(key: any): key is KNOWN_QUERY_PARAMS_IBGIB_GET {
|
|
45
|
-
return !!key && typeof key === 'string' ?
|
|
46
|
-
KNOWN_QUERY_PARAMS_IBGIB_GET.includes(key as any) :
|
|
47
|
-
false;
|
|
48
|
-
}
|
|
49
|
-
// #endregion IbGibGetQueryParams
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module serve-gib/handlers/api/ibgib
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
6
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
7
|
-
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
8
|
-
|
|
9
|
-
import { GLOBAL_LOG_A_LOT } from '../../../constants.mjs';
|
|
10
|
-
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
11
|
-
import { RequestContext, ResponseResult, ServeGibHttpMethod } from '../../../types.mjs';
|
|
12
|
-
import { validateAddressSegment } from '../../../path-helper.mjs';
|
|
13
|
-
import { API_PATH_REGEXES } from '../../../path-constants.mjs';
|
|
14
|
-
import {
|
|
15
|
-
DEFAULT_QUERY_PARAMS_GET_IBGIB, IbGibGetQueryParams, IbGibParams,
|
|
16
|
-
isKnownQueryParamsKey_IbGibGet, KNOWN_QUERY_PARAMS_IBGIB_GET
|
|
17
|
-
} from './ibgib-handler-types.mjs';
|
|
18
|
-
import { validateAndCoerceBooleanQueryParam } from '../../../serve-gib-helpers.mjs';
|
|
19
|
-
|
|
20
|
-
export interface IbGibGraphResponseBody {
|
|
21
|
-
addr: string;
|
|
22
|
-
count: number;
|
|
23
|
-
graph: Record<string, IbGib_V1>;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const logalot = GLOBAL_LOG_A_LOT;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* GET /api/ibgib/:domainAddr/:ibGibAddr
|
|
30
|
-
*/
|
|
31
|
-
export class IbGibHandler extends ServeGibHandlerWithMetaspaceBase<IbGibParams, IbGibGetQueryParams> {
|
|
32
|
-
protected override lc: string = `[${IbGibHandler.name}]`;
|
|
33
|
-
protected override method: ServeGibHttpMethod = 'GET';
|
|
34
|
-
protected override regex = API_PATH_REGEXES.IBGIB_ADDR;
|
|
35
|
-
|
|
36
|
-
protected override async parseParamsImpl(reqCtx: RequestContext<IbGibParams, IbGibGetQueryParams>): Promise<IbGibParams | undefined> {
|
|
37
|
-
const lc = `${this.lc}[${this.parseParamsImpl.name}]`;
|
|
38
|
-
try {
|
|
39
|
-
if (logalot) { console.log(`${lc} starting...`); }
|
|
40
|
-
const match = reqCtx.pathname.match(this.regex);
|
|
41
|
-
if (!match) { throw new Error(`(UNEXPECTED) match falsy for regex? at this point, we have passed canHandleRoute, so this should parse correctly. (E: 8ce0810a3a88f420639bf8286df1d826)`); }
|
|
42
|
-
const domainIb = decodeURIComponent(match[1]);
|
|
43
|
-
const domainGib = decodeURIComponent(match[2]);
|
|
44
|
-
const domainAddr = getIbGibAddr({ ib: domainIb, gib: domainGib });
|
|
45
|
-
const ibGibIb = decodeURIComponent(match[3]);
|
|
46
|
-
const ibGibGib = decodeURIComponent(match[4]);
|
|
47
|
-
const ibGibAddr = getIbGibAddr({ ib: ibGibIb, gib: ibGibGib });
|
|
48
|
-
return {
|
|
49
|
-
ibGibIb, ibGibGib, ibGibAddr,
|
|
50
|
-
domainInfo: this.getDomainInfo({ domainAddr }),
|
|
51
|
-
};
|
|
52
|
-
} catch (error) {
|
|
53
|
-
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
54
|
-
throw error;
|
|
55
|
-
} finally {
|
|
56
|
-
if (logalot) { console.log(`${lc} complete.`); }
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
protected override async validateQueryParams({ queryParams }: { queryParams: any; }): Promise<string[]> {
|
|
61
|
-
const lc = `${this.lc}[${this.validateQueryParams.name}]`;
|
|
62
|
-
try {
|
|
63
|
-
if (logalot) { console.log(`${lc} starting...`); }
|
|
64
|
-
|
|
65
|
-
const errors: string[] = [];
|
|
66
|
-
|
|
67
|
-
// strict checking
|
|
68
|
-
const queryParamsKeys = Object.keys(queryParams);
|
|
69
|
-
const invalidKeys: string[] = queryParamsKeys.filter(x => !isKnownQueryParamsKey_IbGibGet(x));
|
|
70
|
-
if (invalidKeys.length > 0) {
|
|
71
|
-
throw new Error(`invalid query params keys: ${invalidKeys.join(', ')}. valid query params keys: ${KNOWN_QUERY_PARAMS_IBGIB_GET.join(', ')} (E: b7e8a9f2c1d34e56b89a01d4f2e7c326)`);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Enforce that EVERY key must have a validation function mapping
|
|
75
|
-
type ValidationFn = () => Promise<void>;
|
|
76
|
-
const ValidationFns: Record<KNOWN_QUERY_PARAMS_IBGIB_GET, ValidationFn> = {
|
|
77
|
-
getLatest: async () => validateAndCoerceBooleanQueryParam(queryParams, 'getLatest', errors),
|
|
78
|
-
getGraph: async () => validateAndCoerceBooleanQueryParam(queryParams, 'getGraph', errors),
|
|
79
|
-
addrOnly: async () => validateAndCoerceBooleanQueryParam(queryParams, 'addrOnly', errors),
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
// execute all validation functions
|
|
83
|
-
for (const fn of Object.values(ValidationFns)) {
|
|
84
|
-
await fn();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return errors;
|
|
88
|
-
|
|
89
|
-
} catch (error) {
|
|
90
|
-
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
91
|
-
throw error;
|
|
92
|
-
} finally {
|
|
93
|
-
if (logalot) { console.log(`${lc} complete.`); }
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
protected async handleRouteImpl(reqCtx: RequestContext<IbGibParams, IbGibGetQueryParams>): Promise<ResponseResult | undefined> {
|
|
98
|
-
const lc = `${this.lc}[${this.handleRouteImpl.name}]`;
|
|
99
|
-
try {
|
|
100
|
-
if (logalot) { console.log(`${lc} starting... (I: 03d6a889b1f8af879c0f7158a3b3de26)`); }
|
|
101
|
-
|
|
102
|
-
if (logalot) { console.log(`${lc} starting... (I: 03d6a889b1f8af879c0f7158a3b3de26)`); }
|
|
103
|
-
if (!reqCtx.metaspace) { throw new Error(`(UNEXPECTED) metaspace falsy? we should have initialized it by now since this is a domain-dependent handler (E: 864661c668d2aa1918b7ee677a7d9c26)`); }
|
|
104
|
-
|
|
105
|
-
const { ibGibIb, ibGibGib } = reqCtx.params as IbGibParams;
|
|
106
|
-
if (!ibGibIb || !ibGibGib) { return undefined; }
|
|
107
|
-
|
|
108
|
-
// Reconstruct addr from params
|
|
109
|
-
const rawAddr = `${ibGibIb}^${ibGibGib}`;
|
|
110
|
-
if (!validateAddressSegment(rawAddr)) return this.error(400, 'Invalid address format');
|
|
111
|
-
const addr = rawAddr;
|
|
112
|
-
|
|
113
|
-
const queryParams = {
|
|
114
|
-
...DEFAULT_QUERY_PARAMS_GET_IBGIB,
|
|
115
|
-
...(reqCtx.queryParams ?? {}),
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
const { getLatest, getGraph, addrOnly } = queryParams;
|
|
119
|
-
|
|
120
|
-
const space = await reqCtx.metaspace.getLocalUserSpace({ lock: false });
|
|
121
|
-
if (!space) { throw new Error(`(UNEXPECTED) couldn't get default local user space? (E: ec6161ea3a08892ad8bfd1b7b0d79826)`); }
|
|
122
|
-
|
|
123
|
-
let addr_latest: string = addr;
|
|
124
|
-
if (getLatest) {
|
|
125
|
-
const latestAddr = await reqCtx.metaspace.getLatestAddr({ addr, space });
|
|
126
|
-
if (latestAddr) { addr_latest = latestAddr; }
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// Lightweight tip-check: return only the resolved address.
|
|
130
|
-
// Client uses this to decide whether a full sync is necessary
|
|
131
|
-
// without incurring the cost of fetching the full ibgib or graph.
|
|
132
|
-
if (addrOnly && !getGraph) {
|
|
133
|
-
return this.ok({ addr: addr_latest, clientAddr: addr });
|
|
134
|
-
} /* <<<<< returns early */
|
|
135
|
-
|
|
136
|
-
if (getGraph) {
|
|
137
|
-
const resGraph = await reqCtx.metaspace.getDependencyGraph({
|
|
138
|
-
ibGibAddr: addr_latest,
|
|
139
|
-
space,
|
|
140
|
-
live: getLatest,
|
|
141
|
-
});
|
|
142
|
-
const addrs = Object.keys(resGraph);
|
|
143
|
-
if (addrs.length > 0) {
|
|
144
|
-
if (addrOnly) {
|
|
145
|
-
// Return only the address list for delta negotiation (smart diff):
|
|
146
|
-
// client compares these against what it already has to determine
|
|
147
|
-
// the minimal set it needs to fetch.
|
|
148
|
-
return this.ok({ addr: addr_latest, clientAddr: addr, addrs });
|
|
149
|
-
} else {
|
|
150
|
-
const responseBody: IbGibGraphResponseBody = {
|
|
151
|
-
addr: addr_latest,
|
|
152
|
-
count: addrs.length,
|
|
153
|
-
graph: resGraph
|
|
154
|
-
};
|
|
155
|
-
return this.ok(responseBody);
|
|
156
|
-
}
|
|
157
|
-
} else {
|
|
158
|
-
return this.notFound(`Graph not found for ${addr_latest} (E: 89b259f13ae5e4f0d8287f6c0475a826)`);
|
|
159
|
-
}
|
|
160
|
-
} else {
|
|
161
|
-
const resGet = await reqCtx.metaspace.get({ space, addr: addr_latest });
|
|
162
|
-
if (resGet.success && resGet.ibGibs?.length === 1) {
|
|
163
|
-
const ibGib = resGet.ibGibs[0];
|
|
164
|
-
return this.ok(ibGib);
|
|
165
|
-
} else {
|
|
166
|
-
return this.notFound(`IbGib not found for ${addr_latest} (E: 017621e0a8086832ff06cfc884b8c426)`);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
} catch (error) {
|
|
170
|
-
if (logalot) { console.error(extractErrorMsg(error)) }
|
|
171
|
-
return this.error(500, extractErrorMsg(error));
|
|
172
|
-
} finally {
|
|
173
|
-
if (logalot) { console.log(`${lc} complete.`); }
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|