@hasna/uptime 0.1.2 → 0.1.3
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 +24 -0
- package/README.md +40 -1
- package/dist/api.d.ts +12 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1788 -106
- package/dist/checks.d.ts +23 -1
- package/dist/checks.d.ts.map +1 -1
- package/dist/checks.js +131 -2
- package/dist/cli/index.js +2018 -114
- package/dist/dashboard.js +1 -1
- package/dist/imports.d.ts +90 -0
- package/dist/imports.d.ts.map +1 -0
- package/dist/imports.js +556 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1798 -106
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1646 -48
- package/dist/paths.d.ts +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +4 -0
- package/dist/probes.d.ts +13 -0
- package/dist/probes.d.ts.map +1 -0
- package/dist/probes.js +62 -0
- package/dist/report.js +1 -1
- package/dist/service.d.ts +112 -4
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +1567 -46
- package/dist/store.d.ts +109 -3
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +663 -18
- package/dist/target-policy.d.ts +7 -0
- package/dist/target-policy.d.ts.map +1 -0
- package/dist/types.d.ts +97 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,30 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.3] - 2026-06-28
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Private/local probe identities, check jobs, fenced signed submissions, and
|
|
14
|
+
probe signing helpers exported from `@hasna/uptime/probes`.
|
|
15
|
+
- CLI commands for `uptime probes create`, `uptime probes jobs create`,
|
|
16
|
+
`uptime probes jobs claim`, and `uptime probes submit`.
|
|
17
|
+
- Local API and MCP probe surfaces for public-key enrollment, job
|
|
18
|
+
creation/claiming, and signed result submission.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Bumped the local SQLite schema to version 2 while keeping schema version 1
|
|
23
|
+
backups restorable when they are only missing the new probe tables.
|
|
24
|
+
- Hosted probe ingest fails closed until cloud check jobs, workspace stores, and
|
|
25
|
+
audit logging are implemented.
|
|
26
|
+
|
|
27
|
+
### Security
|
|
28
|
+
|
|
29
|
+
- API and MCP probe enrollment require caller-managed public keys; generated
|
|
30
|
+
private keys are written only by the CLI to an explicit private-key file.
|
|
31
|
+
- Probe job reads redact fencing tokens outside the claim response.
|
|
32
|
+
|
|
9
33
|
## [0.1.2] - 2026-06-28
|
|
10
34
|
|
|
11
35
|
### Fixed
|
package/README.md
CHANGED
|
@@ -31,6 +31,27 @@ uptime incidents
|
|
|
31
31
|
uptime serve --port 3899 --check
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
+
Private/local probes can submit signed results from another machine:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
uptime probes create spark01 --private-key-file ./spark01-probe.key.pem
|
|
38
|
+
uptime probes jobs create --monitor <monitor-id> --schedule-slot 2026-06-28T12:00:00Z
|
|
39
|
+
uptime probes jobs claim <job-id> --probe <probe-id>
|
|
40
|
+
uptime probes submit \
|
|
41
|
+
--probe <probe-id> \
|
|
42
|
+
--job <job-id> \
|
|
43
|
+
--schedule-slot 2026-06-28T12:00:00Z \
|
|
44
|
+
--fencing-token <claim-fencing-token> \
|
|
45
|
+
--monitor <monitor-id> \
|
|
46
|
+
--monitor-revision <claim-monitor-revision> \
|
|
47
|
+
--private-key-file ./spark01-probe.key.pem \
|
|
48
|
+
--status up
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Generated probe private keys are written only to the explicit
|
|
52
|
+
`--private-key-file` path. API and MCP probe enrollment require caller-managed
|
|
53
|
+
public keys.
|
|
54
|
+
|
|
34
55
|
The local dashboard and API bind to `127.0.0.1` by default:
|
|
35
56
|
|
|
36
57
|
```bash
|
|
@@ -70,7 +91,9 @@ claude mcp add --scope user uptime -- uptime-mcp
|
|
|
70
91
|
```
|
|
71
92
|
|
|
72
93
|
The MCP server exposes monitor CRUD, check execution, summary, incident, and
|
|
73
|
-
result tools,
|
|
94
|
+
result tools, an `uptime_send_report` tool for report delivery, and local probe
|
|
95
|
+
tools for public-key enrollment, job creation/claiming, and signed result
|
|
96
|
+
submission.
|
|
74
97
|
|
|
75
98
|
## SDK
|
|
76
99
|
|
|
@@ -100,6 +123,8 @@ await uptime.sendReport({
|
|
|
100
123
|
});
|
|
101
124
|
```
|
|
102
125
|
|
|
126
|
+
Probe agents can import signing helpers from `@hasna/uptime/probes`.
|
|
127
|
+
|
|
103
128
|
## API
|
|
104
129
|
|
|
105
130
|
Run `uptime serve` and use:
|
|
@@ -115,6 +140,17 @@ Run `uptime serve` and use:
|
|
|
115
140
|
- `POST /api/monitors/:id/check`
|
|
116
141
|
- `GET /api/incidents`
|
|
117
142
|
- `GET /api/results?monitorId=<id>&limit=100`
|
|
143
|
+
- `GET /api/probes`
|
|
144
|
+
- `POST /api/probes`
|
|
145
|
+
- `POST /api/probes/jobs`
|
|
146
|
+
- `GET /api/probes/jobs/:id`
|
|
147
|
+
- `POST /api/probes/jobs/:id/claim`
|
|
148
|
+
- `POST /api/probes/results`
|
|
149
|
+
|
|
150
|
+
Hosted `/api/v1/probes*` routes currently fail closed with `501` until cloud
|
|
151
|
+
check jobs, workspace stores, and audit logging are implemented. Local job reads
|
|
152
|
+
redact fencing tokens; the claim response is the only API response that returns
|
|
153
|
+
the active fencing token.
|
|
118
154
|
|
|
119
155
|
## Scope
|
|
120
156
|
|
|
@@ -129,11 +165,14 @@ First release:
|
|
|
129
165
|
- local dashboard/API
|
|
130
166
|
- CLI, MCP, SDK, and tests
|
|
131
167
|
- Optional report delivery through Open Mailery, Open Telephony, and Open Logs
|
|
168
|
+
- Private/local probe identities, check jobs, signed submissions, and fenced
|
|
169
|
+
result recording for internal agents
|
|
132
170
|
|
|
133
171
|
Non-goals for this first release:
|
|
134
172
|
|
|
135
173
|
- Sentry-style exception tracing
|
|
136
174
|
- hosted multi-tenant SaaS billing
|
|
175
|
+
- hosted probe ingest before cloud check jobs and workspace-scoped storage
|
|
137
176
|
- synthetic browser journeys
|
|
138
177
|
- public incident pages
|
|
139
178
|
- provider-owned delivery configuration; Open Uptime sends through existing
|
package/dist/api.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { UptimeService, type UptimeServiceOptions } from "./service.js";
|
|
2
|
+
import { type UptimeRuntimeMode } from "./store.js";
|
|
2
3
|
import type { SchedulerHandle } from "./types.js";
|
|
3
4
|
export interface ServeOptions extends UptimeServiceOptions {
|
|
4
5
|
host?: string;
|
|
@@ -6,13 +7,24 @@ export interface ServeOptions extends UptimeServiceOptions {
|
|
|
6
7
|
check?: boolean;
|
|
7
8
|
service?: UptimeService;
|
|
8
9
|
apiToken?: string;
|
|
10
|
+
hostedToken?: string;
|
|
11
|
+
hostedTokens?: HostedToken[];
|
|
9
12
|
allowUnsafeRemoteMutations?: boolean;
|
|
10
13
|
}
|
|
11
14
|
export interface CreateApiHandlerOptions {
|
|
12
15
|
apiToken?: string;
|
|
16
|
+
hostedToken?: string;
|
|
17
|
+
hostedTokens?: HostedToken[];
|
|
13
18
|
allowUnsafeRemoteMutations?: boolean;
|
|
14
19
|
fetchImpl?: typeof fetch;
|
|
15
20
|
trustedLoopback?: boolean;
|
|
21
|
+
mode?: UptimeRuntimeMode;
|
|
22
|
+
}
|
|
23
|
+
export type HostedScope = "uptime:read" | "uptime:write" | "uptime:probe" | "uptime:report" | "uptime:admin";
|
|
24
|
+
export interface HostedToken {
|
|
25
|
+
token: string;
|
|
26
|
+
scopes: HostedScope[];
|
|
27
|
+
workspaceId?: string;
|
|
16
28
|
}
|
|
17
29
|
export declare function createApiHandler(service: UptimeService, options?: CreateApiHandlerOptions): (request: Request) => Promise<Response>;
|
|
18
30
|
export declare function serveUptime(options?: ServeOptions): {
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,YAAa,SAAQ,oBAAoB;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;AAE7G,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,uBAA4B,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA2BvI;AAED,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,CA2BrJ"}
|