bkper 4.12.26 → 4.12.27
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/README.md +7 -0
- package/lib/agent/system-prompt.js +1 -1
- package/lib/commands/apps/index.d.ts +2 -1
- package/lib/commands/apps/index.d.ts.map +1 -1
- package/lib/commands/apps/index.js +2 -0
- package/lib/commands/apps/index.js.map +1 -1
- package/lib/commands/apps/logs.d.ts +40 -0
- package/lib/commands/apps/logs.d.ts.map +1 -0
- package/lib/commands/apps/logs.js +124 -0
- package/lib/commands/apps/logs.js.map +1 -0
- package/lib/commands/apps/register.d.ts.map +1 -1
- package/lib/commands/apps/register.js +15 -1
- package/lib/commands/apps/register.js.map +1 -1
- package/lib/commands/apps/types.d.ts +15 -0
- package/lib/commands/apps/types.d.ts.map +1 -1
- package/lib/docs/app-management.md +9 -0
- package/lib/docs/cli-reference.md +7 -0
- package/lib/docs/index.md +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -159,8 +159,15 @@ Build, deploy, and manage Bkper apps.
|
|
|
159
159
|
bkper app init my-app
|
|
160
160
|
bkper app dev
|
|
161
161
|
bkper app sync && bkper app deploy
|
|
162
|
+
bkper app logs --last 50
|
|
163
|
+
bkper app logs --since 5m --preview --events
|
|
164
|
+
bkper app logs --json
|
|
162
165
|
```
|
|
163
166
|
|
|
167
|
+
`bkper app logs` reads recent app logs kept for 15 days. The default output is human-readable, and JSON is available with `--json` or `--format json`.
|
|
168
|
+
|
|
169
|
+
Log request URLs and sensitive headers follow Cloudflare's default redaction rules, and this first release supports recent retrieval only (`last N` plus optional time filters), not full-text search.
|
|
170
|
+
|
|
164
171
|
→ [Full App Management reference](https://github.com/bkper/bkper-cli/blob/main/docs/app-management.md)
|
|
165
172
|
|
|
166
173
|
---
|
|
@@ -137,7 +137,7 @@ ${buildToolPromptSection()}
|
|
|
137
137
|
|
|
138
138
|
## IMPORTANT Operating Principles
|
|
139
139
|
|
|
140
|
-
- Interview me
|
|
140
|
+
- Interview me about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
|
|
141
141
|
- Ask the questions one at a time.
|
|
142
142
|
- If a question can be answered by exploring the codebase, explore the codebase instead.
|
|
143
143
|
- Only perform mutating actions (creating/editing files, destructive shell commands, API writes) when the user has explicitly requested that change in the current turn. When exploring, debugging, or unsure, propose the change and wait for confirmation instead of acting.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export type { DeployOptions, DeployResult, Environment, HandlerType, SecretsOptions, SyncResult, UndeployResult, } from './types.js';
|
|
1
|
+
export type { DeployOptions, DeployResult, Environment, HandlerType, LogEntry, LogsMeta, LogsOptions, LogsOutputMode, LogsResponse, SecretsOptions, SyncResult, UndeployResult, } from './types.js';
|
|
2
2
|
export type { DevOptions } from './dev.js';
|
|
3
3
|
export { listApps, listAppsFormatted } from './list.js';
|
|
4
4
|
export { createApp, syncApp, updateApp } from './sync.js';
|
|
5
5
|
export { deployApp, statusApp, undeployApp } from './deploy.js';
|
|
6
|
+
export { buildLogsQuery, logsApp, renderLogsResponse, requestAppLogs, resolveLogsHandler, resolveLogsOutputMode, } from './logs.js';
|
|
6
7
|
export { dev } from './dev.js';
|
|
7
8
|
export { build } from './build.js';
|
|
8
9
|
export { initApp } from './init.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACR,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,cAAc,GACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAO3C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACR,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,cAAc,GACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAO3C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EACH,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -10,6 +10,8 @@ export { listApps, listAppsFormatted } from './list.js';
|
|
|
10
10
|
export { createApp, syncApp, updateApp } from './sync.js';
|
|
11
11
|
// Deploy
|
|
12
12
|
export { deployApp, statusApp, undeployApp } from './deploy.js';
|
|
13
|
+
//Logs
|
|
14
|
+
export { buildLogsQuery, logsApp, renderLogsResponse, requestAppLogs, resolveLogsHandler, resolveLogsOutputMode, } from './logs.js';
|
|
13
15
|
// Dev
|
|
14
16
|
export { dev } from './dev.js';
|
|
15
17
|
// Build
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/apps/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/apps/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAmBhF,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO;AACP,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAExD,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE1D,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM;AACN,OAAO,EACH,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACxB,MAAM,WAAW,CAAC;AAEnB,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO;AACP,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtE,oBAAoB;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { getStoredOAuthToken } from '../../auth/local-auth-service.js';
|
|
3
|
+
import { handleError, loadAppConfig } from './config.js';
|
|
4
|
+
import type { Environment, HandlerType, LogsOptions, LogsOutputMode, LogsResponse } from './types.js';
|
|
5
|
+
interface LogsPlatformClient {
|
|
6
|
+
GET(path: '/api/apps/{appId}/logs', init: {
|
|
7
|
+
params: {
|
|
8
|
+
path: {
|
|
9
|
+
appId: string;
|
|
10
|
+
};
|
|
11
|
+
query: ReturnType<typeof buildLogsQuery>;
|
|
12
|
+
};
|
|
13
|
+
}): Promise<{
|
|
14
|
+
data?: LogsResponse;
|
|
15
|
+
error?: unknown;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
interface LogsCommandDependencies {
|
|
19
|
+
loadAppConfig: typeof loadAppConfig;
|
|
20
|
+
getStoredOAuthToken: typeof getStoredOAuthToken;
|
|
21
|
+
createPlatformClient(token?: string): LogsPlatformClient;
|
|
22
|
+
handleError: typeof handleError;
|
|
23
|
+
exit(code?: number): never;
|
|
24
|
+
}
|
|
25
|
+
export declare function resolveLogsHandler(options: Pick<LogsOptions, 'web' | 'events'>): HandlerType | undefined;
|
|
26
|
+
export declare function buildLogsQuery(options: LogsOptions): {
|
|
27
|
+
since?: string;
|
|
28
|
+
until?: string;
|
|
29
|
+
last: number;
|
|
30
|
+
env: Environment;
|
|
31
|
+
handler?: HandlerType;
|
|
32
|
+
outcome?: LogsOptions['outcome'];
|
|
33
|
+
statusCode?: number;
|
|
34
|
+
};
|
|
35
|
+
export declare function resolveLogsOutputMode(command: Pick<Command, 'optsWithGlobals' | 'getOptionValueSourceWithGlobals'>): LogsOutputMode;
|
|
36
|
+
export declare function renderLogsResponse(response: LogsResponse, mode: LogsOutputMode): string;
|
|
37
|
+
export declare function requestAppLogs(options?: LogsOptions, overrides?: Partial<LogsCommandDependencies>): Promise<LogsResponse>;
|
|
38
|
+
export declare function logsApp(options?: LogsOptions, overrides?: Partial<LogsCommandDependencies>, command?: Pick<Command, 'optsWithGlobals' | 'getOptionValueSourceWithGlobals'>): Promise<void>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACf,MAAM,YAAY,CAAC;AAEpB,UAAU,kBAAkB;IACxB,GAAG,CACC,IAAI,EAAE,wBAAwB,EAC9B,IAAI,EAAE;QACF,MAAM,EAAE;YACJ,IAAI,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,CAAC;YACxB,KAAK,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;SAC5C,CAAC;KACL,GACF,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACxD;AAED,UAAU,uBAAuB;IAC7B,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC;IACzD,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC9B;AAiBD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,QAAQ,CAAC,GAAG,WAAW,GAAG,SAAS,CAMxG;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAYA;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,iCAAiC,CAAC,GAAG,cAAc,CAenI;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAgDvF;AAED,wBAAsB,cAAc,CAChC,OAAO,GAAE,WAAgB,EACzB,SAAS,GAAE,OAAO,CAAC,uBAAuB,CAAM,GACjD,OAAO,CAAC,YAAY,CAAC,CAoCvB;AAED,wBAAsB,OAAO,CACzB,OAAO,GAAE,WAAgB,EACzB,SAAS,GAAE,OAAO,CAAC,uBAAuB,CAAM,EAChD,OAAO,GAAE,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,iCAAiC,CAAW,GACxF,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { program } from 'commander';
|
|
11
|
+
import { getStoredOAuthToken } from '../../auth/local-auth-service.js';
|
|
12
|
+
import { createPlatformClient } from '../../platform/client.js';
|
|
13
|
+
import { handleError, loadAppConfig } from './config.js';
|
|
14
|
+
function getLogsDependencies(overrides = {}) {
|
|
15
|
+
return Object.assign({ loadAppConfig,
|
|
16
|
+
getStoredOAuthToken,
|
|
17
|
+
createPlatformClient,
|
|
18
|
+
handleError,
|
|
19
|
+
exit(code) {
|
|
20
|
+
process.exit(code);
|
|
21
|
+
} }, overrides);
|
|
22
|
+
}
|
|
23
|
+
export function resolveLogsHandler(options) {
|
|
24
|
+
if ((options.web && options.events) || (!options.web && !options.events)) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
return options.events ? 'events' : 'web';
|
|
28
|
+
}
|
|
29
|
+
export function buildLogsQuery(options) {
|
|
30
|
+
var _a;
|
|
31
|
+
const handler = resolveLogsHandler(options);
|
|
32
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ env: options.preview ? 'preview' : 'production', last: (_a = options.last) !== null && _a !== void 0 ? _a : 100 }, (handler ? { handler } : {})), (options.since ? { since: options.since } : {})), (options.until ? { until: options.until } : {})), (options.outcome ? { outcome: options.outcome } : {})), (options.statusCode !== undefined ? { statusCode: options.statusCode } : {}));
|
|
33
|
+
}
|
|
34
|
+
export function resolveLogsOutputMode(command) {
|
|
35
|
+
const options = command.optsWithGlobals();
|
|
36
|
+
if (options.json || options.format === 'json') {
|
|
37
|
+
return 'json';
|
|
38
|
+
}
|
|
39
|
+
const formatSource = command.getOptionValueSourceWithGlobals('format');
|
|
40
|
+
if (formatSource === 'cli') {
|
|
41
|
+
throw new Error('bkper app logs only supports default human-readable output or JSON. Use --json or --format json.');
|
|
42
|
+
}
|
|
43
|
+
return 'pretty';
|
|
44
|
+
}
|
|
45
|
+
export function renderLogsResponse(response, mode) {
|
|
46
|
+
if (mode === 'json') {
|
|
47
|
+
return JSON.stringify(response, null, 2);
|
|
48
|
+
}
|
|
49
|
+
const lines = [];
|
|
50
|
+
for (const warning of response.meta.warnings) {
|
|
51
|
+
lines.push(`Warning: ${warning}`);
|
|
52
|
+
}
|
|
53
|
+
if (response.logs.length === 0) {
|
|
54
|
+
if (lines.length > 0) {
|
|
55
|
+
lines.push('');
|
|
56
|
+
}
|
|
57
|
+
lines.push('No logs found.');
|
|
58
|
+
return lines.join('\n');
|
|
59
|
+
}
|
|
60
|
+
if (lines.length > 0) {
|
|
61
|
+
lines.push('');
|
|
62
|
+
}
|
|
63
|
+
const orderedLogs = [...response.logs].reverse();
|
|
64
|
+
orderedLogs.forEach((entry, index) => {
|
|
65
|
+
var _a, _b, _c;
|
|
66
|
+
lines.push(`${entry.timestamp} ${entry.environment}/${entry.handler} ${entry.outcome} ${(_a = entry.requestMethod) !== null && _a !== void 0 ? _a : '-'} ${(_b = entry.statusCode) !== null && _b !== void 0 ? _b : '-'} ${(_c = entry.requestUrl) !== null && _c !== void 0 ? _c : ''}`.trim());
|
|
67
|
+
for (const logLine of entry.logs) {
|
|
68
|
+
lines.push(` log: ${logLine}`);
|
|
69
|
+
}
|
|
70
|
+
for (const exception of entry.exceptions) {
|
|
71
|
+
lines.push(` exception: ${exception.name}: ${exception.message}`);
|
|
72
|
+
if (exception.stack) {
|
|
73
|
+
for (const stackLine of exception.stack.split('\n')) {
|
|
74
|
+
lines.push(` ${stackLine}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (index < orderedLogs.length - 1) {
|
|
79
|
+
lines.push('');
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
return lines.join('\n');
|
|
83
|
+
}
|
|
84
|
+
export function requestAppLogs() {
|
|
85
|
+
return __awaiter(this, arguments, void 0, function* (options = {}, overrides = {}) {
|
|
86
|
+
const dependencies = getLogsDependencies(overrides);
|
|
87
|
+
let config;
|
|
88
|
+
try {
|
|
89
|
+
config = dependencies.loadAppConfig();
|
|
90
|
+
}
|
|
91
|
+
catch (_a) {
|
|
92
|
+
console.error('Error: bkper.yaml or bkper.json not found');
|
|
93
|
+
return dependencies.exit(1);
|
|
94
|
+
}
|
|
95
|
+
if (!(config === null || config === void 0 ? void 0 : config.id)) {
|
|
96
|
+
console.error('Error: App config is missing "id" field');
|
|
97
|
+
return dependencies.exit(1);
|
|
98
|
+
}
|
|
99
|
+
const token = yield dependencies.getStoredOAuthToken();
|
|
100
|
+
const client = dependencies.createPlatformClient(token);
|
|
101
|
+
const { data, error } = yield client.GET('/api/apps/{appId}/logs', {
|
|
102
|
+
params: {
|
|
103
|
+
path: { appId: config.id },
|
|
104
|
+
query: buildLogsQuery(options),
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
if (error) {
|
|
108
|
+
dependencies.handleError(error);
|
|
109
|
+
}
|
|
110
|
+
if (!data) {
|
|
111
|
+
console.error('Error: Unexpected empty response');
|
|
112
|
+
return dependencies.exit(1);
|
|
113
|
+
}
|
|
114
|
+
return data;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
export function logsApp() {
|
|
118
|
+
return __awaiter(this, arguments, void 0, function* (options = {}, overrides = {}, command = program) {
|
|
119
|
+
const outputMode = resolveLogsOutputMode(command);
|
|
120
|
+
const response = yield requestAppLogs(options, overrides);
|
|
121
|
+
console.log(renderLogsResponse(response, outputMode));
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/apps/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+M1D"}
|
|
@@ -11,7 +11,7 @@ import { withAction } from '../action.js';
|
|
|
11
11
|
import { setupBkper } from '../../bkper-factory.js';
|
|
12
12
|
import { renderListResult, renderItem } from '../../render/index.js';
|
|
13
13
|
import { validateRequiredOptions, throwIfErrors } from '../../utils/validation.js';
|
|
14
|
-
import { listAppsFormatted, syncApp, deployApp, undeployApp, statusApp, initApp, secretsPut, secretsList, secretsDelete, dev, build, installApp, uninstallApp, } from './index.js';
|
|
14
|
+
import { listAppsFormatted, syncApp, deployApp, undeployApp, statusApp, logsApp, initApp, secretsPut, secretsList, secretsDelete, dev, build, installApp, uninstallApp, } from './index.js';
|
|
15
15
|
export function registerAppCommands(program) {
|
|
16
16
|
const appCommand = program.command('app').description('Manage Bkper Apps');
|
|
17
17
|
appCommand
|
|
@@ -58,6 +58,20 @@ export function registerAppCommands(program) {
|
|
|
58
58
|
.action(options => withAction('getting app status', () => __awaiter(this, void 0, void 0, function* () {
|
|
59
59
|
yield statusApp();
|
|
60
60
|
}), { skipSetup: true })());
|
|
61
|
+
appCommand
|
|
62
|
+
.command('logs')
|
|
63
|
+
.description('View recent app logs')
|
|
64
|
+
.option('--since <time>', 'ISO8601 or relative lower bound such as 5m, 1h, or 15d')
|
|
65
|
+
.option('--until <time>', 'ISO8601 or relative upper bound such as 5m, 1h, or 15d')
|
|
66
|
+
.option('--last <n>', 'Show newest N entries after filters', value => Number.parseInt(value, 10))
|
|
67
|
+
.option('-p, --preview', 'Query preview logs instead of production logs')
|
|
68
|
+
.option('-w, --web', 'Filter to the web handler')
|
|
69
|
+
.option('-e, --events', 'Filter to the events handler')
|
|
70
|
+
.option('--outcome <outcome>', 'Filter by Cloudflare worker outcome')
|
|
71
|
+
.option('--status-code <code>', 'Filter by HTTP status code', value => Number.parseInt(value, 10))
|
|
72
|
+
.action(options => withAction('getting app logs', () => __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
yield logsApp(options);
|
|
74
|
+
}), { skipSetup: true })());
|
|
61
75
|
appCommand
|
|
62
76
|
.command('dev')
|
|
63
77
|
.description('Start the worker runtime for local development')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/apps/register.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/commands/apps/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,10 @@ export type DeployResult = components['schemas']['DeployResult'];
|
|
|
3
3
|
export type UndeployResult = components['schemas']['UndeployResult'];
|
|
4
4
|
export type AppStatus = components['schemas']['AppStatus'];
|
|
5
5
|
export type ErrorResponse = components['schemas']['ErrorResponse'];
|
|
6
|
+
export type LogsResponse = components['schemas']['LogsResponse'];
|
|
7
|
+
export type LogEntry = components['schemas']['LogEntry'];
|
|
8
|
+
export type LogsMeta = components['schemas']['LogsMeta'];
|
|
9
|
+
export type LogOutcome = components['schemas']['LogOutcome'];
|
|
6
10
|
export interface DeployOptions {
|
|
7
11
|
preview?: boolean;
|
|
8
12
|
events?: boolean;
|
|
@@ -12,6 +16,17 @@ export interface DeployOptions {
|
|
|
12
16
|
export interface SecretsOptions {
|
|
13
17
|
preview?: boolean;
|
|
14
18
|
}
|
|
19
|
+
export interface LogsOptions {
|
|
20
|
+
since?: string;
|
|
21
|
+
until?: string;
|
|
22
|
+
last?: number;
|
|
23
|
+
preview?: boolean;
|
|
24
|
+
web?: boolean;
|
|
25
|
+
events?: boolean;
|
|
26
|
+
outcome?: LogOutcome;
|
|
27
|
+
statusCode?: number;
|
|
28
|
+
}
|
|
29
|
+
export type LogsOutputMode = 'pretty' | 'json';
|
|
15
30
|
export interface SyncResult {
|
|
16
31
|
id: string;
|
|
17
32
|
action: 'created' | 'updated';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAM1D,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACrE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAM1D,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACrE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;AACnE,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;AACjE,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;AACzD,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AAM7D,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAM/C,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC;AAMD,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,uBAAuB,CAAC;IAC7B,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
|
|
@@ -369,6 +369,15 @@ deployment:
|
|
|
369
369
|
- `-p, --preview` - Deploy to preview environment
|
|
370
370
|
- `--events` - Deploy events handler instead of web handler
|
|
371
371
|
- `app status` - Show deployment status
|
|
372
|
+
- `app logs` - View recent app logs
|
|
373
|
+
- `--since <time>` - ISO8601 or relative lower bound (e.g. `5m`, `1h`, `15d`)
|
|
374
|
+
- `--until <time>` - ISO8601 or relative upper bound
|
|
375
|
+
- `--last <n>` - Show newest N entries after filters (default: 100)
|
|
376
|
+
- `-p, --preview` - Query preview logs instead of production
|
|
377
|
+
- `-w, --web` - Filter to the web handler
|
|
378
|
+
- `-e, --events` - Filter to the events handler
|
|
379
|
+
- `--outcome <outcome>` - Filter by Cloudflare worker outcome
|
|
380
|
+
- `--status-code <code>` - Filter by HTTP status code
|
|
372
381
|
- `app undeploy` - Remove app from platform
|
|
373
382
|
- `-p, --preview` - Remove from preview environment
|
|
374
383
|
- `--events` - Remove events handler instead of web handler
|
|
@@ -159,8 +159,15 @@ Build, deploy, and manage Bkper apps.
|
|
|
159
159
|
bkper app init my-app
|
|
160
160
|
bkper app dev
|
|
161
161
|
bkper app sync && bkper app deploy
|
|
162
|
+
bkper app logs --last 50
|
|
163
|
+
bkper app logs --since 5m --preview --events
|
|
164
|
+
bkper app logs --json
|
|
162
165
|
```
|
|
163
166
|
|
|
167
|
+
`bkper app logs` reads recent app logs kept for 15 days. The default output is human-readable, and JSON is available with `--json` or `--format json`.
|
|
168
|
+
|
|
169
|
+
Log request URLs and sensitive headers follow Cloudflare's default redaction rules, and this first release supports recent retrieval only (`last N` plus optional time filters), not full-text search.
|
|
170
|
+
|
|
164
171
|
→ [Full App Management reference](https://github.com/bkper/bkper-cli/blob/main/docs/app-management.md)
|
|
165
172
|
|
|
166
173
|
---
|
package/lib/docs/index.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Reference docs for Bkper tasks. Load only the specific doc(s) relevant to the task — do not load all of them. All docs are in the same directory as this index.
|
|
4
4
|
|
|
5
5
|
- **data-management.md** — CLI reference for managing financial data: books, accounts, groups, transactions, per-account balance queries, query operators (on:, after:, before:, account:, group:), output formats (table/json/csv), batch operations via stdin/piping, collections.
|
|
6
|
-
- **app-management.md** — CLI reference for building and deploying Bkper apps: dev/build/deploy workflow, app install/uninstall, secrets management, bkper.yaml configuration reference (identity, branding, events, menu integration, deployment).
|
|
6
|
+
- **app-management.md** — CLI reference for building and deploying Bkper apps: dev/build/deploy workflow, app install/uninstall, secrets management, app logs, bkper.yaml configuration reference (identity, branding, events, menu integration, deployment).
|
|
7
7
|
- **app-building.md** — Full app-building reference: architecture (packages, client/server/events), development loop, event handlers, deployment patterns, the Bkper Platform, and self-hosted alternatives. Includes authentication patterns for web clients (`@bkper/web-auth`), event handlers (`bkper-oauth-token` headers), and local development. Load this for scaffolding apps, understanding app structure, or debugging the dev/build/deploy lifecycle.
|
|
8
8
|
- **financial-statements.md** — Step-by-step workflow for aggregate financial reports (balance sheet, P&L): root group discovery, query patterns, date semantics (before: vs after:+before:), common mistakes to avoid.
|
|
9
9
|
- **bkper-js.md** — bkper-js Node.js/browser SDK: Bkper, Book, Account, Transaction, Group, Balance classes, all methods, getBalancesReport, OAuth configuration, library setup.
|