@adonis-agora/telescope 0.24.0 → 0.26.0
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/CHANGELOG.md +37 -0
- package/dist/providers/telescope_provider.js +1 -1
- package/dist/providers/telescope_provider.js.map +1 -1
- package/dist/src/ai/index.d.ts +1 -1
- package/dist/src/ai/index.js +1 -1
- package/dist/src/alerts/index.d.ts +1 -1
- package/dist/src/alerts/index.js +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/mcp/define_config.d.ts.map +1 -1
- package/dist/src/mcp/define_config.js +2 -2
- package/dist/src/mcp/define_config.js.map +1 -1
- package/dist/src/mcp/index.d.ts +1 -1
- package/dist/src/mcp/index.js +1 -1
- package/dist/src/otel/otel_exporter.d.ts +40 -3
- package/dist/src/otel/otel_exporter.d.ts.map +1 -1
- package/dist/src/otel/otel_exporter.js +55 -7
- package/dist/src/otel/otel_exporter.js.map +1 -1
- package/dist/src/profiling/index.d.ts +1 -1
- package/dist/src/profiling/index.js +1 -1
- package/dist/src/ui/define_config.d.ts +37 -23
- package/dist/src/ui/define_config.d.ts.map +1 -1
- package/dist/src/ui/define_config.js +37 -2
- package/dist/src/ui/define_config.js.map +1 -1
- package/dist/src/ui/guard.d.ts +10 -15
- package/dist/src/ui/guard.d.ts.map +1 -1
- package/dist/src/ui/guard.js +11 -21
- package/dist/src/ui/guard.js.map +1 -1
- package/dist/src/ui/index.d.ts +1 -1
- package/dist/src/ui/index.js +1 -1
- package/dist/src/watchers/index.d.ts +1 -1
- package/dist/src/watchers/index.js +1 -1
- package/package.json +12 -7
- package/skills/telescope-access-mcp/SKILL.md +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# @adonis-agora/telescope
|
|
2
2
|
|
|
3
|
+
## 0.26.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#228](https://github.com/DavideCarvalho/adonis-agora-telescope/pull/228) [`0398e27`](https://github.com/DavideCarvalho/adonis-agora-telescope/commit/0398e27eea73153ff5fd6e2406de21568fb06b87) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Dashboard gate: a custom `authorize` hook returning a bare `false` is now a `403`, not a guessed `401`.
|
|
8
|
+
|
|
9
|
+
The guard used to turn a bare `false` (or `{ allowed: false }` with no `reason`) into `401 — Sign in required` whenever the request carried no `Authorization` header / `?token`. That heuristic was built for the built-in `credentials: { token, basic }` gate, but it also fired for custom hooks that authenticate via a session cookie (e.g. `@adonis-agora/authz`'s `authorizeByRoles`), so a signed-in user without the right role was told to sign in instead of getting `403`.
|
|
10
|
+
|
|
11
|
+
Telescope now follows the same dashboard-gate contract as every `@adonis-agora` console:
|
|
12
|
+
|
|
13
|
+
- `true` / `{ allowed: true }` → proceed.
|
|
14
|
+
- `{ allowed: false, reason: 'unauthenticated' }` → `401`; `reason: 'forbidden'` → `403`.
|
|
15
|
+
- bare `false` / `{ allowed: false }` without a `reason` → `403` (fail closed); a throwing hook → `403`.
|
|
16
|
+
- a redirect (or body) the hook already wrote still wins; pages get the access-denied HTML, the API gets JSON.
|
|
17
|
+
|
|
18
|
+
The built-in gate (no custom `authorize`, or `authorize: defaultAuthorize(...)`, in both `telescope_ui` and `telescope_mcp` configs) keeps its behavior: `401` + `WWW-Authenticate` when no credential was presented, `403` when one was presented but rejected. The exported `defaultAuthorize()` still returns a plain `boolean`.
|
|
19
|
+
|
|
20
|
+
**Migration:** if your custom hook relied on the `401` for anonymous visitors, return `{ allowed: false, reason: 'unauthenticated' }` for that case.
|
|
21
|
+
|
|
22
|
+
## 0.25.0
|
|
23
|
+
|
|
24
|
+
### Minor Changes
|
|
25
|
+
|
|
26
|
+
- [#227](https://github.com/DavideCarvalho/adonis-agora-telescope/pull/227) [`192cd5c`](https://github.com/DavideCarvalho/adonis-agora-telescope/commit/192cd5c560be41bb85d9e5d8d113b938db5ee61d) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Support OpenTelemetry JS 3 and `@anthropic-ai/sdk` 1.x, alongside the versions already supported.
|
|
27
|
+
|
|
28
|
+
- Peer ranges: `@opentelemetry/resources` `^2.0.0 || ^3.0.0`, `@opentelemetry/sdk-logs`
|
|
29
|
+
`>=0.220.0 <1.0.0 || ^3.0.0`, `@anthropic-ai/sdk` `>=0.32.0 <2.0.0`. The `0.300.x` OTLP
|
|
30
|
+
exporters and `@opentelemetry/api` 1.10 were already in range.
|
|
31
|
+
- New optional peer `@opentelemetry/sdk-trace` (`^2.9.0 || ^3.0.0`). OTel JS 3 has no
|
|
32
|
+
`@opentelemetry/sdk-trace-base`: it was deprecated in favour of `sdk-trace`, which renames
|
|
33
|
+
`BasicTracerProvider` to `TracerProvider` and takes `new BatchSpanProcessor({ exporter })`. OTel
|
|
34
|
+
export loads `sdk-trace` when it is installed and falls back to `sdk-trace-base` 2.x otherwise,
|
|
35
|
+
so a host that has only `sdk-trace-base` keeps exporting without changing its dependencies.
|
|
36
|
+
- `@opentelemetry/sdk-logs` 0.200–0.219 is no longer in the peer range. Those versions take
|
|
37
|
+
`new BatchLogRecordProcessor(exporter)` while telescope passes `{ exporter }`, so on them no log
|
|
38
|
+
record was ever exported.
|
|
39
|
+
|
|
3
40
|
## 0.24.0
|
|
4
41
|
|
|
5
42
|
### Minor Changes
|
|
@@ -201,7 +201,7 @@ export default class TelescopeProvider {
|
|
|
201
201
|
import('../src/otel/otel_exporter.js'),
|
|
202
202
|
import('../src/otel/otel_exporting_store.js'),
|
|
203
203
|
]);
|
|
204
|
-
const exporter = createOtelExporter(config.otel);
|
|
204
|
+
const exporter = await createOtelExporter(config.otel);
|
|
205
205
|
this.otelExporter = exporter;
|
|
206
206
|
return new OtelExportingTelescopeStore(store, exporter, config.otel.entryTypes);
|
|
207
207
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_provider.js","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"telescope_provider.js","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ai/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.26.0";
|
|
3
3
|
export type { ResolvedTelescopeAiConfig, TelescopeAiConfig, } from './define_config.js';
|
|
4
4
|
export { DEFAULT_MAX_TOKENS, DEFAULT_MODEL, defineConfig, resolveConfig, } from './define_config.js';
|
|
5
5
|
export type { Diagnosis, DiagnosisConfidence, ExceptionEntryContent } from './diagnoser.js';
|
package/dist/src/ai/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.26.0';
|
|
3
3
|
// — config —
|
|
4
4
|
export { DEFAULT_MAX_TOKENS, DEFAULT_MODEL, defineConfig, resolveConfig, } from './define_config.js';
|
|
5
5
|
// — diagnosis model + parsing —
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.26.0";
|
|
3
3
|
export type { AlertChannel, ChannelFetch, ConsoleSink } from './alert_channel.js';
|
|
4
4
|
export { consoleChannel, customChannel, slackChannel, webhookChannel, } from './alert_channel.js';
|
|
5
5
|
export type { AlertDiagnosis, AlertGeoLocation, AlertMetric, AlertPayload, AlertRule, ExceptionAlertContext, GeoLookup, ResolvedAlerts, } from './alert_rule.js';
|
package/dist/src/alerts/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.26.0';
|
|
3
3
|
// — channels —
|
|
4
4
|
export { consoleChannel, customChannel, slackChannel, webhookChannel, } from './alert_channel.js';
|
|
5
5
|
// — alerter (exception source → tracker → channels) —
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.26.0";
|
|
3
3
|
export { configure } from '../configure.js';
|
|
4
4
|
export type { DiagnoserLike, DiagnosisCoordinatorOptions, DiagnosisSummary, } from './ai/diagnosis_coordinator.js';
|
|
5
5
|
export { DiagnosisCoordinator, formatDiagnosisMarkdown, } from './ai/diagnosis_coordinator.js';
|
package/dist/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.26.0';
|
|
3
3
|
// Re-export the configure hook from the package root so `node ace configure` finds it
|
|
4
4
|
export { configure } from '../configure.js';
|
|
5
5
|
// — AI diagnosis coordinator (wires the MCP tool + the alerter; SDK-free) —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../../src/mcp/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../../src/mcp/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,+DAA+D;AAC/D,eAAO,MAAM,cAAc,YACzB,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,YAAY,EACZ,oBAAoB,CACZ,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,qFAAqF;IACrF,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,0DAA0D;AAC1D,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,4BAA4B;IAC5B,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAE3E;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,MAAM,GAAE,kBAAuB,GAAG,0BAA0B,CAUzF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defaultAuthorize, normalizePath, } from '../ui/define_config.js';
|
|
1
|
+
import { defaultAuthorize, normalizePath, withCredentialStatus, } from '../ui/define_config.js';
|
|
2
2
|
/** The tools the MCP server can expose, in catalogue order. */
|
|
3
3
|
export const MCP_TOOL_NAMES = [
|
|
4
4
|
'list_entries',
|
|
@@ -27,7 +27,7 @@ export function resolveConfig(config = {}) {
|
|
|
27
27
|
return {
|
|
28
28
|
enabled: config.enabled ?? true,
|
|
29
29
|
path: normalizePath(config.path ?? '/telescope/mcp'),
|
|
30
|
-
authorize: config.authorize ?? defaultAuthorize(credentials),
|
|
30
|
+
authorize: withCredentialStatus(config.authorize ?? defaultAuthorize(credentials)),
|
|
31
31
|
credentials,
|
|
32
32
|
tools: new Set(tools),
|
|
33
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/mcp/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,aAAa,
|
|
1
|
+
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/mcp/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,aAAa,EAEb,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc;IACd,WAAW;IACX,WAAW;IACX,eAAe;IACf,YAAY;IACZ,oBAAoB;CACZ,CAAC;AA8CX;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAAC,MAAM,GAAuB,EAAE;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IACzE,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC;QACpD,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAClF,WAAW;QACX,KAAK,EAAE,IAAI,GAAG,CAAc,KAAK,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
package/dist/src/mcp/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.26.0";
|
|
3
3
|
export type { McpToolName, ResolvedTelescopeMcpConfig, TelescopeMcpConfig, } from './define_config.js';
|
|
4
4
|
export { defineConfig, MCP_TOOL_NAMES, resolveConfig } from './define_config.js';
|
|
5
5
|
export type { DiagnoseExceptionHook, JsonRpcRequest, McpToolSpec, TelescopeMcpServerOptions, } from './server.js';
|
package/dist/src/mcp/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.26.0';
|
|
3
3
|
// — config —
|
|
4
4
|
export { defineConfig, MCP_TOOL_NAMES, resolveConfig } from './define_config.js';
|
|
5
5
|
// — server (plain, testable JSON-RPC surface) —
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BatchSpanProcessor, SpanExporter, TracerProvider } from '@opentelemetry/sdk-trace';
|
|
1
2
|
import type { ResolvedOtelConfig } from '../define_config.js';
|
|
2
3
|
import type { LogExportInput, SpanExportInput } from './mapper.js';
|
|
3
4
|
/** What `telescope_otel_exporting_store.ts` calls per mapped entry. */
|
|
@@ -7,11 +8,47 @@ export interface OtelExporter {
|
|
|
7
8
|
/** Flush + shut down both providers. Called at telescope provider shutdown. */
|
|
8
9
|
shutdown(): Promise<void>;
|
|
9
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* The slice of the tracing SDK this bridge needs, normalized across the two packages
|
|
13
|
+
* that can provide it (see {@link loadTraceSdk}).
|
|
14
|
+
*/
|
|
15
|
+
export interface TraceSdk {
|
|
16
|
+
TracerProvider: typeof TracerProvider;
|
|
17
|
+
/** Wrap `exporter` in a `BatchSpanProcessor`, in whichever constructor shape the
|
|
18
|
+
* resolved package takes. */
|
|
19
|
+
createBatchSpanProcessor(exporter: SpanExporter): BatchSpanProcessor;
|
|
20
|
+
}
|
|
21
|
+
/** How {@link loadTraceSdk} imports each candidate package. Injectable for tests. */
|
|
22
|
+
export interface TraceSdkLoaders {
|
|
23
|
+
sdkTrace: () => Promise<Pick<typeof import('@opentelemetry/sdk-trace'), 'TracerProvider' | 'BatchSpanProcessor'>>;
|
|
24
|
+
sdkTraceBase: () => Promise<Pick<typeof import('@opentelemetry/sdk-trace-base'), 'BasicTracerProvider' | 'BatchSpanProcessor'>>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the tracing SDK. OTel JS 3 retired `@opentelemetry/sdk-trace-base`: its last
|
|
28
|
+
* line is 2.x, deprecated in favour of `@opentelemetry/sdk-trace`, which ships from 2.9.0
|
|
29
|
+
* on. The two differ in exactly the two classes used here:
|
|
30
|
+
*
|
|
31
|
+
* | package | provider class | `BatchSpanProcessor` takes |
|
|
32
|
+
* | ------------------------------- | --------------------- | --------------------------- |
|
|
33
|
+
* | `@opentelemetry/sdk-trace` 2.9+ | `TracerProvider` | `{ exporter, ...options }` |
|
|
34
|
+
* | `@opentelemetry/sdk-trace-base` | `BasicTracerProvider` | `(exporter, config?)` |
|
|
35
|
+
*
|
|
36
|
+
* Both providers take the same `{ resource, spanProcessors }` options. Order:
|
|
37
|
+
*
|
|
38
|
+
* 1. `@opentelemetry/sdk-trace` (2.9+ or 3.x) when the host has it;
|
|
39
|
+
* 2. otherwise `@opentelemetry/sdk-trace-base` 2.x, the package this bridge required
|
|
40
|
+
* before, so a host that installed only that keeps exporting after upgrading.
|
|
41
|
+
*
|
|
42
|
+
* When neither loads, the error from `sdk-trace` (the package the docs tell hosts to
|
|
43
|
+
* install) is rethrown, and the provider logs it and leaves OTel export off.
|
|
44
|
+
*/
|
|
45
|
+
export declare function loadTraceSdk(loaders?: TraceSdkLoaders): Promise<TraceSdk>;
|
|
10
46
|
/**
|
|
11
47
|
* Build the OTel exporter from resolved config. Each call constructs its own
|
|
12
|
-
* private `
|
|
48
|
+
* private `TracerProvider` + `LoggerProvider` (with a `BatchSpanProcessor` /
|
|
13
49
|
* `BatchLogRecordProcessor` batching to the configured OTLP/HTTP endpoint) — cheap
|
|
14
|
-
* enough to build once at provider boot and reuse for the process lifetime.
|
|
50
|
+
* enough to build once at provider boot and reuse for the process lifetime. Async
|
|
51
|
+
* only because the tracing SDK is resolved at call time (see {@link loadTraceSdk}).
|
|
15
52
|
*/
|
|
16
|
-
export declare function createOtelExporter(config: ResolvedOtelConfig): OtelExporter
|
|
53
|
+
export declare function createOtelExporter(config: ResolvedOtelConfig, traceSdkLoaders?: TraceSdkLoaders): Promise<OtelExporter>;
|
|
17
54
|
//# sourceMappingURL=otel_exporter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel_exporter.d.ts","sourceRoot":"","sources":["../../../src/otel/otel_exporter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"otel_exporter.d.ts","sourceRoot":"","sources":["../../../src/otel/otel_exporter.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA0BnE,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,+EAA+E;IAC/E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAaD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC;kCAC8B;IAC9B,wBAAwB,CAAC,QAAQ,EAAE,YAAY,GAAG,kBAAkB,CAAC;CACtE;AAED,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,OAAO,CACrB,IAAI,CAAC,cAAc,0BAA0B,CAAC,EAAE,gBAAgB,GAAG,oBAAoB,CAAC,CACzF,CAAC;IACF,YAAY,EAAE,MAAM,OAAO,CACzB,IAAI,CACF,cAAc,+BAA+B,CAAC,EAC9C,qBAAqB,GAAG,oBAAoB,CAC7C,CACF,CAAC;CACH;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAChC,OAAO,GAAE,eAAwC,GAChD,OAAO,CAAC,QAAQ,CAAC,CAsBnB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,YAAY,CAAC,CAoEvB"}
|
|
@@ -3,7 +3,6 @@ import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
|
|
|
3
3
|
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
4
4
|
import { resourceFromAttributes } from '@opentelemetry/resources';
|
|
5
5
|
import { BatchLogRecordProcessor, LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
6
|
-
import { BasicTracerProvider, BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
7
6
|
/**
|
|
8
7
|
* THE ONLY FILE in this package that imports `@opentelemetry/*` at the module
|
|
9
8
|
* top level. It is loaded exclusively via a dynamic `import()` from
|
|
@@ -12,7 +11,7 @@ import { BasicTracerProvider, BatchSpanProcessor } from '@opentelemetry/sdk-trac
|
|
|
12
11
|
* any OTel package. Mirrors the exact convention `stores/factory.ts` uses for the
|
|
13
12
|
* `lucid` driver's peer dependency.
|
|
14
13
|
*
|
|
15
|
-
* Deliberately minimal: `
|
|
14
|
+
* Deliberately minimal: `TracerProvider`/`LoggerProvider` from `sdk-trace`
|
|
16
15
|
* / `sdk-logs` plus their OTLP/HTTP exporters — no auto-instrumentation SDK, no
|
|
17
16
|
* Node context-manager registration, no global provider registration
|
|
18
17
|
* (`trace.setGlobalTracerProvider` is never called). This bridge owns a PRIVATE
|
|
@@ -37,22 +36,71 @@ function contextFor(traceId) {
|
|
|
37
36
|
isRemote: true,
|
|
38
37
|
});
|
|
39
38
|
}
|
|
39
|
+
const defaultTraceSdkLoaders = {
|
|
40
|
+
sdkTrace: () => import('@opentelemetry/sdk-trace'),
|
|
41
|
+
sdkTraceBase: () => import('@opentelemetry/sdk-trace-base'),
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Resolve the tracing SDK. OTel JS 3 retired `@opentelemetry/sdk-trace-base`: its last
|
|
45
|
+
* line is 2.x, deprecated in favour of `@opentelemetry/sdk-trace`, which ships from 2.9.0
|
|
46
|
+
* on. The two differ in exactly the two classes used here:
|
|
47
|
+
*
|
|
48
|
+
* | package | provider class | `BatchSpanProcessor` takes |
|
|
49
|
+
* | ------------------------------- | --------------------- | --------------------------- |
|
|
50
|
+
* | `@opentelemetry/sdk-trace` 2.9+ | `TracerProvider` | `{ exporter, ...options }` |
|
|
51
|
+
* | `@opentelemetry/sdk-trace-base` | `BasicTracerProvider` | `(exporter, config?)` |
|
|
52
|
+
*
|
|
53
|
+
* Both providers take the same `{ resource, spanProcessors }` options. Order:
|
|
54
|
+
*
|
|
55
|
+
* 1. `@opentelemetry/sdk-trace` (2.9+ or 3.x) when the host has it;
|
|
56
|
+
* 2. otherwise `@opentelemetry/sdk-trace-base` 2.x, the package this bridge required
|
|
57
|
+
* before, so a host that installed only that keeps exporting after upgrading.
|
|
58
|
+
*
|
|
59
|
+
* When neither loads, the error from `sdk-trace` (the package the docs tell hosts to
|
|
60
|
+
* install) is rethrown, and the provider logs it and leaves OTel export off.
|
|
61
|
+
*/
|
|
62
|
+
export async function loadTraceSdk(loaders = defaultTraceSdkLoaders) {
|
|
63
|
+
try {
|
|
64
|
+
const sdk = await loaders.sdkTrace();
|
|
65
|
+
return {
|
|
66
|
+
TracerProvider: sdk.TracerProvider,
|
|
67
|
+
createBatchSpanProcessor: (exporter) => new sdk.BatchSpanProcessor({ exporter }),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
catch (sdkTraceError) {
|
|
71
|
+
let legacy;
|
|
72
|
+
try {
|
|
73
|
+
legacy = await loaders.sdkTraceBase();
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
throw sdkTraceError;
|
|
77
|
+
}
|
|
78
|
+
// The casts only bridge type identity: the legacy classes were compiled against
|
|
79
|
+
// their own copies of `@opentelemetry/resources` / `api`, not the ones resolved here.
|
|
80
|
+
return {
|
|
81
|
+
TracerProvider: legacy.BasicTracerProvider,
|
|
82
|
+
createBatchSpanProcessor: (exporter) => new legacy.BatchSpanProcessor(exporter),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
40
86
|
/**
|
|
41
87
|
* Build the OTel exporter from resolved config. Each call constructs its own
|
|
42
|
-
* private `
|
|
88
|
+
* private `TracerProvider` + `LoggerProvider` (with a `BatchSpanProcessor` /
|
|
43
89
|
* `BatchLogRecordProcessor` batching to the configured OTLP/HTTP endpoint) — cheap
|
|
44
|
-
* enough to build once at provider boot and reuse for the process lifetime.
|
|
90
|
+
* enough to build once at provider boot and reuse for the process lifetime. Async
|
|
91
|
+
* only because the tracing SDK is resolved at call time (see {@link loadTraceSdk}).
|
|
45
92
|
*/
|
|
46
|
-
export function createOtelExporter(config) {
|
|
93
|
+
export async function createOtelExporter(config, traceSdkLoaders) {
|
|
94
|
+
const traceSdk = await loadTraceSdk(traceSdkLoaders);
|
|
47
95
|
const resource = resourceFromAttributes({ 'service.name': config.serviceName });
|
|
48
96
|
const traceExporter = new OTLPTraceExporter({
|
|
49
97
|
url: `${config.endpoint}${config.tracesPath}`,
|
|
50
98
|
headers: config.headers,
|
|
51
99
|
timeoutMillis: config.timeoutMs,
|
|
52
100
|
});
|
|
53
|
-
const tracerProvider = new
|
|
101
|
+
const tracerProvider = new traceSdk.TracerProvider({
|
|
54
102
|
resource,
|
|
55
|
-
spanProcessors: [
|
|
103
|
+
spanProcessors: [traceSdk.createBatchSpanProcessor(traceExporter)],
|
|
56
104
|
});
|
|
57
105
|
const tracer = tracerProvider.getTracer('@adonis-agora/telescope');
|
|
58
106
|
const logExporter = new OTLPLogExporter({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel_exporter.js","sourceRoot":"","sources":["../../../src/otel/otel_exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,QAAQ,EACR,cAAc,EACd,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"otel_exporter.js","sourceRoot":"","sources":["../../../src/otel/otel_exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.26.0";
|
|
3
3
|
export { aggregateCpuProfile } from './aggregate-profile.js';
|
|
4
4
|
export type { CpuProfilerOptions, CpuProfilerResult, InspectorSessionLike, SessionFactory, } from './cpu-profiler.js';
|
|
5
5
|
export { CpuProfiler, defaultSessionFactory } from './cpu-profiler.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.26.0';
|
|
3
3
|
export { aggregateCpuProfile } from './aggregate-profile.js';
|
|
4
4
|
export { CpuProfiler, defaultSessionFactory } from './cpu-profiler.js';
|
|
5
5
|
export { defineConfig, resolveConfig } from './define_config.js';
|
|
@@ -14,28 +14,25 @@ export type AccessDeniedRenderer = GenericAccessDeniedRenderer<UiHttpContext>;
|
|
|
14
14
|
export type AccessDeniedOption = GenericAccessDeniedOption<UiHttpContext>;
|
|
15
15
|
/**
|
|
16
16
|
* The enriched form of an {@link AuthorizeHook}'s return value: a plain `allowed` plus an OPTIONAL
|
|
17
|
-
* `reason` telling the guard exactly which denial this is
|
|
17
|
+
* `reason` telling the guard exactly which denial this is.
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
19
|
+
* This is the dashboard-gate contract shared (copied verbatim) by every `@adonis-agora` console —
|
|
20
|
+
* telescope, durable, media, payments, agent, authz:
|
|
21
|
+
* - `true` / `{ allowed: true }` → proceed.
|
|
22
|
+
* - `{ allowed: false, reason: 'unauthenticated' }` → `401` (nobody is signed in).
|
|
23
|
+
* - `{ allowed: false, reason: 'forbidden' }` → `403` (signed in, but not authorized).
|
|
24
|
+
* - a bare `false`, or `{ allowed: false }` with no `reason` → `403` (fail closed).
|
|
25
|
+
* - the hook throws → `403`.
|
|
26
26
|
*
|
|
27
|
-
*
|
|
28
|
-
* `
|
|
29
|
-
*
|
|
30
|
-
*
|
|
27
|
+
* So a hook that wants the "please sign in" `401` (e.g. `@adonis-agora/authz`'s `authorizeByRoles`
|
|
28
|
+
* for an anonymous visitor) must say so with `reason: 'unauthenticated'`. `reason` reuses the same
|
|
29
|
+
* vocabulary as {@link AccessDeniedInfo.reason}, so a hook and a custom `accessDenied` renderer
|
|
30
|
+
* speak the same two words.
|
|
31
31
|
*/
|
|
32
32
|
export interface AuthorizeDecision {
|
|
33
33
|
/** Whether the request may proceed. */
|
|
34
34
|
allowed: boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Why `allowed` is `false`. Omit it to fall back to the guard's request-shape heuristic (the same
|
|
37
|
-
* one a bare `false` return gets) — useful when the hook itself doesn't know which case applies.
|
|
38
|
-
*/
|
|
35
|
+
/** Why `allowed` is `false`. Omitted on a denial → `403` (fail closed). */
|
|
39
36
|
reason?: 'unauthenticated' | 'forbidden';
|
|
40
37
|
}
|
|
41
38
|
/** What an {@link AuthorizeHook} may return: either form, sync or async. */
|
|
@@ -46,13 +43,16 @@ export type AuthorizeResult = boolean | AuthorizeDecision;
|
|
|
46
43
|
* context, so a host can inspect headers, a session, an injected user — whatever
|
|
47
44
|
* its own auth exposes. Sync or async.
|
|
48
45
|
*
|
|
49
|
-
* A bare `false`
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
46
|
+
* A bare `false` from a custom hook is a `403`. To answer `401` ("please authenticate") return an
|
|
47
|
+
* {@link AuthorizeDecision} with `reason: 'unauthenticated'`; see that type for the full contract
|
|
48
|
+
* and the "Delegate to your app's auth" doc section. A hook may also answer the request itself
|
|
49
|
+
* (e.g. `ctx.response.redirect('/login')`) and return `false`: the guard then writes nothing.
|
|
50
|
+
*
|
|
51
|
+
* Only the BUILT-IN gate ({@link defaultAuthorize}, used when no custom `authorize` is configured)
|
|
52
|
+
* distinguishes `401` from `403` by request shape — `401` when the request presented no
|
|
53
|
+
* `Authorization` header and no `?token`, `403` when a credential was presented but rejected — since
|
|
54
|
+
* for its `credentials: { token, basic }` "no credential in the request" and "not authenticated" are
|
|
55
|
+
* the same fact.
|
|
56
56
|
*/
|
|
57
57
|
export type AuthorizeHook = (ctx: UiHttpContext) => AuthorizeResult | Promise<AuthorizeResult>;
|
|
58
58
|
/**
|
|
@@ -223,8 +223,22 @@ export declare function normalizePath(path: string): string;
|
|
|
223
223
|
* - if `basic` credentials are set and the request presents them → allow;
|
|
224
224
|
* - otherwise allow only when NOT in production (so a dev dashboard "just works"
|
|
225
225
|
* while a production deploy is denied unless explicitly gated).
|
|
226
|
+
*
|
|
227
|
+
* Returns a plain `boolean` on purpose, so composing it (`if (await defaultAuthorize(c)(ctx))`) is
|
|
228
|
+
* safe. The `401`-vs-`403` split for this gate is added by `resolveConfig` (see
|
|
229
|
+
* {@link withCredentialStatus}) — also when the host passes `authorize: defaultAuthorize(...)`
|
|
230
|
+
* explicitly.
|
|
226
231
|
*/
|
|
227
232
|
export declare function defaultAuthorize(credentials: UiCredentials): AuthorizeHook;
|
|
233
|
+
/**
|
|
234
|
+
* Give a {@link defaultAuthorize} hook its request-shape denial reason: `'unauthenticated'` (→ `401`,
|
|
235
|
+
* with `WWW-Authenticate` so a browser prompts) when no credential was presented, `'forbidden'`
|
|
236
|
+
* (→ `403`) when one was presented but rejected. Any other (custom) hook is returned untouched — its
|
|
237
|
+
* bare `false` is a `403`, per the {@link AuthorizeDecision} contract.
|
|
238
|
+
*
|
|
239
|
+
* @internal Used by the UI and MCP `resolveConfig`.
|
|
240
|
+
*/
|
|
241
|
+
export declare function withCredentialStatus(authorize: AuthorizeHook): AuthorizeHook;
|
|
228
242
|
/** Apply defaults to a (possibly partial) config. */
|
|
229
243
|
export declare function resolveConfig(config?: TelescopeUiConfig): ResolvedTelescopeUiConfig;
|
|
230
244
|
//# sourceMappingURL=define_config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../../src/ui/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,IAAI,yBAAyB,EAC/C,oBAAoB,IAAI,2BAA2B,EACpD,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAE3B,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAC;AAE9E,8FAA8F;AAC9F,MAAM,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB
|
|
1
|
+
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../../src/ui/define_config.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,8 @@ function matchesBasic(ctx, basic) {
|
|
|
72
72
|
const password = decoded.slice(sep + 1);
|
|
73
73
|
return safeEqual(username, basic.username) && safeEqual(password, basic.password);
|
|
74
74
|
}
|
|
75
|
+
/** Hooks minted by {@link defaultAuthorize}, so {@link withCredentialStatus} can recognize them. */
|
|
76
|
+
const defaultHooks = new WeakSet();
|
|
75
77
|
/**
|
|
76
78
|
* The default access policy used when no custom `authorize` is configured:
|
|
77
79
|
*
|
|
@@ -79,9 +81,14 @@ function matchesBasic(ctx, basic) {
|
|
|
79
81
|
* - if `basic` credentials are set and the request presents them → allow;
|
|
80
82
|
* - otherwise allow only when NOT in production (so a dev dashboard "just works"
|
|
81
83
|
* while a production deploy is denied unless explicitly gated).
|
|
84
|
+
*
|
|
85
|
+
* Returns a plain `boolean` on purpose, so composing it (`if (await defaultAuthorize(c)(ctx))`) is
|
|
86
|
+
* safe. The `401`-vs-`403` split for this gate is added by `resolveConfig` (see
|
|
87
|
+
* {@link withCredentialStatus}) — also when the host passes `authorize: defaultAuthorize(...)`
|
|
88
|
+
* explicitly.
|
|
82
89
|
*/
|
|
83
90
|
export function defaultAuthorize(credentials) {
|
|
84
|
-
|
|
91
|
+
const hook = (ctx) => {
|
|
85
92
|
if (credentials.token !== undefined) {
|
|
86
93
|
const presented = readToken(ctx);
|
|
87
94
|
if (presented !== undefined && safeEqual(presented, credentials.token))
|
|
@@ -91,6 +98,34 @@ export function defaultAuthorize(credentials) {
|
|
|
91
98
|
return true;
|
|
92
99
|
return !isProduction();
|
|
93
100
|
};
|
|
101
|
+
defaultHooks.add(hook);
|
|
102
|
+
return hook;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Whether the request presented ANY credential the built-in gate understands: an `Authorization`
|
|
106
|
+
* header (Bearer or Basic) or a `?token`.
|
|
107
|
+
*/
|
|
108
|
+
function presentedCredential(ctx) {
|
|
109
|
+
return (ctx.request.header('authorization') !== undefined || typeof ctx.request.qs().token === 'string');
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Give a {@link defaultAuthorize} hook its request-shape denial reason: `'unauthenticated'` (→ `401`,
|
|
113
|
+
* with `WWW-Authenticate` so a browser prompts) when no credential was presented, `'forbidden'`
|
|
114
|
+
* (→ `403`) when one was presented but rejected. Any other (custom) hook is returned untouched — its
|
|
115
|
+
* bare `false` is a `403`, per the {@link AuthorizeDecision} contract.
|
|
116
|
+
*
|
|
117
|
+
* @internal Used by the UI and MCP `resolveConfig`.
|
|
118
|
+
*/
|
|
119
|
+
export function withCredentialStatus(authorize) {
|
|
120
|
+
if (!defaultHooks.has(authorize))
|
|
121
|
+
return authorize;
|
|
122
|
+
return async (ctx) => {
|
|
123
|
+
const result = await authorize(ctx);
|
|
124
|
+
const allowed = typeof result === 'boolean' ? result : result.allowed;
|
|
125
|
+
if (allowed)
|
|
126
|
+
return true;
|
|
127
|
+
return { allowed: false, reason: presentedCredential(ctx) ? 'forbidden' : 'unauthenticated' };
|
|
128
|
+
};
|
|
94
129
|
}
|
|
95
130
|
/** Apply defaults to a (possibly partial) config. */
|
|
96
131
|
export function resolveConfig(config = {}) {
|
|
@@ -99,7 +134,7 @@ export function resolveConfig(config = {}) {
|
|
|
99
134
|
enabled: config.enabled ?? true,
|
|
100
135
|
path: normalizePath(config.path ?? '/telescope'),
|
|
101
136
|
recordOwnRequests: config.recordOwnRequests ?? false,
|
|
102
|
-
authorize: config.authorize ?? defaultAuthorize(credentials),
|
|
137
|
+
authorize: withCredentialStatus(config.authorize ?? defaultAuthorize(credentials)),
|
|
103
138
|
credentials,
|
|
104
139
|
// Validate + resolve now so a misconfigured secret/login fails closed at boot, not on the first
|
|
105
140
|
// login attempt. `null` when `dashboardAuth` is omitted (behavior unchanged).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/ui/define_config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/ui/define_config.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ui/guard.d.ts
CHANGED
|
@@ -15,22 +15,17 @@ export interface GuardResult {
|
|
|
15
15
|
* decision into a {@link GuardResult}. Framework-light: takes the same minimal
|
|
16
16
|
* HTTP context the handlers do, so it is unit-testable without a server.
|
|
17
17
|
*
|
|
18
|
-
* The hook may return a bare `boolean` OR an {@link AuthorizeDecision}
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* 2. Otherwise (a bare `false`, or `{ allowed: false }` with no `reason`) the REQUEST-SHAPE heuristic
|
|
26
|
-
* this guard has always used runs: **401** when the request presented NO credential at all (an
|
|
27
|
-
* `Authorization` header is absent and no `?token`) — prompts the host/browser to authenticate;
|
|
28
|
-
* **403** when a credential WAS presented but rejected (wrong token/password). Built for this
|
|
29
|
-
* library's own `credentials: { token, basic }` gate, where "no credential in the request" and
|
|
30
|
-
* "not authenticated" are the same fact — a hook authenticating another way should prefer (1).
|
|
18
|
+
* The hook may return a bare `boolean` OR an {@link AuthorizeDecision} (`{ allowed, reason? }`).
|
|
19
|
+
* The mapping is the dashboard-gate contract shared by every `@adonis-agora` console:
|
|
20
|
+
* - `true` / `{ allowed: true }` → allowed.
|
|
21
|
+
* - `reason: 'unauthenticated'` → `401`.
|
|
22
|
+
* - `reason: 'forbidden'` → `403`.
|
|
23
|
+
* - a bare `false`, or `{ allowed: false }` with no `reason` → `403` (fail closed).
|
|
24
|
+
* - the hook throws → `403` (fail closed — never leaks the dashboard).
|
|
31
25
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
26
|
+
* No request-shape guessing happens here. The built-in credentials gate gets its `401` (no
|
|
27
|
+
* credential presented) vs `403` (credential rejected) split by `resolveConfig` wrapping
|
|
28
|
+
* `defaultAuthorize` into a hook that returns the matching `reason`.
|
|
34
29
|
*/
|
|
35
30
|
export declare function runGuard(ctx: UiHttpContext, authorize: AuthorizeHook): Promise<GuardResult>;
|
|
36
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/ui/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/ui/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAcjG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAWjG;AAED,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACxD,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,OAAO,CAAC,CAyBlB"}
|
package/dist/src/ui/guard.js
CHANGED
|
@@ -4,22 +4,17 @@ import { resolveAccessDeniedPage, } from './access_denied_page.js';
|
|
|
4
4
|
* decision into a {@link GuardResult}. Framework-light: takes the same minimal
|
|
5
5
|
* HTTP context the handlers do, so it is unit-testable without a server.
|
|
6
6
|
*
|
|
7
|
-
* The hook may return a bare `boolean` OR an {@link AuthorizeDecision}
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* 2. Otherwise (a bare `false`, or `{ allowed: false }` with no `reason`) the REQUEST-SHAPE heuristic
|
|
15
|
-
* this guard has always used runs: **401** when the request presented NO credential at all (an
|
|
16
|
-
* `Authorization` header is absent and no `?token`) — prompts the host/browser to authenticate;
|
|
17
|
-
* **403** when a credential WAS presented but rejected (wrong token/password). Built for this
|
|
18
|
-
* library's own `credentials: { token, basic }` gate, where "no credential in the request" and
|
|
19
|
-
* "not authenticated" are the same fact — a hook authenticating another way should prefer (1).
|
|
7
|
+
* The hook may return a bare `boolean` OR an {@link AuthorizeDecision} (`{ allowed, reason? }`).
|
|
8
|
+
* The mapping is the dashboard-gate contract shared by every `@adonis-agora` console:
|
|
9
|
+
* - `true` / `{ allowed: true }` → allowed.
|
|
10
|
+
* - `reason: 'unauthenticated'` → `401`.
|
|
11
|
+
* - `reason: 'forbidden'` → `403`.
|
|
12
|
+
* - a bare `false`, or `{ allowed: false }` with no `reason` → `403` (fail closed).
|
|
13
|
+
* - the hook throws → `403` (fail closed — never leaks the dashboard).
|
|
20
14
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
15
|
+
* No request-shape guessing happens here. The built-in credentials gate gets its `401` (no
|
|
16
|
+
* credential presented) vs `403` (credential rejected) split by `resolveConfig` wrapping
|
|
17
|
+
* `defaultAuthorize` into a hook that returns the matching `reason`.
|
|
23
18
|
*/
|
|
24
19
|
export async function runGuard(ctx, authorize) {
|
|
25
20
|
let result;
|
|
@@ -35,12 +30,7 @@ export async function runGuard(ctx, authorize) {
|
|
|
35
30
|
const reason = typeof result === 'boolean' ? undefined : result.reason;
|
|
36
31
|
if (reason === 'unauthenticated')
|
|
37
32
|
return { allowed: false, status: 401, message: 'Unauthorized' };
|
|
38
|
-
|
|
39
|
-
return { allowed: false, status: 403, message: 'Forbidden' };
|
|
40
|
-
const presentedCredential = ctx.request.header('authorization') !== undefined || typeof ctx.request.qs().token === 'string';
|
|
41
|
-
return presentedCredential
|
|
42
|
-
? { allowed: false, status: 403, message: 'Forbidden' }
|
|
43
|
-
: { allowed: false, status: 401, message: 'Unauthorized' };
|
|
33
|
+
return { allowed: false, status: 403, message: 'Forbidden' };
|
|
44
34
|
}
|
|
45
35
|
/**
|
|
46
36
|
* Guard `ctx` and, on denial, write the status + message onto the response and
|
package/dist/src/ui/guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/ui/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAcjC
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/ui/guard.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ui/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.26.0";
|
|
3
3
|
export type { AccessDeniedInfo, AccessDeniedPageOptions, AccessDeniedReason, } from './access_denied_page.js';
|
|
4
4
|
export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
|
|
5
5
|
export type { EntrySummary, RetentionInfo, RetentionOptions, RetentionPruneOptions, RetentionSamplingRate, } from './api.js';
|
package/dist/src/ui/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.26.0';
|
|
3
3
|
// — the built-in "access denied" page (what a browser sees on a refused page navigation) —
|
|
4
4
|
export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
|
|
5
5
|
// — JSON API —
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.26.0";
|
|
3
3
|
export type { CacheEntryContent, CacheEventLike, CacheOperation } from './cache_watcher.js';
|
|
4
4
|
export { buildCacheEntry, CACHE_EVENTS, CacheWatcher } from './cache_watcher.js';
|
|
5
5
|
export { nextCronRunMs } from './cron_next_run.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.26.0';
|
|
3
3
|
// — cache watcher —
|
|
4
4
|
export { buildCacheEntry, CACHE_EVENTS, CacheWatcher } from './cache_watcher.js';
|
|
5
5
|
export { nextCronRunMs } from './cron_next_run.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/telescope",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Laravel Telescope-style headless observability for AdonisJS — records HTTP requests and every Agora diagnostics event as queryable entries, plus opt-in subpaths for per-technology watchers, a web dashboard, AI exception diagnosis, and alerting.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -132,14 +132,15 @@
|
|
|
132
132
|
"@adonisjs/core": "^7.3.0",
|
|
133
133
|
"@adonisjs/lucid": "^22.4.0",
|
|
134
134
|
"@adonisjs/mail": "^10.2.0",
|
|
135
|
-
"@anthropic-ai/sdk": ">=0.32.0 <
|
|
135
|
+
"@anthropic-ai/sdk": ">=0.32.0 <2.0.0",
|
|
136
136
|
"@aws-sdk/client-s3": "^3.400.0",
|
|
137
137
|
"@duckdb/node-api": ">=1.5.6-r.1 <2.0.0",
|
|
138
138
|
"@opentelemetry/api": "^1.9.0",
|
|
139
139
|
"@opentelemetry/exporter-logs-otlp-http": ">=0.200.0 <1.0.0",
|
|
140
140
|
"@opentelemetry/exporter-trace-otlp-http": ">=0.200.0 <1.0.0",
|
|
141
|
-
"@opentelemetry/resources": "^2.0.0",
|
|
142
|
-
"@opentelemetry/sdk-logs": ">=0.
|
|
141
|
+
"@opentelemetry/resources": "^2.0.0 || ^3.0.0",
|
|
142
|
+
"@opentelemetry/sdk-logs": ">=0.220.0 <1.0.0 || ^3.0.0",
|
|
143
|
+
"@opentelemetry/sdk-trace": "^2.9.0 || ^3.0.0",
|
|
143
144
|
"@opentelemetry/sdk-trace-base": "^2.0.0",
|
|
144
145
|
"cron-parser": "^4.0.0 || ^5.0.0",
|
|
145
146
|
"hyparquet": "^1.31.0",
|
|
@@ -174,6 +175,9 @@
|
|
|
174
175
|
"@opentelemetry/sdk-logs": {
|
|
175
176
|
"optional": true
|
|
176
177
|
},
|
|
178
|
+
"@opentelemetry/sdk-trace": {
|
|
179
|
+
"optional": true
|
|
180
|
+
},
|
|
177
181
|
"@opentelemetry/sdk-trace-base": {
|
|
178
182
|
"optional": true
|
|
179
183
|
},
|
|
@@ -200,14 +204,15 @@
|
|
|
200
204
|
"@adonisjs/assembler": "8.6.0",
|
|
201
205
|
"@adonisjs/core": "7.6.0",
|
|
202
206
|
"@adonisjs/lucid": "22.4.2",
|
|
203
|
-
"@anthropic-ai/sdk": "
|
|
207
|
+
"@anthropic-ai/sdk": "1.3.0",
|
|
204
208
|
"@aws-sdk/client-s3": "3.1156.0",
|
|
205
209
|
"@duckdb/node-api": "1.5.6-r.2",
|
|
206
210
|
"@opentelemetry/api": "1.10.0",
|
|
207
211
|
"@opentelemetry/exporter-logs-otlp-http": "0.300.0",
|
|
208
212
|
"@opentelemetry/exporter-trace-otlp-http": "0.300.0",
|
|
209
|
-
"@opentelemetry/resources": "
|
|
210
|
-
"@opentelemetry/sdk-logs": "0.
|
|
213
|
+
"@opentelemetry/resources": "3.0.0",
|
|
214
|
+
"@opentelemetry/sdk-logs": "3.0.0",
|
|
215
|
+
"@opentelemetry/sdk-trace": "3.0.0",
|
|
211
216
|
"@opentelemetry/sdk-trace-base": "2.12.0",
|
|
212
217
|
"@tanstack/intent": "0.5.6",
|
|
213
218
|
"@types/better-sqlite3": "9.6.0",
|
|
@@ -73,8 +73,12 @@ export default defineConfig({
|
|
|
73
73
|
})
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
Guard outcomes
|
|
77
|
-
|
|
76
|
+
Guard outcomes for a custom hook: a bare `false` (or `{ allowed: false }` with no
|
|
77
|
+
`reason`) → `403` (fail-closed); `{ allowed: false, reason: 'unauthenticated' }` → `401`
|
|
78
|
+
(+ `WWW-Authenticate`); `reason: 'forbidden'` → `403`; a throwing hook → `403`. Only
|
|
79
|
+
the BUILT-IN credentials gate (no custom `authorize`, or `authorize: defaultAuthorize(...)`,
|
|
80
|
+
in both `telescope_ui` and `telescope_mcp` configs) splits by request shape:
|
|
81
|
+
no credential presented → `401`, rejected credential → `403`.
|
|
78
82
|
|
|
79
83
|
Source: `docs/dashboard/auth.mdx` (Delegate to your app's auth, Guard behaviour).
|
|
80
84
|
|