feat(interfaces): Add JWT public-key and blocklist request interfaces, publish ordering files, and update dependencies
This commit is contained in:
@@ -1,5 +1,13 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2025-12-15 - 1.12.0 - feat(interfaces)
|
||||||
|
Add JWT public-key and blocklist request interfaces, publish ordering files, and update dependencies
|
||||||
|
|
||||||
|
- Introduce IReq_GetPublicKeyForValidation and IReq_PushPublicKeyForValidation with documentation in ts_interfaces/request/loint-reception.jwt.ts to support fetching and pushing JWT public keys for validation.
|
||||||
|
- Clarify IReq_PushOrGetJwtIdBlocklist to describe both GET (client requests blocklist) and PUSH (server pushes revoked JWT IDs) directions and required client handlers.
|
||||||
|
- Add tspublish.json ordering files for packaging: ts_interfaces (order: 1), ts (order: 2), ts_idpclient (order: 3), ts_web (order: 4).
|
||||||
|
- Update package.json dependencies to include @git.zone/tspublish and additional @push.rocks packages (@push.rocks/smartcli, @push.rocks/smartfile, @push.rocks/smartinteract).
|
||||||
|
|
||||||
## 2025-12-14 - 1.11.0 - feat(idpcli)
|
## 2025-12-14 - 1.11.0 - feat(idpcli)
|
||||||
Add idp CLI (IdpCli) with commands, file-based credential storage, typed request APIs; bump deps and update config
|
Add idp CLI (IdpCli) with commands, file-based credential storage, typed request APIs; bump deps and update config
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -24,11 +24,15 @@
|
|||||||
"@design.estate/dees-catalog": "^3.3.1",
|
"@design.estate/dees-catalog": "^3.3.1",
|
||||||
"@design.estate/dees-domtools": "^2.3.6",
|
"@design.estate/dees-domtools": "^2.3.6",
|
||||||
"@design.estate/dees-element": "^2.1.3",
|
"@design.estate/dees-element": "^2.1.3",
|
||||||
|
"@git.zone/tspublish": "^1.10.3",
|
||||||
"@push.rocks/lik": "^6.2.2",
|
"@push.rocks/lik": "^6.2.2",
|
||||||
"@push.rocks/qenv": "^6.1.3",
|
"@push.rocks/qenv": "^6.1.3",
|
||||||
|
"@push.rocks/smartcli": "^4.0.19",
|
||||||
"@push.rocks/smartdata": "^7.0.15",
|
"@push.rocks/smartdata": "^7.0.15",
|
||||||
"@push.rocks/smartdelay": "^3.0.5",
|
"@push.rocks/smartdelay": "^3.0.5",
|
||||||
|
"@push.rocks/smartfile": "^13.1.0",
|
||||||
"@push.rocks/smarthash": "^3.2.6",
|
"@push.rocks/smarthash": "^3.2.6",
|
||||||
|
"@push.rocks/smartinteract": "^2.0.6",
|
||||||
"@push.rocks/smartjson": "^6.0.0",
|
"@push.rocks/smartjson": "^6.0.0",
|
||||||
"@push.rocks/smartjwt": "^2.2.1",
|
"@push.rocks/smartjwt": "^2.2.1",
|
||||||
"@push.rocks/smartlog": "^3.1.10",
|
"@push.rocks/smartlog": "^3.1.10",
|
||||||
@@ -41,9 +45,6 @@
|
|||||||
"@push.rocks/smartunique": "^3.0.9",
|
"@push.rocks/smartunique": "^3.0.9",
|
||||||
"@push.rocks/smarturl": "^3.1.0",
|
"@push.rocks/smarturl": "^3.1.0",
|
||||||
"@push.rocks/taskbuffer": "^3.5.0",
|
"@push.rocks/taskbuffer": "^3.5.0",
|
||||||
"@push.rocks/smartcli": "^4.0.19",
|
|
||||||
"@push.rocks/smartfile": "^13.1.0",
|
|
||||||
"@push.rocks/smartinteract": "^2.0.6",
|
|
||||||
"@push.rocks/webjwt": "^1.0.9",
|
"@push.rocks/webjwt": "^1.0.9",
|
||||||
"@push.rocks/websetup": "^3.0.15",
|
"@push.rocks/websetup": "^3.0.15",
|
||||||
"@push.rocks/webstore": "^2.0.20",
|
"@push.rocks/webstore": "^2.0.20",
|
||||||
|
|||||||
Generated
+3
@@ -32,6 +32,9 @@ importers:
|
|||||||
'@design.estate/dees-element':
|
'@design.estate/dees-element':
|
||||||
specifier: ^2.1.3
|
specifier: ^2.1.3
|
||||||
version: 2.1.3
|
version: 2.1.3
|
||||||
|
'@git.zone/tspublish':
|
||||||
|
specifier: ^1.10.3
|
||||||
|
version: 1.10.3
|
||||||
'@push.rocks/lik':
|
'@push.rocks/lik':
|
||||||
specifier: ^6.2.2
|
specifier: ^6.2.2
|
||||||
version: 6.2.2
|
version: 6.2.2
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@idp.global/idp.global',
|
name: '@idp.global/idp.global',
|
||||||
version: '1.11.0',
|
version: '1.12.0',
|
||||||
description: 'An identity provider software managing user authentications, registrations, and sessions.'
|
description: 'An identity provider software managing user authentications, registrations, and sessions.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"order": 2
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"order": 3
|
||||||
|
}
|
||||||
@@ -1,6 +1,16 @@
|
|||||||
import * as data from '../data/index.js';
|
import * as data from '../data/index.js';
|
||||||
import * as plugins from '../loint-reception.plugins.js';
|
import * as plugins from '../loint-reception.plugins.js';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request to get the public key for JWT validation.
|
||||||
|
*
|
||||||
|
* **Direction:** Client → idp.global
|
||||||
|
* **Requester:** Backend services that need to verify JWTs
|
||||||
|
* **Handler:** idp.global
|
||||||
|
*
|
||||||
|
* Use this to fetch the current public key for verifying JWT signatures.
|
||||||
|
* The backend token authenticates the requesting service.
|
||||||
|
*/
|
||||||
export interface IReq_GetPublicKeyForValidation
|
export interface IReq_GetPublicKeyForValidation
|
||||||
extends plugins.typedRequestInterfaces.implementsTR<
|
extends plugins.typedRequestInterfaces.implementsTR<
|
||||||
plugins.typedRequestInterfaces.ITypedRequest,
|
plugins.typedRequestInterfaces.ITypedRequest,
|
||||||
@@ -15,6 +25,16 @@ export interface IReq_GetPublicKeyForValidation
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Push public key to connected backend services for JWT validation.
|
||||||
|
*
|
||||||
|
* **Direction:** idp.global → Client
|
||||||
|
* **Requester:** idp.global (pushes when the JWT signing key rotates)
|
||||||
|
* **Handler:** Backend services - must register a TypedHandler for this method
|
||||||
|
*
|
||||||
|
* Backend services should register a handler using `IdpClient.onPublicKeyPush()`
|
||||||
|
* to receive key rotation updates and update their local key cache.
|
||||||
|
*/
|
||||||
export interface IReq_PushPublicKeyForValidation
|
export interface IReq_PushPublicKeyForValidation
|
||||||
extends plugins.typedRequestInterfaces.implementsTR<
|
extends plugins.typedRequestInterfaces.implementsTR<
|
||||||
plugins.typedRequestInterfaces.ITypedRequest,
|
plugins.typedRequestInterfaces.ITypedRequest,
|
||||||
@@ -28,7 +48,21 @@ export interface IReq_PushPublicKeyForValidation
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* allows getting or pushing a blocklist of jwt ids
|
* Push or get JWT ID blocklist for revoked tokens.
|
||||||
|
*
|
||||||
|
* **Bidirectional:**
|
||||||
|
* - **GET direction:** Client → idp.global - Client requests current blocklist
|
||||||
|
* - **PUSH direction:** idp.global → Client - Server pushes new blocklisted IDs
|
||||||
|
*
|
||||||
|
* **For GET (client fires):**
|
||||||
|
* - Fire with empty/undefined `blockedJwtIds` to request the full blocklist
|
||||||
|
* - Response contains the complete list of blocked JWT IDs
|
||||||
|
* - Use `IdpClient.requests.getJwtIdBlocklist` for this direction
|
||||||
|
*
|
||||||
|
* **For PUSH (idp.global fires):**
|
||||||
|
* - idp.global sends newly blocklisted JWT IDs to connected clients
|
||||||
|
* - Clients must register a handler using `IdpClient.onBlocklistPush()`
|
||||||
|
* - Store received IDs locally to reject revoked tokens
|
||||||
*/
|
*/
|
||||||
export interface IReq_PushOrGetJwtIdBlocklist
|
export interface IReq_PushOrGetJwtIdBlocklist
|
||||||
extends plugins.typedRequestInterfaces.implementsTR<
|
extends plugins.typedRequestInterfaces.implementsTR<
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"order": 1
|
||||||
|
}
|
||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@idp.global/idp.global',
|
name: '@idp.global/idp.global',
|
||||||
version: '1.11.0',
|
version: '1.12.0',
|
||||||
description: 'An identity provider software managing user authentications, registrations, and sessions.'
|
description: 'An identity provider software managing user authentications, registrations, and sessions.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"order": 4
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user