dominus-sdk-nodejs 1.14.1 → 1.16.1
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/index.d.ts +32 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/console-capture.d.ts +32 -0
- package/dist/lib/console-capture.d.ts.map +1 -0
- package/dist/lib/console-capture.js +136 -0
- package/dist/lib/console-capture.js.map +1 -0
- package/dist/lib/user-session.d.ts +60 -0
- package/dist/lib/user-session.d.ts.map +1 -0
- package/dist/lib/user-session.js +139 -0
- package/dist/lib/user-session.js.map +1 -0
- package/dist/namespaces/admin.d.ts +30 -0
- package/dist/namespaces/admin.d.ts.map +1 -1
- package/dist/namespaces/admin.js +31 -0
- package/dist/namespaces/admin.js.map +1 -1
- package/dist/namespaces/artifacts.d.ts +101 -0
- package/dist/namespaces/artifacts.d.ts.map +1 -0
- package/dist/namespaces/artifacts.js +78 -0
- package/dist/namespaces/artifacts.js.map +1 -0
- package/dist/namespaces/db.d.ts +5 -4
- package/dist/namespaces/db.d.ts.map +1 -1
- package/dist/namespaces/db.js +85 -69
- package/dist/namespaces/db.js.map +1 -1
- package/dist/namespaces/files.d.ts +2 -1
- package/dist/namespaces/files.d.ts.map +1 -1
- package/dist/namespaces/files.js.map +1 -1
- package/dist/namespaces/jobs.d.ts +113 -0
- package/dist/namespaces/jobs.d.ts.map +1 -0
- package/dist/namespaces/jobs.js +112 -0
- package/dist/namespaces/jobs.js.map +1 -0
- package/dist/namespaces/portal.d.ts +6 -0
- package/dist/namespaces/portal.d.ts.map +1 -1
- package/dist/namespaces/portal.js +49 -1
- package/dist/namespaces/portal.js.map +1 -1
- package/dist/namespaces/processor.d.ts +44 -0
- package/dist/namespaces/processor.d.ts.map +1 -0
- package/dist/namespaces/processor.js +59 -0
- package/dist/namespaces/processor.js.map +1 -0
- package/dist/namespaces/sync.d.ts +40 -0
- package/dist/namespaces/sync.d.ts.map +1 -0
- package/dist/namespaces/sync.js +40 -0
- package/dist/namespaces/sync.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jobs Namespace - Job queue operations via Job Worker.
|
|
3
|
+
*
|
|
4
|
+
* Provides endpoints for enqueuing jobs, checking status, polling results,
|
|
5
|
+
* and managing the dead letter queue. Jobs are processed asynchronously
|
|
6
|
+
* by the Dominus Processor service.
|
|
7
|
+
*/
|
|
8
|
+
import type { DominusClient } from '../lib/client.js';
|
|
9
|
+
export type JobType = 'db_query' | 'db_ddl' | 'db_migration' | 'file_upload' | 'workflow_exec';
|
|
10
|
+
export type JobStatus = 'pending' | 'running' | 'completed' | 'failed' | 'dead';
|
|
11
|
+
export interface JobMeta {
|
|
12
|
+
id: string;
|
|
13
|
+
type: JobType;
|
|
14
|
+
status: JobStatus;
|
|
15
|
+
project_id: string;
|
|
16
|
+
environment: string;
|
|
17
|
+
payload: unknown;
|
|
18
|
+
created_at: string;
|
|
19
|
+
started_at?: string;
|
|
20
|
+
completed_at?: string;
|
|
21
|
+
retry_count: number;
|
|
22
|
+
error?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface EnqueueResult {
|
|
25
|
+
job_id: string;
|
|
26
|
+
promise_key: string;
|
|
27
|
+
poll_url: string;
|
|
28
|
+
}
|
|
29
|
+
export interface JobStatusResult {
|
|
30
|
+
job_id: string;
|
|
31
|
+
type: JobType;
|
|
32
|
+
status: JobStatus;
|
|
33
|
+
created_at: string;
|
|
34
|
+
started_at?: string;
|
|
35
|
+
completed_at?: string;
|
|
36
|
+
retry_count: number;
|
|
37
|
+
error?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface JobResultResponse {
|
|
40
|
+
job_id: string;
|
|
41
|
+
status: JobStatus;
|
|
42
|
+
result: unknown;
|
|
43
|
+
timeout?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface DeadLetterGroup {
|
|
46
|
+
type: JobType;
|
|
47
|
+
jobs: JobMeta[];
|
|
48
|
+
}
|
|
49
|
+
export interface DeadLetterListResult {
|
|
50
|
+
dead_jobs: DeadLetterGroup[];
|
|
51
|
+
}
|
|
52
|
+
export interface JobHealthResult {
|
|
53
|
+
service: string;
|
|
54
|
+
status: string;
|
|
55
|
+
timestamp: string;
|
|
56
|
+
}
|
|
57
|
+
export declare class JobsNamespace {
|
|
58
|
+
private client;
|
|
59
|
+
constructor(client: DominusClient);
|
|
60
|
+
/**
|
|
61
|
+
* Enqueue a new job for asynchronous processing.
|
|
62
|
+
*
|
|
63
|
+
* @param jobType - The type of job to enqueue
|
|
64
|
+
* @param payload - Job-specific payload data
|
|
65
|
+
* @returns Job ID and polling information
|
|
66
|
+
*/
|
|
67
|
+
enqueue(jobType: JobType, payload: unknown): Promise<EnqueueResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Check the status of a job.
|
|
70
|
+
*
|
|
71
|
+
* @param jobId - The job ID to check
|
|
72
|
+
* @returns Current job status and metadata
|
|
73
|
+
*/
|
|
74
|
+
getStatus(jobId: string): Promise<JobStatusResult>;
|
|
75
|
+
/**
|
|
76
|
+
* Poll for a job result (blocks until complete or timeout).
|
|
77
|
+
*
|
|
78
|
+
* @param jobId - The job ID to wait for
|
|
79
|
+
* @param timeoutMs - Max wait time in ms (default 30000, max 120000)
|
|
80
|
+
* @returns Job result or timeout indicator
|
|
81
|
+
*/
|
|
82
|
+
getResult(jobId: string, timeoutMs?: number): Promise<JobResultResponse>;
|
|
83
|
+
/**
|
|
84
|
+
* List dead-lettered jobs, optionally filtered by type.
|
|
85
|
+
*
|
|
86
|
+
* @param jobType - Optional job type filter
|
|
87
|
+
* @returns Grouped dead letter jobs
|
|
88
|
+
*/
|
|
89
|
+
listDeadLetterJobs(jobType?: JobType): Promise<DeadLetterListResult>;
|
|
90
|
+
/**
|
|
91
|
+
* Retry a dead-lettered job (re-queues it).
|
|
92
|
+
*
|
|
93
|
+
* @param jobId - The dead job ID to retry
|
|
94
|
+
*/
|
|
95
|
+
retryJob(jobId: string): Promise<{
|
|
96
|
+
retried: boolean;
|
|
97
|
+
job_id: string;
|
|
98
|
+
}>;
|
|
99
|
+
/**
|
|
100
|
+
* Permanently discard a dead-lettered job.
|
|
101
|
+
*
|
|
102
|
+
* @param jobId - The dead job ID to discard
|
|
103
|
+
*/
|
|
104
|
+
discardJob(jobId: string): Promise<{
|
|
105
|
+
discarded: boolean;
|
|
106
|
+
job_id: string;
|
|
107
|
+
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Check job worker health.
|
|
110
|
+
*/
|
|
111
|
+
getHealth(): Promise<JobHealthResult>;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/namespaces/jobs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe,CAAC;AAC/F,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IASzE;;;;;OAKG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IASxD;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAU7E;;;;;OAKG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAW1E;;;;OAIG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAS5E;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAShF;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;CAO5C"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jobs Namespace - Job queue operations via Job Worker.
|
|
3
|
+
*
|
|
4
|
+
* Provides endpoints for enqueuing jobs, checking status, polling results,
|
|
5
|
+
* and managing the dead letter queue. Jobs are processed asynchronously
|
|
6
|
+
* by the Dominus Processor service.
|
|
7
|
+
*/
|
|
8
|
+
export class JobsNamespace {
|
|
9
|
+
client;
|
|
10
|
+
constructor(client) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Enqueue a new job for asynchronous processing.
|
|
15
|
+
*
|
|
16
|
+
* @param jobType - The type of job to enqueue
|
|
17
|
+
* @param payload - Job-specific payload data
|
|
18
|
+
* @returns Job ID and polling information
|
|
19
|
+
*/
|
|
20
|
+
async enqueue(jobType, payload) {
|
|
21
|
+
return this.client.request({
|
|
22
|
+
endpoint: '/api/job/enqueue',
|
|
23
|
+
method: 'POST',
|
|
24
|
+
body: { job_type: jobType, payload },
|
|
25
|
+
useGateway: true,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check the status of a job.
|
|
30
|
+
*
|
|
31
|
+
* @param jobId - The job ID to check
|
|
32
|
+
* @returns Current job status and metadata
|
|
33
|
+
*/
|
|
34
|
+
async getStatus(jobId) {
|
|
35
|
+
return this.client.request({
|
|
36
|
+
endpoint: '/api/job/status',
|
|
37
|
+
method: 'POST',
|
|
38
|
+
body: { job_id: jobId },
|
|
39
|
+
useGateway: true,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Poll for a job result (blocks until complete or timeout).
|
|
44
|
+
*
|
|
45
|
+
* @param jobId - The job ID to wait for
|
|
46
|
+
* @param timeoutMs - Max wait time in ms (default 30000, max 120000)
|
|
47
|
+
* @returns Job result or timeout indicator
|
|
48
|
+
*/
|
|
49
|
+
async getResult(jobId, timeoutMs = 30000) {
|
|
50
|
+
return this.client.request({
|
|
51
|
+
endpoint: '/api/job/result',
|
|
52
|
+
method: 'POST',
|
|
53
|
+
body: { job_id: jobId, timeout_ms: timeoutMs },
|
|
54
|
+
useGateway: true,
|
|
55
|
+
timeout: Math.min(timeoutMs + 5000, 125000), // SDK timeout > poll timeout
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* List dead-lettered jobs, optionally filtered by type.
|
|
60
|
+
*
|
|
61
|
+
* @param jobType - Optional job type filter
|
|
62
|
+
* @returns Grouped dead letter jobs
|
|
63
|
+
*/
|
|
64
|
+
async listDeadLetterJobs(jobType) {
|
|
65
|
+
const body = { action: 'list' };
|
|
66
|
+
if (jobType)
|
|
67
|
+
body.job_type = jobType;
|
|
68
|
+
return this.client.request({
|
|
69
|
+
endpoint: '/api/job/dead-letter',
|
|
70
|
+
method: 'POST',
|
|
71
|
+
body,
|
|
72
|
+
useGateway: true,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Retry a dead-lettered job (re-queues it).
|
|
77
|
+
*
|
|
78
|
+
* @param jobId - The dead job ID to retry
|
|
79
|
+
*/
|
|
80
|
+
async retryJob(jobId) {
|
|
81
|
+
return this.client.request({
|
|
82
|
+
endpoint: '/api/job/dead-letter',
|
|
83
|
+
method: 'POST',
|
|
84
|
+
body: { action: 'retry', job_id: jobId },
|
|
85
|
+
useGateway: true,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Permanently discard a dead-lettered job.
|
|
90
|
+
*
|
|
91
|
+
* @param jobId - The dead job ID to discard
|
|
92
|
+
*/
|
|
93
|
+
async discardJob(jobId) {
|
|
94
|
+
return this.client.request({
|
|
95
|
+
endpoint: '/api/job/dead-letter',
|
|
96
|
+
method: 'POST',
|
|
97
|
+
body: { action: 'discard', job_id: jobId },
|
|
98
|
+
useGateway: true,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Check job worker health.
|
|
103
|
+
*/
|
|
104
|
+
async getHealth() {
|
|
105
|
+
return this.client.request({
|
|
106
|
+
endpoint: '/api/job/health',
|
|
107
|
+
method: 'GET',
|
|
108
|
+
useGateway: true,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/namespaces/jobs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgEH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,OAAgB;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;YACpC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YACvB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,SAAS,GAAG,KAAK;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE;YAC9C,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,6BAA6B;SAC3E,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAiB;QACxC,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACzD,IAAI,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,sBAAsB;YAChC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,sBAAsB;YAChC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;YACxC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,sBAAsB;YAChC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;YAC1C,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Provides login, logout, session management, profile, and navigation access.
|
|
5
5
|
*/
|
|
6
6
|
import type { DominusClient } from '../lib/client.js';
|
|
7
|
+
import type { LogsNamespace } from './logs.js';
|
|
7
8
|
export interface Session {
|
|
8
9
|
id: string;
|
|
9
10
|
userId: string;
|
|
@@ -56,6 +57,8 @@ export interface NavigationResponse {
|
|
|
56
57
|
}
|
|
57
58
|
export declare class PortalNamespace {
|
|
58
59
|
private client;
|
|
60
|
+
/** @internal Injected by Dominus constructor for cache-hit logging */
|
|
61
|
+
_logs?: LogsNamespace;
|
|
59
62
|
constructor(client: DominusClient);
|
|
60
63
|
/**
|
|
61
64
|
* Login user with password.
|
|
@@ -92,6 +95,9 @@ export declare class PortalNamespace {
|
|
|
92
95
|
/**
|
|
93
96
|
* Get current user/client info.
|
|
94
97
|
*
|
|
98
|
+
* For enriched JWTs (post-Phase1), this returns data from local JWT decode
|
|
99
|
+
* without any network call. Falls back to server for pre-enrichment tokens.
|
|
100
|
+
*
|
|
95
101
|
* @param userToken - User's JWT token (required for user-authenticated requests)
|
|
96
102
|
*/
|
|
97
103
|
me(userToken?: string): Promise<Record<string, unknown>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../src/namespaces/portal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../src/namespaces/portal.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides login, logout, session management, profile, and navigation access.
|
|
5
5
|
*/
|
|
6
|
+
import { userSessionManager } from '../lib/user-session.js';
|
|
6
7
|
export class PortalNamespace {
|
|
7
8
|
client;
|
|
9
|
+
/** @internal Injected by Dominus constructor for cache-hit logging */
|
|
10
|
+
_logs;
|
|
8
11
|
constructor(client) {
|
|
9
12
|
this.client = client;
|
|
10
13
|
}
|
|
@@ -77,14 +80,59 @@ export class PortalNamespace {
|
|
|
77
80
|
/**
|
|
78
81
|
* Get current user/client info.
|
|
79
82
|
*
|
|
83
|
+
* For enriched JWTs (post-Phase1), this returns data from local JWT decode
|
|
84
|
+
* without any network call. Falls back to server for pre-enrichment tokens.
|
|
85
|
+
*
|
|
80
86
|
* @param userToken - User's JWT token (required for user-authenticated requests)
|
|
81
87
|
*/
|
|
82
88
|
async me(userToken) {
|
|
83
|
-
|
|
89
|
+
if (userToken) {
|
|
90
|
+
// Try in-memory cache first (fastest path)
|
|
91
|
+
const cached = userSessionManager.getCachedSession(userToken);
|
|
92
|
+
if (cached) {
|
|
93
|
+
void this._logs?.debug('Identity served from local cache', {}, 'auth');
|
|
94
|
+
return cached;
|
|
95
|
+
}
|
|
96
|
+
// Try local JWT decode (for enriched tokens — no network call)
|
|
97
|
+
const fromToken = userSessionManager.buildFromToken(userToken);
|
|
98
|
+
if (fromToken) {
|
|
99
|
+
userSessionManager.cacheSession(userToken, fromToken);
|
|
100
|
+
void this._logs?.debug('Identity served from local JWT decode', {}, 'auth');
|
|
101
|
+
return fromToken;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Fallback to server call (pre-enrichment tokens or no token)
|
|
105
|
+
const result = await this.client.request({
|
|
84
106
|
endpoint: '/api/portal/auth/me',
|
|
85
107
|
method: 'GET',
|
|
86
108
|
userToken,
|
|
87
109
|
});
|
|
110
|
+
// Cache the server response for subsequent calls
|
|
111
|
+
if (userToken && result) {
|
|
112
|
+
try {
|
|
113
|
+
const r = result;
|
|
114
|
+
const session = {
|
|
115
|
+
subject_type: r.subject_type || 'user',
|
|
116
|
+
tenants: r.tenants || [],
|
|
117
|
+
active_tenant: r.active_tenant || '',
|
|
118
|
+
scopes: r.scopes || [],
|
|
119
|
+
roles: r.roles || [],
|
|
120
|
+
subtypes: r.subtypes || [],
|
|
121
|
+
session_id: r.session_id || '',
|
|
122
|
+
};
|
|
123
|
+
if (r.user) {
|
|
124
|
+
session.user = r.user;
|
|
125
|
+
}
|
|
126
|
+
if (r.client) {
|
|
127
|
+
session.client = r.client;
|
|
128
|
+
}
|
|
129
|
+
userSessionManager.cacheSession(userToken, session);
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Cache failure is non-fatal
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return result;
|
|
88
136
|
}
|
|
89
137
|
/**
|
|
90
138
|
* Switch active tenant context.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../src/namespaces/portal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../src/namespaces/portal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Processor Namespace - Job processing operations via Processor Cloud Run.
|
|
3
|
+
*
|
|
4
|
+
* The Processor service pops jobs from the queue and executes them
|
|
5
|
+
* (DB queries, DDL, migrations, file uploads, workflow executions).
|
|
6
|
+
*/
|
|
7
|
+
import type { DominusClient } from '../lib/client.js';
|
|
8
|
+
export interface ProcessorHealth {
|
|
9
|
+
service: string;
|
|
10
|
+
status: string;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ProcessAllResult {
|
|
14
|
+
processed: number;
|
|
15
|
+
}
|
|
16
|
+
export interface ProcessOneResult {
|
|
17
|
+
job_id: string;
|
|
18
|
+
status: string;
|
|
19
|
+
result: unknown;
|
|
20
|
+
}
|
|
21
|
+
export type ProcessorJobType = 'db_query' | 'db_ddl' | 'db_migration' | 'file_upload' | 'workflow_exec';
|
|
22
|
+
export declare class ProcessorNamespace {
|
|
23
|
+
private client;
|
|
24
|
+
constructor(client: DominusClient);
|
|
25
|
+
/**
|
|
26
|
+
* Check processor health.
|
|
27
|
+
*/
|
|
28
|
+
getHealth(): Promise<ProcessorHealth>;
|
|
29
|
+
/**
|
|
30
|
+
* Process all queued jobs for the current project/environment.
|
|
31
|
+
*
|
|
32
|
+
* @param jobType - Optional filter by job type
|
|
33
|
+
* @returns Number of jobs processed
|
|
34
|
+
*/
|
|
35
|
+
processAll(jobType?: ProcessorJobType): Promise<ProcessAllResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Process a single job from the queue (debug/testing).
|
|
38
|
+
*
|
|
39
|
+
* @param jobType - Optional filter by job type
|
|
40
|
+
* @returns Job ID and result
|
|
41
|
+
*/
|
|
42
|
+
processOne(jobType?: ProcessorJobType): Promise<ProcessOneResult>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/namespaces/processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GACtB,UAAU,GACV,QAAQ,GACR,cAAc,GACd,aAAa,GACb,eAAe,CAAC;AAEtB,qBAAa,kBAAkB;IACf,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAQ3C;;;;;OAKG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYvE;;;;;OAKG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAW1E"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Processor Namespace - Job processing operations via Processor Cloud Run.
|
|
3
|
+
*
|
|
4
|
+
* The Processor service pops jobs from the queue and executes them
|
|
5
|
+
* (DB queries, DDL, migrations, file uploads, workflow executions).
|
|
6
|
+
*/
|
|
7
|
+
export class ProcessorNamespace {
|
|
8
|
+
client;
|
|
9
|
+
constructor(client) {
|
|
10
|
+
this.client = client;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check processor health.
|
|
14
|
+
*/
|
|
15
|
+
async getHealth() {
|
|
16
|
+
return this.client.request({
|
|
17
|
+
endpoint: '/api/processor/health',
|
|
18
|
+
method: 'GET',
|
|
19
|
+
useGateway: true,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Process all queued jobs for the current project/environment.
|
|
24
|
+
*
|
|
25
|
+
* @param jobType - Optional filter by job type
|
|
26
|
+
* @returns Number of jobs processed
|
|
27
|
+
*/
|
|
28
|
+
async processAll(jobType) {
|
|
29
|
+
const body = {};
|
|
30
|
+
if (jobType)
|
|
31
|
+
body.job_type = jobType;
|
|
32
|
+
return this.client.request({
|
|
33
|
+
endpoint: '/api/processor/process',
|
|
34
|
+
method: 'POST',
|
|
35
|
+
body,
|
|
36
|
+
useGateway: true,
|
|
37
|
+
timeout: 300000, // 5 minutes — batch processing can be slow
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Process a single job from the queue (debug/testing).
|
|
42
|
+
*
|
|
43
|
+
* @param jobType - Optional filter by job type
|
|
44
|
+
* @returns Job ID and result
|
|
45
|
+
*/
|
|
46
|
+
async processOne(jobType) {
|
|
47
|
+
const body = {};
|
|
48
|
+
if (jobType)
|
|
49
|
+
body.job_type = jobType;
|
|
50
|
+
return this.client.request({
|
|
51
|
+
endpoint: '/api/processor/process-one',
|
|
52
|
+
method: 'POST',
|
|
53
|
+
body,
|
|
54
|
+
useGateway: true,
|
|
55
|
+
timeout: 120000,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/namespaces/processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,MAAM,OAAO,kBAAkB;IACP;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvB,QAAQ,EAAE,uBAAuB;YACjC,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,OAA0B;QACvC,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvB,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,MAAM,EAAE,2CAA2C;SAC/D,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,OAA0B;QACvC,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvB,QAAQ,EAAE,4BAA4B;YACtC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,MAAM;SAClB,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Namespace - KV Sync Worker operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides endpoints for triggering KV sync operations and checking
|
|
5
|
+
* sync worker health. The sync worker synchronizes token and project
|
|
6
|
+
* data from the database into Cloudflare KV for fast lookups.
|
|
7
|
+
*/
|
|
8
|
+
import type { DominusClient } from '../lib/client.js';
|
|
9
|
+
export interface SyncResult {
|
|
10
|
+
tokens_synced: number;
|
|
11
|
+
projects_synced: number;
|
|
12
|
+
tokens_deleted: number;
|
|
13
|
+
projects_deleted: number;
|
|
14
|
+
errors: string[];
|
|
15
|
+
duration_ms: number;
|
|
16
|
+
triggered_at: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SyncHealth {
|
|
19
|
+
status: string;
|
|
20
|
+
service: string;
|
|
21
|
+
timestamp?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class SyncNamespace {
|
|
24
|
+
private client;
|
|
25
|
+
constructor(client: DominusClient);
|
|
26
|
+
/**
|
|
27
|
+
* Trigger a manual KV sync.
|
|
28
|
+
*
|
|
29
|
+
* Synchronizes token hashes and project metadata from the database
|
|
30
|
+
* into Cloudflare KV. Purges stale entries and re-seeds current data.
|
|
31
|
+
*
|
|
32
|
+
* Requires admin system level.
|
|
33
|
+
*/
|
|
34
|
+
triggerSync(): Promise<SyncResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Check sync worker health.
|
|
37
|
+
*/
|
|
38
|
+
getHealth(): Promise<SyncHealth>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/namespaces/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;;;OAOG;IACG,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;IASxC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CAOvC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Namespace - KV Sync Worker operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides endpoints for triggering KV sync operations and checking
|
|
5
|
+
* sync worker health. The sync worker synchronizes token and project
|
|
6
|
+
* data from the database into Cloudflare KV for fast lookups.
|
|
7
|
+
*/
|
|
8
|
+
export class SyncNamespace {
|
|
9
|
+
client;
|
|
10
|
+
constructor(client) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Trigger a manual KV sync.
|
|
15
|
+
*
|
|
16
|
+
* Synchronizes token hashes and project metadata from the database
|
|
17
|
+
* into Cloudflare KV. Purges stale entries and re-seeds current data.
|
|
18
|
+
*
|
|
19
|
+
* Requires admin system level.
|
|
20
|
+
*/
|
|
21
|
+
async triggerSync() {
|
|
22
|
+
return this.client.request({
|
|
23
|
+
endpoint: '/api/sync/',
|
|
24
|
+
method: 'POST',
|
|
25
|
+
useGateway: true,
|
|
26
|
+
timeout: 60000,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Check sync worker health.
|
|
31
|
+
*/
|
|
32
|
+
async getHealth() {
|
|
33
|
+
return this.client.request({
|
|
34
|
+
endpoint: '/api/sync/health',
|
|
35
|
+
method: 'GET',
|
|
36
|
+
useGateway: true,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/namespaces/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwBH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|