@crvouga/mockingbird-service-otel 0.2.0 → 1.0.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/CHANGELOG.md +14 -1
- package/dist/{chunk-6WTRISBA.js → chunk-L5D7U74Q.js} +5 -3
- package/dist/chunk-L5D7U74Q.js.map +7 -0
- package/dist/{chunk-RQFUL7RM.js → chunk-OQGHPZJY.js} +24 -7
- package/dist/chunk-OQGHPZJY.js.map +7 -0
- package/dist/cli.js +2 -2
- package/dist/index.d.ts +117 -89
- package/dist/index.js +1 -1
- package/dist/server.d.ts +221 -165
- package/dist/server.js +2 -2
- package/package.json +6 -2
- package/dist/chunk-6WTRISBA.js.map +0 -7
- package/dist/chunk-RQFUL7RM.js.map +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
# Changelog — @crvouga/mockingbird-service-otel
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 1.0.1 (2026-09-26)
|
|
4
|
+
|
|
5
|
+
### Fixes and improvements
|
|
6
|
+
|
|
7
|
+
- take the rejected-request byte count from content-length, never by reading the body ([a0e5fb2](https://github.com/crvouga/mockingbird/commit/a0e5fb2fc80ab725c3552b612f3f091fd6c857fb))
|
|
8
|
+
- reject a present body by media type, and log what a rejected request sent ([12e351a](https://github.com/crvouga/mockingbird/commit/12e351aba53cfb7b41e31a7809419455fc2902eb))
|
|
9
|
+
|
|
10
|
+
## 1.0.0 (2026-09-24)
|
|
11
|
+
|
|
12
|
+
### ⚠️ Breaking changes
|
|
13
|
+
|
|
14
|
+
- vendor branding for every service; purge internal mocks and consumer names ([f689534](https://github.com/crvouga/mockingbird/commit/f6895343543550dafcb7d76b426cae7635e03226))
|
|
15
|
+
|
|
16
|
+
## 0.2.0 (2026-09-23)
|
|
4
17
|
|
|
5
18
|
### Features
|
|
6
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createRuntime
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OQGHPZJY.js";
|
|
4
4
|
|
|
5
5
|
// ../../adapters/node/dist/cli.js
|
|
6
6
|
import { readFile } from "node:fs/promises";
|
|
@@ -208,7 +208,9 @@ var formatLog = (format) => {
|
|
|
208
208
|
const ns = entry.namespace === "default" ? "" : ` [${entry.namespace}]`;
|
|
209
209
|
const fault = entry.faultId ? ` fault=${entry.faultId}` : "";
|
|
210
210
|
const adopted = entry.adopted ? " adopted" : "";
|
|
211
|
-
|
|
211
|
+
const received = entry.request ? ` received=${entry.request.bodyBytes === null ? "?" : `${entry.request.bodyBytes}B`} ct=${entry.request.contentType ?? "-"}${entry.request.transferEncoding ? ` te=${entry.request.transferEncoding}` : ""}` : "";
|
|
212
|
+
const issues = entry.issues?.length ? ` issues=${entry.issues.slice(0, 3).map((issue) => `${issue.path || "$"}: ${issue.message}`).join("; ")}${entry.issues.length > 3 ? ` (+${entry.issues.length - 3})` : ""}` : "";
|
|
213
|
+
console.log(`${entry.service} ${entry.method} ${entry.path} ${entry.status} ${op} ${entry.durationMs}ms${ns}${fault}${adopted}${received}${issues}`);
|
|
212
214
|
};
|
|
213
215
|
};
|
|
214
216
|
var asString = (value) => typeof value === "string" ? value : void 0;
|
|
@@ -363,4 +365,4 @@ export {
|
|
|
363
365
|
createServer2 as createServer,
|
|
364
366
|
serveTarget
|
|
365
367
|
};
|
|
366
|
-
//# sourceMappingURL=chunk-
|
|
368
|
+
//# sourceMappingURL=chunk-L5D7U74Q.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../adapters/node/src/cli.ts", "../../../adapters/node/src/serve.ts", "../../../adapters/node/src/listen.ts", "../src/server.ts"],
|
|
4
|
+
"sourcesContent": ["import { readFile } from \"node:fs/promises\"\nimport { type ParseArgsConfig, parseArgs } from \"node:util\"\nimport type { RequestLog, ServiceInstance, ServiceRuntime } from \"@crvouga/mockingbird-service\"\nimport { type Listening, listen } from \"./listen.js\"\n\nexport type CliOption = {\n type: \"string\" | \"boolean\"\n description: string\n /** Shown in help; the value placeholder, e.g. `<port>`. */\n value?: string\n default?: string | boolean\n}\n\nexport type CliValues = Record<string, string | boolean | undefined>\n\nexport type CliCommand = {\n summary: string\n usage?: string\n options?: Record<string, CliOption>\n /** Resolves to an exit code; a server command resolves only when it stops. */\n run(values: CliValues, positionals: string[]): Promise<number>\n}\n\nexport type CliSpec = {\n bin: string\n description: string\n commands: Record<string, CliCommand>\n}\n\nconst optionHelp = (options: Record<string, CliOption>): string[] =>\n Object.entries(options).map(([name, option]) => {\n const flag = `--${name}${option.type === \"string\" ? ` ${option.value ?? \"<value>\"}` : \"\"}`\n const fallback = option.default !== undefined ? ` (default: ${String(option.default)})` : \"\"\n return ` ${flag.padEnd(30)} ${option.description}${fallback}`\n })\n\nconst help = (spec: CliSpec): string =>\n [\n `${spec.bin} \u2014 ${spec.description}`,\n \"\",\n \"Usage:\",\n ` ${spec.bin} <command> [options]`,\n \"\",\n \"Commands:\",\n ...Object.entries(spec.commands).map(([name, c]) => ` ${name.padEnd(30)} ${c.summary}`),\n \"\",\n `Run \\`${spec.bin} <command> --help\\` for a command's options.`,\n ].join(\"\\n\")\n\nconst commandHelp = (spec: CliSpec, name: string, command: CliCommand): string =>\n [\n `${spec.bin} ${name} \u2014 ${command.summary}`,\n \"\",\n \"Usage:\",\n ` ${command.usage ?? `${spec.bin} ${name} [options]`}`,\n ...(command.options ? [\"\", \"Options:\", ...optionHelp(command.options)] : []),\n ].join(\"\\n\")\n\n/** Parse `argv` against `spec` and run the chosen command. Resolves to an exit code. */\nexport const runCli = async (spec: CliSpec, argv: string[]): Promise<number> => {\n // Two-word commands (`corpus pull`) win over one-word ones.\n const pair = argv.length >= 2 ? `${argv[0]} ${argv[1]}` : undefined\n const words = pair !== undefined && spec.commands[pair] ? 2 : 1\n const name = words === 2 ? pair : argv[0]\n const rest = argv.slice(words)\n if (name === undefined || name === \"--help\" || name === \"-h\" || name === \"help\") {\n console.log(help(spec))\n return 0\n }\n const command = spec.commands[name]\n if (!command) {\n console.error(`${spec.bin}: unknown command ${JSON.stringify(name)}\\n\\n${help(spec)}`)\n return 2\n }\n if (rest.includes(\"--help\") || rest.includes(\"-h\")) {\n console.log(commandHelp(spec, name, command))\n return 0\n }\n let parsed: { values: CliValues; positionals: string[] }\n try {\n parsed = parseArgs({\n args: rest,\n allowPositionals: true,\n strict: true,\n options: Object.fromEntries(\n Object.entries(command.options ?? {}).map(([key, option]) => [\n key,\n {\n type: option.type,\n ...(option.default !== undefined ? { default: option.default } : {}),\n },\n ]),\n ) as ParseArgsConfig[\"options\"],\n }) as { values: CliValues; positionals: string[] }\n } catch (error) {\n console.error(\n `${spec.bin} ${name}: ${error instanceof Error ? error.message : String(error)}\\n\\n${commandHelp(spec, name, command)}`,\n )\n return 2\n }\n return command.run(parsed.values, parsed.positionals)\n}\n\n// \u2500\u2500 serve \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport type LogFormat = \"pretty\" | \"json\" | \"off\"\n\nexport type CommonServeOptions = {\n adminKey: string | undefined\n seed: string | undefined\n onLog: ((entry: RequestLog) => void) | undefined\n}\n\n/**\n * What a service contributes to `serve`: how to build its runtime from CLI flags,\n * and what to say at startup. Every service's `./server` entry exports one as\n * `serveTarget`, which is also how `serve --config` finds services by name.\n */\nexport type ServeTarget = {\n name: string\n defaultPort: number\n /** Serve flags beyond the common ones. */\n options?: Record<string, CliOption>\n create(\n values: CliValues,\n common: CommonServeOptions,\n ): Promise<ServiceRuntime<ServiceInstance>> | ServiceRuntime<ServiceInstance>\n /** Startup lines after the listen address, e.g. the loaded corpus version. */\n banner?(runtime: ServiceRuntime<ServiceInstance>): string[]\n}\n\nconst COMMON_SERVE_OPTIONS: Record<string, CliOption> = {\n port: { type: \"string\", value: \"<port>\", description: \"Port to listen on\" },\n host: { type: \"string\", value: \"<host>\", description: \"Interface to bind\", default: \"127.0.0.1\" },\n \"admin-key\": {\n type: \"string\",\n value: \"<key>\",\n description: \"Require x-mockingbird-admin-key on /__admin/* (env MOCKINGBIRD_ADMIN_KEY)\",\n },\n seed: { type: \"string\", value: \"<seed>\", description: \"Seed for every random choice\" },\n log: {\n type: \"string\",\n value: \"<pretty|json|off>\",\n description: \"Request log format\",\n default: \"pretty\",\n },\n \"log-requests\": {\n type: \"boolean\",\n description:\n \"One JSON line per request: namespace, operationId, status, ids touched (never bodies). Same as --log json\",\n },\n config: {\n type: \"string\",\n value: \"<file>\",\n description: \"Serve every service in a mockingbird.json config instead\",\n },\n}\n\nconst formatLog = (format: LogFormat) => {\n if (format === \"off\") return undefined\n if (format === \"json\") return (entry: RequestLog) => console.log(JSON.stringify(entry))\n return (entry: RequestLog) => {\n const op = entry.operationId ?? (entry.unmatched ? \"UNMATCHED\" : \"-\")\n const ns = entry.namespace === \"default\" ? \"\" : ` [${entry.namespace}]`\n const fault = entry.faultId ? ` fault=${entry.faultId}` : \"\"\n const adopted = entry.adopted ? \" adopted\" : \"\"\n // A rejection says what arrived (never the body) and why the service refused it.\n const received = entry.request\n ? ` received=${entry.request.bodyBytes === null ? \"?\" : `${entry.request.bodyBytes}B`} ct=${entry.request.contentType ?? \"-\"}${\n entry.request.transferEncoding ? ` te=${entry.request.transferEncoding}` : \"\"\n }`\n : \"\"\n const issues = entry.issues?.length\n ? ` issues=${entry.issues\n .slice(0, 3)\n .map((issue) => `${issue.path || \"$\"}: ${issue.message}`)\n .join(\"; \")}${entry.issues.length > 3 ? ` (+${entry.issues.length - 3})` : \"\"}`\n : \"\"\n console.log(\n `${entry.service} ${entry.method} ${entry.path} ${entry.status} ${op} ${entry.durationMs}ms${ns}${fault}${adopted}${received}${issues}`,\n )\n }\n}\n\nconst asString = (value: string | boolean | undefined): string | undefined =>\n typeof value === \"string\" ? value : undefined\n\n/** A service entry in `mockingbird.json`. */\nexport type ConfigService = {\n port?: number\n host?: string\n adminKey?: string\n seed?: string\n /** Service-specific serve flags, by long name: `{ \"webhook-url\": \"\u2026\" }`. */\n options?: Record<string, string | boolean>\n}\n\nexport type MockingbirdConfig = {\n /** Keyed by service name: `junction` loads `@crvouga/mockingbird-service-junction`. */\n services: Record<string, ConfigService>\n log?: LogFormat\n}\n\nconst loadTarget = async (name: string, own: ServeTarget): Promise<ServeTarget> => {\n if (name === own.name) return own\n const specifier = `@crvouga/mockingbird-service-${name}/server`\n try {\n const mod = (await import(specifier)) as { serveTarget?: ServeTarget }\n if (!mod.serveTarget) throw new Error(`${specifier} exports no serveTarget`)\n return mod.serveTarget\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error)\n throw new Error(\n `cannot load service \"${name}\": ${reason}. Install @crvouga/mockingbird-service-${name}.`,\n )\n }\n}\n\nconst start = async (\n target: ServeTarget,\n values: CliValues,\n config: { port: number; host: string; adminKey?: string; seed?: string; log: LogFormat },\n): Promise<Listening> => {\n const runtime = await target.create(values, {\n adminKey: config.adminKey,\n seed: config.seed,\n onLog: formatLog(config.log),\n })\n const listening = await listen(runtime, { port: config.port, host: config.host })\n console.log(`${target.name} mock listening on ${listening.url}`)\n console.log(`${target.name} health: GET ${listening.url}/health`)\n console.log(\n `${target.name} admin: ${listening.url}/__admin (${config.adminKey ? \"x-mockingbird-admin-key required\" : \"open \u2014 pass --admin-key to lock\"})`,\n )\n for (const line of target.banner?.(runtime) ?? []) console.log(`${target.name} ${line}`)\n return listening\n}\n\nconst untilSignal = async (servers: Listening[]): Promise<number> =>\n new Promise((resolve) => {\n const stop = async () => {\n await Promise.allSettled(servers.map((s) => s.close()))\n resolve(0)\n }\n process.once(\"SIGINT\", stop)\n process.once(\"SIGTERM\", stop)\n })\n\n/** The standard `serve` command for a service, including multi-service `--config`. */\nexport const serveCommand = (target: ServeTarget): CliCommand => ({\n summary: `Serve the ${target.name} mock over HTTP`,\n options: { ...COMMON_SERVE_OPTIONS, ...target.options },\n async run(values) {\n const log = (\n values[\"log-requests\"] === true ? \"json\" : (asString(values.log) ?? \"pretty\")\n ) as LogFormat\n if (![\"pretty\", \"json\", \"off\"].includes(log)) {\n console.error(`--log must be pretty, json or off (got ${log})`)\n return 2\n }\n const configPath = asString(values.config)\n if (configPath !== undefined) {\n const config = JSON.parse(await readFile(configPath, \"utf8\")) as MockingbirdConfig\n const servers: Listening[] = []\n try {\n for (const [name, entry] of Object.entries(config.services ?? {})) {\n const each = await loadTarget(name, target)\n servers.push(\n await start(each, entry.options ?? {}, {\n port: entry.port ?? each.defaultPort,\n host: entry.host ?? \"127.0.0.1\",\n ...(entry.adminKey !== undefined ? { adminKey: entry.adminKey } : {}),\n ...(entry.seed !== undefined ? { seed: entry.seed } : {}),\n log: config.log ?? log,\n }),\n )\n }\n } catch (error) {\n await Promise.allSettled(servers.map((s) => s.close()))\n console.error(error instanceof Error ? error.message : String(error))\n return 1\n }\n return untilSignal(servers)\n }\n const port = asString(values.port)\n const adminKey = asString(values[\"admin-key\"]) ?? process.env.MOCKINGBIRD_ADMIN_KEY\n const seed = asString(values.seed)\n let listening: Listening\n try {\n listening = await start(target, values, {\n port: port === undefined ? target.defaultPort : Number.parseInt(port, 10),\n host: asString(values.host) ?? \"127.0.0.1\",\n ...(adminKey !== undefined ? { adminKey } : {}),\n ...(seed !== undefined ? { seed } : {}),\n log,\n })\n } catch (error) {\n console.error(error instanceof Error ? error.message : String(error))\n return 1\n }\n return untilSignal([listening])\n },\n})\n", "import { createServer } from \"node:http\"\nimport type { FetchAPI } from \"@crvouga/mockingbird-core\"\n\n/** Options for {@link serve}. */\nexport type NodeServeOptions = {\n port?: number\n host?: string\n}\n\n/**\n * Serve any Mockingbird {@link FetchAPI} over `node:http`.\n * Port defaults to `0`, so the OS assigns an ephemeral port (read from `server.address()`).\n */\nexport const serve = async (api: FetchAPI, options: NodeServeOptions = {}) => {\n const server = createServer(async (req, res) => {\n const chunks: Buffer[] = []\n for await (const chunk of req) {\n chunks.push(Buffer.from(chunk))\n }\n const body = Buffer.concat(chunks)\n const address = server.address()\n const port = typeof address === \"object\" && address !== null ? address.port : undefined\n const base = `http://${req.headers.host ?? `localhost:${port ?? 80}`}`\n const raw = req.url ?? \"/\"\n const url = new URL(raw.replace(/^\\/+/, \"/\"), base)\n const method = req.method ?? \"GET\"\n const init: RequestInit = { method, headers: req.headers as Record<string, string> }\n if (method !== \"GET\" && method !== \"HEAD\" && body.length > 0) {\n init.body = body\n }\n const aborted = new AbortController()\n res.once(\"close\", () => {\n if (!res.writableFinished) aborted.abort()\n })\n init.signal = aborted.signal\n const request = new Request(url, init)\n let response: Response\n try {\n response = await api.fetch(request)\n } catch (error) {\n // A `drop` fault: destroy the socket so the client sees the connection die.\n if ((error as { code?: string }).code === \"MOCKINGBIRD_DROP\") {\n req.socket.destroy()\n return\n }\n res.writeHead(500, { \"content-type\": \"application/json\" })\n res.end(\n JSON.stringify({\n error: {\n type: \"mockingbird_internal\",\n message: error instanceof Error ? error.message : String(error),\n },\n }),\n )\n return\n }\n // Headers#entries() joins repeated headers; Set-Cookie must stay one header per cookie.\n const headers: Record<string, string | string[]> = Object.fromEntries(response.headers)\n const cookies = response.headers.getSetCookie()\n if (cookies.length > 0) headers[\"set-cookie\"] = cookies\n if (!response.body) {\n res.writeHead(response.status, headers)\n res.end()\n return\n }\n // Stream the body chunk by chunk: event streams and long-polls must not be buffered.\n res.writeHead(response.status, headers)\n res.flushHeaders()\n const reader = response.body.getReader()\n try {\n for (;;) {\n const { done, value } = await reader.read()\n if (done) break\n if (!res.write(value)) await new Promise<void>((resolve) => res.once(\"drain\", resolve))\n }\n res.end()\n } catch {\n res.destroy()\n } finally {\n reader.releaseLock()\n }\n })\n await new Promise<void>((resolve, reject) => {\n server.once(\"error\", reject)\n server.listen(options.port ?? 0, options.host, resolve)\n })\n return server\n}\n", "import type { Server } from \"node:http\"\nimport type { FetchAPI } from \"@crvouga/mockingbird-core\"\nimport { serve } from \"./serve.js\"\n\nexport type ListenOptions = {\n /** Default `0`: the OS picks a free port. */\n port?: number\n /** Default `127.0.0.1`: a mock should not be reachable off the machine by accident. */\n host?: string\n}\n\n/** A running server, with the address it actually bound. */\nexport type Listening = {\n url: string\n port: number\n host: string\n server: Server\n close(): Promise<void>\n}\n\nexport const listen = async (api: FetchAPI, options: ListenOptions = {}): Promise<Listening> => {\n const host = options.host ?? \"127.0.0.1\"\n const server = await serve(api, { port: options.port ?? 0, host })\n const address = server.address()\n const port = typeof address === \"object\" && address !== null ? address.port : (options.port ?? 0)\n const shown = host.includes(\":\") ? `[${host}]` : host\n return {\n url: `http://${shown}:${port}`,\n port,\n host,\n server,\n close: () =>\n new Promise<void>((resolve, reject) => {\n // Stop accepting first, then drop keep-alive sockets so close() can finish.\n server.close((error) => {\n if (error && (error as { code?: string }).code !== \"ERR_SERVER_NOT_RUNNING\") reject(error)\n else resolve()\n })\n server.closeAllConnections?.()\n }),\n }\n}\n", "/// <reference types=\"node\" />\nimport { type Listening, listen, type ServeTarget } from \"@crvouga/mockingbird-adapter-node\"\nimport { createRuntime, type OtelRuntime, type OtelRuntimeOptions } from \"./runtime.js\"\n\n/** Port `mockingbird-otel serve` listens on when none is given. */\nexport const DEFAULT_PORT = 8809\n\nexport type OtelServerOptions = OtelRuntimeOptions & {\n /** Default `0`: the OS picks a free port. */\n port?: number\n /** Default `127.0.0.1`. */\n host?: string\n}\n\nexport type OtelServer = Listening & { runtime: OtelRuntime }\n\n/** Serve the OTLP collector + O2 search mock over `node:http`. */\nexport const createServer = async (options: OtelServerOptions = {}): Promise<OtelServer> => {\n const { port, host, ...rest } = options\n const runtime = createRuntime(rest)\n const listening = await listen(runtime, {\n port: port ?? 0,\n ...(host !== undefined ? { host } : {}),\n })\n return { ...listening, runtime }\n}\n\nconst text = (value: string | boolean | undefined) =>\n typeof value === \"string\" ? value : undefined\n\n/** How `serve` (and `serve --config`) builds the OTel mock from flags. */\nexport const serveTarget: ServeTarget = {\n name: \"otel\",\n defaultPort: DEFAULT_PORT,\n options: {\n \"ingest-token\": {\n type: \"string\",\n value: \"<token>\",\n description: \"Only accept this OTLP bearer token (the app's OTEL_AUTH_TOKEN); default any\",\n },\n \"search-auth\": {\n type: \"string\",\n value: \"<user:password>\",\n description: \"Only accept these O2 Basic credentials (decoded O2_BASIC_AUTH); default any\",\n },\n \"keep-bodies\": {\n type: \"boolean\",\n description:\n \"Store log bodies (local debugging only: bodies can hold prompts or PHI); default drop\",\n },\n },\n create: (values, common) => {\n const token = text(values[\"ingest-token\"])\n const auth = text(values[\"search-auth\"])\n const colon = auth?.indexOf(\":\") ?? -1\n return createRuntime({\n settings: {\n ...(token ? { ingestTokens: [token] } : {}),\n ...(auth\n ? {\n searchUsers: [\n colon < 0\n ? { username: auth, password: \"\" }\n : { username: auth.slice(0, colon), password: auth.slice(colon + 1) },\n ],\n }\n : {}),\n ...(values[\"keep-bodies\"] === true ? { keepBodies: true } : {}),\n },\n ...(common.adminKey !== undefined ? { adminKey: common.adminKey } : {}),\n ...(common.seed !== undefined ? { seed: common.seed } : {}),\n ...(common.onLog ? { onLog: common.onLog } : {}),\n })\n },\n banner: () => [\n \"otlp: OTEL_EXPORTER_OTLP_ENDPOINT=<this> (POST /v1/traces, /v1/logs, /v1/metrics; JSON or protobuf), Authorization: Bearer <OTEL_AUTH_TOKEN>\",\n \"o2: O2_BASE_URL=<this>, Basic O2_BASIC_AUTH; orgs development=30rBqcDevOrg7Hn2KmQ4xW9sLtY production=3HSzeProdOrg5Jd8VpN1cR6gTfB\",\n \"admin: GET /__admin/logs?event=\u2026, POST /__admin/wait {kind, where, count, timeoutMs}\",\n ],\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["createServer"]
|
|
7
|
+
}
|
|
@@ -1148,6 +1148,16 @@ var operationMetadata = (operation) => {
|
|
|
1148
1148
|
|
|
1149
1149
|
// ../core/dist/service.js
|
|
1150
1150
|
import { Hono } from "hono";
|
|
1151
|
+
|
|
1152
|
+
// ../core/dist/validation.js
|
|
1153
|
+
var recorded = /* @__PURE__ */ new WeakMap();
|
|
1154
|
+
var recordedIssues = (request) => recorded.get(request);
|
|
1155
|
+
|
|
1156
|
+
// ../core/dist/service.js
|
|
1157
|
+
var withIssues = (request, response) => {
|
|
1158
|
+
const issues = response.status >= 400 ? recordedIssues(request) : void 0;
|
|
1159
|
+
return issues && issues.length > 0 ? annotateResponse(response, { issues }) : response;
|
|
1160
|
+
};
|
|
1151
1161
|
var defineOperations = (handlers) => handlers;
|
|
1152
1162
|
var OperationRegistryError = class extends Error {
|
|
1153
1163
|
problems;
|
|
@@ -1233,9 +1243,7 @@ var createService = (options) => {
|
|
|
1233
1243
|
now
|
|
1234
1244
|
};
|
|
1235
1245
|
const short = await options.before?.(context);
|
|
1236
|
-
|
|
1237
|
-
return short;
|
|
1238
|
-
return handler(context);
|
|
1246
|
+
return withIssues(request, short ?? await handler(context));
|
|
1239
1247
|
};
|
|
1240
1248
|
app.on(operation.method.toUpperCase(), honoPath(operation.path), route);
|
|
1241
1249
|
}
|
|
@@ -1272,7 +1280,7 @@ var restoreNamespace = (sqlite, namespace, snapshot) => {
|
|
|
1272
1280
|
};
|
|
1273
1281
|
|
|
1274
1282
|
// ../core/dist/version.js
|
|
1275
|
-
var PACKAGE_VERSION = true ? "0.
|
|
1283
|
+
var PACKAGE_VERSION = true ? "1.0.1" : UNRELEASED_VERSION;
|
|
1276
1284
|
|
|
1277
1285
|
// ../core/dist/webhooks.js
|
|
1278
1286
|
var json2 = (status, body) => new Response(JSON.stringify(body), { status, headers: { "content-type": "application/json" } });
|
|
@@ -1712,8 +1720,15 @@ var createRuntime = (options) => {
|
|
|
1712
1720
|
const started = monotonicNow();
|
|
1713
1721
|
const url = new URL(request.url);
|
|
1714
1722
|
const operationId = operationIdFor(request, url.pathname);
|
|
1723
|
+
const contentLength = request.headers.get("content-length");
|
|
1724
|
+
const received = {
|
|
1725
|
+
contentType: request.headers.get("content-type"),
|
|
1726
|
+
bodyBytes: contentLength !== null && /^\d+$/.test(contentLength) ? Number(contentLength) : null,
|
|
1727
|
+
transferEncoding: request.headers.get("transfer-encoding")
|
|
1728
|
+
};
|
|
1715
1729
|
const log = (status, faultId, response2) => {
|
|
1716
1730
|
const noted = response2 ? responseNotes(response2) : void 0;
|
|
1731
|
+
const rejected = status >= 400 && faultId === void 0;
|
|
1717
1732
|
const entry = {
|
|
1718
1733
|
service: options.name,
|
|
1719
1734
|
namespace,
|
|
@@ -1725,7 +1740,9 @@ var createRuntime = (options) => {
|
|
|
1725
1740
|
unmatched: options.document !== void 0 && operationId === void 0,
|
|
1726
1741
|
...faultId !== void 0 ? { faultId } : {},
|
|
1727
1742
|
...noted?.ids && Object.keys(noted.ids).length > 0 ? { ids: noted.ids } : {},
|
|
1728
|
-
...noted?.adopted ? { adopted: true } : {}
|
|
1743
|
+
...noted?.adopted ? { adopted: true } : {},
|
|
1744
|
+
...rejected ? { request: { ...received } } : {},
|
|
1745
|
+
...rejected && noted?.issues && noted.issues.length > 0 ? { issues: noted.issues.map((issue) => ({ ...issue })) } : {}
|
|
1729
1746
|
};
|
|
1730
1747
|
metrics.record(entry);
|
|
1731
1748
|
journal.record({ ...entry, at: new Date(clock.now()).toISOString() });
|
|
@@ -1933,7 +1950,7 @@ var presetRoutes = (presets, runtime) => ({
|
|
|
1933
1950
|
});
|
|
1934
1951
|
|
|
1935
1952
|
// src/generated/openapi.ts
|
|
1936
|
-
var document = JSON.parse(`{"openapi":"3.1.0","info":{"title":"OTLP/HTTP collector and OpenObserve search (Mockingbird subset)","description":"An OTLP/HTTP receiver (traces, logs, metrics; JSON and protobuf) in front of the\\nOpenObserve (O2) search API, over one store: a test emits a span or a structured \`event\`\\nlog and queries it back with the same SQL our clients send.\\n","version":"1","x-mockingbird-upstream":{"note":"OTLP/HTTP per opentelemetry-proto v1 (https://opentelemetry.io/docs/specs/otlp/); the O2 routes follow OpenObserve's API (/api-doc/openapi.json, v0.92) trimmed to what our clients call."}},"servers":[{"url":"https://otel.gogeviti.com"},{"url":"https://observe.gogeviti.com"}],"security":[{"bearerAuth":[]}],"paths":{"/v1/traces":{"post":{"operationId":"ExportTraces","summary":"OTLP/HTTP trace export (ExportTraceServiceRequest)","x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":false}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTraceServiceRequest"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Accepted. JSON requests get \`{partialSuccess: {}}\`; protobuf requests get an empty protobuf response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Undecodable payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"401":{"description":"Missing or unknown bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"415":{"description":"Neither application/json nor application/x-protobuf","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"429":{"description":"Throttled (retried by the SDK), with retry-after","headers":{"retry-after":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"500":{"description":"Collector error (not retried by the SDK)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"502":{"description":"Bad gateway (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"503":{"description":"Unavailable (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"504":{"description":"Gateway timeout (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}}}}},"/v1/logs":{"post":{"operationId":"ExportLogs","summary":"OTLP/HTTP log export (ExportLogsServiceRequest)","x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":false}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportLogsServiceRequest"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Accepted. JSON requests get \`{partialSuccess: {}}\`; protobuf requests get an empty protobuf response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Undecodable payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"401":{"description":"Missing or unknown bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"415":{"description":"Neither application/json nor application/x-protobuf","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"429":{"description":"Throttled (retried by the SDK), with retry-after","headers":{"retry-after":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"500":{"description":"Collector error (not retried by the SDK)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"502":{"description":"Bad gateway (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"503":{"description":"Unavailable (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"504":{"description":"Gateway timeout (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}}}}},"/v1/metrics":{"post":{"operationId":"ExportMetrics","summary":"OTLP/HTTP metrics export: accepted and counted, never stored","x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":false}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportMetricsServiceRequest"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Accepted. JSON requests get \`{partialSuccess: {}}\`; protobuf requests get an empty protobuf response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Undecodable payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"401":{"description":"Missing or unknown bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"415":{"description":"Neither application/json nor application/x-protobuf","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"429":{"description":"Throttled (retried by the SDK), with retry-after","headers":{"retry-after":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"500":{"description":"Collector error (not retried by the SDK)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"502":{"description":"Bad gateway (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"503":{"description":"Unavailable (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"504":{"description":"Gateway timeout (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}}}}},"/api/organizations":{"get":{"operationId":"ListOrganizations","summary":"O2: the organizations the Basic user belongs to (display name \u2192 identifier)","security":[{"basicAuth":[]}],"x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":true}},"responses":{"200":{"description":"Organizations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organizations"}}}},"401":{"description":"Bad Basic credentials, or an org the user cannot see \u2014 including an org's display name in place of its identifier","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/{org}/streams":{"parameters":[{"name":"org","in":"path","required":true,"description":"The org **identifier** (not its display name)","schema":{"type":"string","x-mockingbird-resource-ref":{"type":"organization","missing":"no-such-org"}}}],"get":{"operationId":"ListStreams","summary":"O2: the org's streams of one type","security":[{"basicAuth":[]}],"x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":true}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["logs","traces"]}}],"responses":{"200":{"description":"Streams","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamList"}}}},"401":{"description":"Bad Basic credentials, or an org the user cannot see \u2014 including an org's display name in place of its identifier","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/{org}/streams/{stream}/schema":{"parameters":[{"name":"org","in":"path","required":true,"description":"The org **identifier** (not its display name)","schema":{"type":"string","x-mockingbird-resource-ref":{"type":"organization","missing":"no-such-org"}}},{"name":"stream","in":"path","required":true,"schema":{"type":"string","enum":["default","other"]}}],"get":{"operationId":"GetStreamSchema","summary":"O2: a stream's schema (\`schema[].name\` are the queryable, lowercased, flattened fields)","security":[{"basicAuth":[]}],"x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":true}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["logs","traces"]}}],"responses":{"200":{"description":"Schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamSchema"}}}},"401":{"description":"Bad Basic credentials, or an org the user cannot see \u2014 including an org's display name in place of its identifier","content":{"text/plain":{"schema":{"type":"string"}}}},"404":{"description":"Nothing has been ingested into this stream","content":{"application/json":{"schema":{"$ref":"#/components/schemas/O2Error"}}}}}}},"/api/{org}/_search":{"parameters":[{"name":"org","in":"path","required":true,"description":"The org **identifier** (not its display name)","schema":{"type":"string","x-mockingbird-resource-ref":{"type":"organization","missing":"no-such-org"}}}],"post":{"operationId":"Search","summary":"O2: SQL search over a stream","security":[{"basicAuth":[]}],"x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":true}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["logs","traces"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["sql"],"properties":{"sql":{"anyOf":[{"type":"string","enum":["SELECT * FROM \\"default\\" WHERE event IS NOT NULL ORDER BY _timestamp DESC","SELECT * FROM \\"default\\" WHERE event IN ('checkout_completed') ORDER BY _timestamp DESC","SELECT service_name, count(*) AS n FROM \\"default\\" GROUP BY service_name ORDER BY n DESC","SELECT * FROM \\"default\\" WHERE severity_text IN ('ERROR', 'FATAL')","SELECT * FROM \\"default\\" WHERE clientUserId = '1'"]},{"type":"string","maxLength":200}]},"start_time":{"type":"integer","minimum":0,"description":"\xB5s since epoch"},"end_time":{"type":"integer","minimum":0,"description":"\xB5s since epoch"},"from":{"type":"integer","minimum":0,"maximum":100},"size":{"type":"integer","minimum":-1,"maximum":1000}}},"search_type":{"type":"string","maxLength":20}}}}}},"responses":{"200":{"description":"Hits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"description":"Unsupported SQL, or an unknown field (O2 lowercases every field; a camelCase column is unknown)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/O2Error"}}}},"401":{"description":"Bad Basic credentials, or an org the user cannot see \u2014 including an org's display name in place of its identifier","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"KeyValue":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","enum":["service.name","event","clientUserId","http.method","deployment.environment.name","attempt"]},"value":{"type":"object","properties":{"stringValue":{"type":"string","maxLength":20},"intValue":{"type":["string","integer"]},"boolValue":{"type":"boolean"},"doubleValue":{"type":"number"}}}}},"ExportTraceServiceRequest":{"type":"object","properties":{"resourceSpans":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"resource":{"type":"object","properties":{"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}}}},"scopeSpans":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"scope":{"type":"object","properties":{"name":{"type":"string","maxLength":20}}},"spans":{"type":"array","maxItems":3,"items":{"type":"object","required":["traceId","spanId","name"],"properties":{"traceId":{"type":"string","pattern":"^[0-9a-f]{32}$"},"spanId":{"type":"string","pattern":"^[0-9a-f]{16}$"},"parentSpanId":{"type":"string","pattern":"^[0-9a-f]{16}$"},"name":{"type":"string","maxLength":30},"kind":{"type":"integer","minimum":0,"maximum":5},"startTimeUnixNano":{"type":"string","pattern":"^1[0-9]{18}$"},"endTimeUnixNano":{"type":"string","pattern":"^1[0-9]{18}$"},"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}},"status":{"type":"object","properties":{"code":{"type":"integer","minimum":0,"maximum":2},"message":{"type":"string","maxLength":40}}}}}}}}}}}}}},"ExportLogsServiceRequest":{"type":"object","properties":{"resourceLogs":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"resource":{"type":"object","properties":{"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}}}},"scopeLogs":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"scope":{"type":"object","properties":{"name":{"type":"string","maxLength":20}}},"logRecords":{"type":"array","maxItems":3,"items":{"type":"object","properties":{"timeUnixNano":{"type":"string","pattern":"^1[0-9]{18}$"},"observedTimeUnixNano":{"type":"string","pattern":"^1[0-9]{18}$"},"severityNumber":{"type":"integer","minimum":0,"maximum":24},"severityText":{"type":"string","enum":["TRACE","DEBUG","INFO","WARN","ERROR","FATAL","info","error"]},"body":{"type":"object","properties":{"stringValue":{"type":"string","maxLength":40}}},"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}},"traceId":{"type":"string","pattern":"^[0-9a-f]{32}$"},"spanId":{"type":"string","pattern":"^[0-9a-f]{16}$"}}}}}}}}}}}},"ExportMetricsServiceRequest":{"type":"object","properties":{"resourceMetrics":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"resource":{"type":"object","properties":{"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}}}},"scopeMetrics":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"metrics":{"type":"array","maxItems":3,"items":{"type":"object","properties":{"name":{"type":"string","maxLength":30},"unit":{"type":"string","maxLength":10}}}}}}}}}}}},"ExportResponse":{"type":"object","required":["partialSuccess"],"properties":{"partialSuccess":{"type":"object","properties":{"rejectedSpans":{"type":["string","integer"]},"rejectedLogRecords":{"type":["string","integer"]},"rejectedDataPoints":{"type":["string","integer"]},"errorMessage":{"type":"string"}}}}},"RpcStatus":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}}},"O2Error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"error_detail":{"type":"string"}}},"Organizations":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["identifier","name"],"properties":{"id":{"type":"integer"},"identifier":{"type":"string","x-mockingbird-resource":{"type":"organization","identity":true}},"name":{"type":"string"},"type":{"type":"string"}}}}}},"StreamList":{"type":"object","required":["list"],"properties":{"list":{"type":"array","items":{"type":"object","required":["name","stream_type"],"properties":{"name":{"type":"string"},"stream_type":{"type":"string"},"storage_type":{"type":"string"},"stats":{"type":"object"}}}}}},"StreamSchema":{"type":"object","required":["name","stream_type","schema"],"properties":{"name":{"type":"string"},"stream_type":{"type":"string"},"storage_type":{"type":"string"},"stats":{"type":"object"},"schema":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"type":"string","enum":["Utf8","Int64","Float64","Boolean"]}}}},"settings":{"type":"object"}}},"SearchResponse":{"type":"object","required":["took","hits","total","from","size"],"properties":{"took":{"type":"integer","x-mockingbird-volatile":{"kind":"opaque"}},"hits":{"type":"array","items":{"type":"object"}},"total":{"type":"integer"},"from":{"type":"integer"},"size":{"type":"integer"},"scan_size":{"type":"integer"},"scan_records":{"type":"integer"},"is_partial":{"type":"boolean"},"cached_ratio":{"type":"integer"}}}}}}`);
|
|
1953
|
+
var document = JSON.parse(`{"openapi":"3.1.0","info":{"title":"OTLP/HTTP collector and OpenObserve search (Mockingbird subset)","description":"An OTLP/HTTP receiver (traces, logs, metrics; JSON and protobuf) in front of the\\nOpenObserve (O2) search API, over one store: a test emits a span or a structured \`event\`\\nlog and queries it back with the same SQL our clients send.\\n","version":"1","x-mockingbird-upstream":{"note":"OTLP/HTTP per opentelemetry-proto v1 (https://opentelemetry.io/docs/specs/otlp/); the O2 routes follow OpenObserve's API (/api-doc/openapi.json, v0.92) trimmed to what our clients call."}},"servers":[{"url":"https://otel.acme.example"},{"url":"https://observe.acme.example"}],"security":[{"bearerAuth":[]}],"paths":{"/v1/traces":{"post":{"operationId":"ExportTraces","summary":"OTLP/HTTP trace export (ExportTraceServiceRequest)","x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":false}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTraceServiceRequest"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Accepted. JSON requests get \`{partialSuccess: {}}\`; protobuf requests get an empty protobuf response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Undecodable payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"401":{"description":"Missing or unknown bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"415":{"description":"Neither application/json nor application/x-protobuf","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"429":{"description":"Throttled (retried by the SDK), with retry-after","headers":{"retry-after":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"500":{"description":"Collector error (not retried by the SDK)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"502":{"description":"Bad gateway (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"503":{"description":"Unavailable (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"504":{"description":"Gateway timeout (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}}}}},"/v1/logs":{"post":{"operationId":"ExportLogs","summary":"OTLP/HTTP log export (ExportLogsServiceRequest)","x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":false}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportLogsServiceRequest"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Accepted. JSON requests get \`{partialSuccess: {}}\`; protobuf requests get an empty protobuf response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Undecodable payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"401":{"description":"Missing or unknown bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"415":{"description":"Neither application/json nor application/x-protobuf","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"429":{"description":"Throttled (retried by the SDK), with retry-after","headers":{"retry-after":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"500":{"description":"Collector error (not retried by the SDK)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"502":{"description":"Bad gateway (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"503":{"description":"Unavailable (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"504":{"description":"Gateway timeout (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}}}}},"/v1/metrics":{"post":{"operationId":"ExportMetrics","summary":"OTLP/HTTP metrics export: accepted and counted, never stored","x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":false}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportMetricsServiceRequest"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Accepted. JSON requests get \`{partialSuccess: {}}\`; protobuf requests get an empty protobuf response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Undecodable payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"401":{"description":"Missing or unknown bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"415":{"description":"Neither application/json nor application/x-protobuf","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"429":{"description":"Throttled (retried by the SDK), with retry-after","headers":{"retry-after":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"500":{"description":"Collector error (not retried by the SDK)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"502":{"description":"Bad gateway (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"503":{"description":"Unavailable (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}},"504":{"description":"Gateway timeout (retried)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcStatus"}}}}}}},"/api/organizations":{"get":{"operationId":"ListOrganizations","summary":"O2: the organizations the Basic user belongs to (display name \u2192 identifier)","security":[{"basicAuth":[]}],"x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":true}},"responses":{"200":{"description":"Organizations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organizations"}}}},"401":{"description":"Bad Basic credentials, or an org the user cannot see \u2014 including an org's display name in place of its identifier","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/{org}/streams":{"parameters":[{"name":"org","in":"path","required":true,"description":"The org **identifier** (not its display name)","schema":{"type":"string","x-mockingbird-resource-ref":{"type":"organization","missing":"no-such-org"}}}],"get":{"operationId":"ListStreams","summary":"O2: the org's streams of one type","security":[{"basicAuth":[]}],"x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":true}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["logs","traces"]}}],"responses":{"200":{"description":"Streams","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamList"}}}},"401":{"description":"Bad Basic credentials, or an org the user cannot see \u2014 including an org's display name in place of its identifier","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/{org}/streams/{stream}/schema":{"parameters":[{"name":"org","in":"path","required":true,"description":"The org **identifier** (not its display name)","schema":{"type":"string","x-mockingbird-resource-ref":{"type":"organization","missing":"no-such-org"}}},{"name":"stream","in":"path","required":true,"schema":{"type":"string","enum":["default","other"]}}],"get":{"operationId":"GetStreamSchema","summary":"O2: a stream's schema (\`schema[].name\` are the queryable, lowercased, flattened fields)","security":[{"basicAuth":[]}],"x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":true}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["logs","traces"]}}],"responses":{"200":{"description":"Schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamSchema"}}}},"401":{"description":"Bad Basic credentials, or an org the user cannot see \u2014 including an org's display name in place of its identifier","content":{"text/plain":{"schema":{"type":"string"}}}},"404":{"description":"Nothing has been ingested into this stream","content":{"application/json":{"schema":{"$ref":"#/components/schemas/O2Error"}}}}}}},"/api/{org}/_search":{"parameters":[{"name":"org","in":"path","required":true,"description":"The org **identifier** (not its display name)","schema":{"type":"string","x-mockingbird-resource-ref":{"type":"organization","missing":"no-such-org"}}}],"post":{"operationId":"Search","summary":"O2: SQL search over a stream","security":[{"basicAuth":[]}],"x-mockingbird":{"supported":true,"parity":{"enabled":true,"safe":true}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["logs","traces"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["sql"],"properties":{"sql":{"anyOf":[{"type":"string","enum":["SELECT * FROM \\"default\\" WHERE event IS NOT NULL ORDER BY _timestamp DESC","SELECT * FROM \\"default\\" WHERE event IN ('checkout_completed') ORDER BY _timestamp DESC","SELECT service_name, count(*) AS n FROM \\"default\\" GROUP BY service_name ORDER BY n DESC","SELECT * FROM \\"default\\" WHERE severity_text IN ('ERROR', 'FATAL')","SELECT * FROM \\"default\\" WHERE clientUserId = '1'"]},{"type":"string","maxLength":200}]},"start_time":{"type":"integer","minimum":0,"description":"\xB5s since epoch"},"end_time":{"type":"integer","minimum":0,"description":"\xB5s since epoch"},"from":{"type":"integer","minimum":0,"maximum":100},"size":{"type":"integer","minimum":-1,"maximum":1000}}},"search_type":{"type":"string","maxLength":20}}}}}},"responses":{"200":{"description":"Hits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"description":"Unsupported SQL, or an unknown field (O2 lowercases every field; a camelCase column is unknown)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/O2Error"}}}},"401":{"description":"Bad Basic credentials, or an org the user cannot see \u2014 including an org's display name in place of its identifier","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"KeyValue":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","enum":["service.name","event","clientUserId","http.method","deployment.environment.name","attempt"]},"value":{"type":"object","properties":{"stringValue":{"type":"string","maxLength":20},"intValue":{"type":["string","integer"]},"boolValue":{"type":"boolean"},"doubleValue":{"type":"number"}}}}},"ExportTraceServiceRequest":{"type":"object","properties":{"resourceSpans":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"resource":{"type":"object","properties":{"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}}}},"scopeSpans":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"scope":{"type":"object","properties":{"name":{"type":"string","maxLength":20}}},"spans":{"type":"array","maxItems":3,"items":{"type":"object","required":["traceId","spanId","name"],"properties":{"traceId":{"type":"string","pattern":"^[0-9a-f]{32}$"},"spanId":{"type":"string","pattern":"^[0-9a-f]{16}$"},"parentSpanId":{"type":"string","pattern":"^[0-9a-f]{16}$"},"name":{"type":"string","maxLength":30},"kind":{"type":"integer","minimum":0,"maximum":5},"startTimeUnixNano":{"type":"string","pattern":"^1[0-9]{18}$"},"endTimeUnixNano":{"type":"string","pattern":"^1[0-9]{18}$"},"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}},"status":{"type":"object","properties":{"code":{"type":"integer","minimum":0,"maximum":2},"message":{"type":"string","maxLength":40}}}}}}}}}}}}}},"ExportLogsServiceRequest":{"type":"object","properties":{"resourceLogs":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"resource":{"type":"object","properties":{"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}}}},"scopeLogs":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"scope":{"type":"object","properties":{"name":{"type":"string","maxLength":20}}},"logRecords":{"type":"array","maxItems":3,"items":{"type":"object","properties":{"timeUnixNano":{"type":"string","pattern":"^1[0-9]{18}$"},"observedTimeUnixNano":{"type":"string","pattern":"^1[0-9]{18}$"},"severityNumber":{"type":"integer","minimum":0,"maximum":24},"severityText":{"type":"string","enum":["TRACE","DEBUG","INFO","WARN","ERROR","FATAL","info","error"]},"body":{"type":"object","properties":{"stringValue":{"type":"string","maxLength":40}}},"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}},"traceId":{"type":"string","pattern":"^[0-9a-f]{32}$"},"spanId":{"type":"string","pattern":"^[0-9a-f]{16}$"}}}}}}}}}}}},"ExportMetricsServiceRequest":{"type":"object","properties":{"resourceMetrics":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"resource":{"type":"object","properties":{"attributes":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/KeyValue"}}}},"scopeMetrics":{"type":"array","maxItems":2,"items":{"type":"object","properties":{"metrics":{"type":"array","maxItems":3,"items":{"type":"object","properties":{"name":{"type":"string","maxLength":30},"unit":{"type":"string","maxLength":10}}}}}}}}}}}},"ExportResponse":{"type":"object","required":["partialSuccess"],"properties":{"partialSuccess":{"type":"object","properties":{"rejectedSpans":{"type":["string","integer"]},"rejectedLogRecords":{"type":["string","integer"]},"rejectedDataPoints":{"type":["string","integer"]},"errorMessage":{"type":"string"}}}}},"RpcStatus":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}}},"O2Error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"error_detail":{"type":"string"}}},"Organizations":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["identifier","name"],"properties":{"id":{"type":"integer"},"identifier":{"type":"string","x-mockingbird-resource":{"type":"organization","identity":true}},"name":{"type":"string"},"type":{"type":"string"}}}}}},"StreamList":{"type":"object","required":["list"],"properties":{"list":{"type":"array","items":{"type":"object","required":["name","stream_type"],"properties":{"name":{"type":"string"},"stream_type":{"type":"string"},"storage_type":{"type":"string"},"stats":{"type":"object"}}}}}},"StreamSchema":{"type":"object","required":["name","stream_type","schema"],"properties":{"name":{"type":"string"},"stream_type":{"type":"string"},"storage_type":{"type":"string"},"stats":{"type":"object"},"schema":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"type":"string","enum":["Utf8","Int64","Float64","Boolean"]}}}},"settings":{"type":"object"}}},"SearchResponse":{"type":"object","required":["took","hits","total","from","size"],"properties":{"took":{"type":"integer","x-mockingbird-volatile":{"kind":"opaque"}},"hits":{"type":"array","items":{"type":"object"}},"total":{"type":"integer"},"from":{"type":"integer"},"size":{"type":"integer"},"scan_size":{"type":"integer"},"scan_records":{"type":"integer"},"is_partial":{"type":"boolean"},"cached_ratio":{"type":"integer"}}}}}}`);
|
|
1937
1954
|
var operationIds = ["ExportTraces", "ExportLogs", "ExportMetrics", "ListOrganizations", "ListStreams", "GetStreamSchema", "Search"];
|
|
1938
1955
|
var supportedOperationIds = ["ExportTraces", "ExportLogs", "ExportMetrics", "ListOrganizations", "ListStreams", "GetStreamSchema", "Search"];
|
|
1939
1956
|
|
|
@@ -3579,4 +3596,4 @@ export {
|
|
|
3579
3596
|
OtelAPI,
|
|
3580
3597
|
adminRow
|
|
3581
3598
|
};
|
|
3582
|
-
//# sourceMappingURL=chunk-
|
|
3599
|
+
//# sourceMappingURL=chunk-OQGHPZJY.js.map
|