@knowttl/checkpoint-axi 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +457 -2
- package/axi-credential.schema.json +35 -0
- package/bin/checkpoint-axi-hook.js +9 -0
- package/bin/checkpoint-axi.js +8 -0
- package/bin/version.js +3 -0
- package/dist/src/catalogue.d.ts +317 -0
- package/dist/src/catalogue.js +103 -0
- package/dist/src/cli.d.ts +9 -0
- package/dist/src/cli.js +22 -0
- package/dist/src/doctor.d.ts +3 -0
- package/dist/src/doctor.js +37 -0
- package/dist/src/downloads.d.ts +3 -0
- package/dist/src/downloads.js +52 -0
- package/dist/src/exceptions.d.ts +37 -0
- package/dist/src/exceptions.js +81 -0
- package/dist/src/local-commands.d.ts +3 -0
- package/dist/src/local-commands.js +123 -0
- package/dist/src/private-file.d.ts +10 -0
- package/dist/src/private-file.js +65 -0
- package/dist/src/profiles.d.ts +122 -0
- package/dist/src/profiles.js +137 -0
- package/dist/src/reads.d.ts +3 -0
- package/dist/src/reads.js +169 -0
- package/dist/src/redact.d.ts +6 -0
- package/dist/src/redact.js +25 -0
- package/dist/src/regions.d.ts +9 -0
- package/dist/src/regions.js +10 -0
- package/dist/src/transport.d.ts +86 -0
- package/dist/src/transport.js +306 -0
- package/dist/src/write-exceptions.d.ts +4 -0
- package/dist/src/write-exceptions.js +97 -0
- package/dist/src/write-sectools.d.ts +5 -0
- package/dist/src/write-sectools.js +107 -0
- package/dist/src/writes.d.ts +30 -0
- package/dist/src/writes.js +295 -0
- package/docs/commands.md +461 -0
- package/inventory/capabilities.json +217 -0
- package/inventory/specs.json +12 -0
- package/package.json +54 -4
- package/skills/checkpoint-axi/SKILL.md +102 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "email-security-api",
|
|
4
|
+
"title": "Email Security API Reference Guide",
|
|
5
|
+
"revision": "2026-10-23",
|
|
6
|
+
"url": "https://sc1.checkpoint.com/documents/Harmony_Email_and_Collaboration_API_Reference/CP_Check_Point_Email_Security_API_Reference_Guide.pdf",
|
|
7
|
+
"sha256": "77d99a258462f13890743811aaaae797843a3d1890bf5726b0b008f0296f5825",
|
|
8
|
+
"bytes": 2596219,
|
|
9
|
+
"pages": 138,
|
|
10
|
+
"redistributed": false
|
|
11
|
+
}
|
|
12
|
+
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,56 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knowttl/checkpoint-axi",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Inspect Check Point Email Security through compact, guarded AXI commands",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"checkpoint-axi": "bin/checkpoint-axi.js",
|
|
9
|
+
"checkpoint-axi-hook": "bin/checkpoint-axi-hook.js"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
"./catalogue": "./dist/src/catalogue.js",
|
|
13
|
+
"./inventory": "./inventory/capabilities.json",
|
|
14
|
+
"./axi-credential.schema.json": "./axi-credential.schema.json"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"bin",
|
|
18
|
+
"dist/src",
|
|
19
|
+
"inventory",
|
|
20
|
+
"axi-credential.schema.json",
|
|
21
|
+
"docs/commands.md",
|
|
22
|
+
"skills"
|
|
23
|
+
],
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/knowttl/checkpoint-axi.git"
|
|
30
|
+
},
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=22.12.0"
|
|
33
|
+
},
|
|
34
|
+
"packageManager": "pnpm@10.34.6",
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc -p tsconfig.json",
|
|
37
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
38
|
+
"lint": "corepack pnpm run typecheck",
|
|
39
|
+
"test": "node scripts/isolated.mjs node scripts/test-changes.mjs",
|
|
40
|
+
"docs:generate": "node scripts/generate-docs.mjs",
|
|
41
|
+
"docs:check": "node scripts/generate-docs.mjs --check",
|
|
42
|
+
"spec:generate": "node scripts/specs.mjs --generate",
|
|
43
|
+
"spec:check": "node scripts/specs.mjs --check",
|
|
44
|
+
"identifiers:check": "node scripts/check-identifiers.mjs"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@toon-format/toon": "2.3.1",
|
|
48
|
+
"axi-sdk-js": "0.1.13",
|
|
49
|
+
"zod": "4.3.6"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@types/node": "22.20.5",
|
|
53
|
+
"typescript": "5.9.3",
|
|
54
|
+
"vitest": "5.0.2"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: checkpoint-axi
|
|
3
|
+
description: "Inspect Check Point Email Security emails, events, tasks and exceptions, request guarded mutations and private downloads, validate profiles and diagnose API authentication with compact TOON output."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- Generated by scripts/generate-docs.mjs from src/catalogue.ts. Do not hand-edit. -->
|
|
7
|
+
|
|
8
|
+
# checkpoint-axi
|
|
9
|
+
|
|
10
|
+
Inspect Check Point Email Security through compact, guarded AXI commands.
|
|
11
|
+
See [README's introduction](../../README.md#checkpoint-axi) for shipped capabilities and [write guidance](../../README.md#email-writes-c6) before requesting mutations.
|
|
12
|
+
Use `npx -y @knowttl/checkpoint-axi` after publication without a global install.
|
|
13
|
+
Bare `--version`, `-v` and `-V` print the package version.
|
|
14
|
+
|
|
15
|
+
Run npx -y @knowttl/checkpoint-axi config path; configure a region, clientId and clientSecret env/file SecretRef.
|
|
16
|
+
Secrets use environment/file SecretRefs, never inline values, argv or chat.
|
|
17
|
+
Regions are us, eu, ca, au, uk, uae and in; arbitrary origins are refused.
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npx -y @knowttl/checkpoint-axi
|
|
21
|
+
npx -y @knowttl/checkpoint-axi home --profile example
|
|
22
|
+
npx -y @knowttl/checkpoint-axi auth status
|
|
23
|
+
npx -y @knowttl/checkpoint-axi doctor
|
|
24
|
+
npx -y @knowttl/checkpoint-axi email search
|
|
25
|
+
npx -y @knowttl/checkpoint-axi email show <id>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Home and the optional checkpoint-axi-hook binary read local context only.
|
|
29
|
+
Configure a session hook only on explicit request; it is never installed automatically.
|
|
30
|
+
Use the hook for ambient discovery or this skill for on-demand discovery.
|
|
31
|
+
Local auth status validates secret availability and file security without authenticating to the API.
|
|
32
|
+
Do not infer API access from a local pass.
|
|
33
|
+
Doctor explicitly authenticates and checks one email search page over the past 24 hours.
|
|
34
|
+
It reports region, SaaS and pass/fail per check without tenant data; a failed check exits 1.
|
|
35
|
+
Use --saas to override the profile SaaS for doctor, email search or event list; the default is office365_emails.
|
|
36
|
+
The owner commissions all slices together through Artium after the full build; only a pass/fail note enters the repository.
|
|
37
|
+
AUTH_SHAPE_UNVERIFIED requires commissioning of the undocumented token response shape (guide page 8).
|
|
38
|
+
Tokens stay in memory; verified TLS and the fixed region map are mandatory.
|
|
39
|
+
Read sessions allow at most 10 HTTP requests; write sessions allow at most 44.
|
|
40
|
+
Both are bounded by 8 MiB of JSON and 60 seconds including auth and read retries; binary downloads have a separate 50 MiB cap per response.
|
|
41
|
+
Email search defaults to 50 compact rows and a 24-hour window; --start-date and --end-date require ISO timestamps with timezones and a positive window of at most 31 days (guide pages 18-27).
|
|
42
|
+
Use --limit <1-1000> or --all, which caps output at 1000 rows within the shared transport budget.
|
|
43
|
+
Use --saas-entity for an entity type or --filter for a JSON array of {saasAttrName, saasAttrOp, saasAttrValue} filters (guide pages 19-20).
|
|
44
|
+
See [README's email-read guidance](../../README.md#email-reads-c3) for continuation, completion status, cursor safety and page replay limitations.
|
|
45
|
+
Email show <id> includes payload, verdicts, actions taken and available actions (guide pages 10-18).
|
|
46
|
+
Use --full for strings truncated at 500 characters and --fields for top-level output projection.
|
|
47
|
+
Cursor strings are never truncated; secret-derived strings are redacted before previews.
|
|
48
|
+
Downloads require file-profile downloads.allow and an absolute new --out file, created exclusively with mode 0600 or a protected Windows DACL.
|
|
49
|
+
Use email download <entity-id> [--original], attachment download <entity-id> <attachment-id> or attachment download-all <entity-id>, always with --out /absolute/new-file.
|
|
50
|
+
Downloads buffer at most 50 MiB per response, require a valid matching x-av-sha256 and sync verified bytes to disk; failures remove the new output.
|
|
51
|
+
Only path, size and sha256 are printed; binary content never enters stdout and server filenames are ignored.
|
|
52
|
+
Email requires profile scope as the scopes header; attachments take optional --scope query overriding profile scope.
|
|
53
|
+
Scope authorization remains unverified, as does email/ZIP hash availability because the guide only documents x-av-sha256 for individual attachments (pages 131-137).
|
|
54
|
+
The mandatory hash policy fails closed on missing headers; commission through Artium before assuming live download support.
|
|
55
|
+
ZIP HTTP 200 may contain only some attachments; archives are never automatically extracted.
|
|
56
|
+
See [download guidance](../../README.md#downloads-c11) for retry limits, output safety and commissioning limitations.
|
|
57
|
+
Event action --ids <ids> --name <action> previews by default and requires the exact profile operation event.action.<name>, --execute and the preview's exact --confirm to send once.
|
|
58
|
+
Every target must offer the action on both reads; nonempty actionParameter objects or repeated action names refuse ENDPOINT_UNVERIFIED until live commissioning resolves the object/string contradiction (guide pages 36-37, 43).
|
|
59
|
+
Use event show <id> to inspect all available actions, including deferred parameterized actions.
|
|
60
|
+
Accepted actions return task IDs; use task show <taskId> to inspect asynchronous execution without replaying ambiguous outcomes.
|
|
61
|
+
Event list supports documented selectors and shares email search bounds and continuation; event show preserves actions and task show reads asynchronous status without polling (guide pages 30-42).
|
|
62
|
+
Exception list/show accept phishing-allow, phishing-block, spam-allow, anomaly, click-time, malware, url and dlp (guide pages 49-123).
|
|
63
|
+
For malware, url and dlp, --type is required; run exception list --help for the documented values.
|
|
64
|
+
Click-time --items selects item routes; by default list routes are used.
|
|
65
|
+
Exception show takes an ID or value as a positional argument after the kind; values are encoded as one path segment.
|
|
66
|
+
Anomaly show refuses with ENDPOINT_UNVERIFIED because no detail endpoint or response identity is documented (pages 83-84).
|
|
67
|
+
Exception lists default to 50 rows; --limit or --all bounds results at 1000 rows within transport budgets.
|
|
68
|
+
No exception continuation request parameter is documented; incomplete results report complete: false without inventing scroll requests.
|
|
69
|
+
Anti-Phishing requests are spaced at 1 request/second; other exception requests at 10 requests/second, including read retries.
|
|
70
|
+
Undocumented exception response shapes are preserved as JSON values and marked responseSchema: unverified; live behavior remains uncommissioned.
|
|
71
|
+
For exception create/update/remove on phishing-allow, phishing-block and spam-allow, follow [README's Anti-Phishing and Spam write guidance](../../README.md#anti-phishing-and-spam-writes-c8) for private input, replacement semantics, scope, confirmation and preflight/no-op behavior.
|
|
72
|
+
For anomaly create/remove and click-time create/update/remove/remove-items, follow [README's C9 write guidance](../../README.md#anomaly-and-click-time-writes-c9) for documented inputs, exact scope and confirmation, unverified target/response contracts and read-only reconciliation.
|
|
73
|
+
That C9 guidance also owns the approved clear and collection-PUT commissioning deferrals; do not infer existence, identities or no-op state from undocumented JSON or replay a mutation to retrieve truncated output.
|
|
74
|
+
For malware/URL/DLP create, create-specific and update, follow [C10 write guidance](../../README.md#malware-url-and-dlp-writes-c10) for private inputs, payload confirmation and unverified responses.
|
|
75
|
+
The six malware/URL/DLP remove/clear commands refuse ENDPOINT_UNVERIFIED before configuration or authentication; the guide duplicates create/delete requests, so live commissioning must establish their actual contracts.
|
|
76
|
+
All live-only facts remain unverified, including token response shape and lifetime, delete requests and download scopes.
|
|
77
|
+
|
|
78
|
+
| Command | Purpose |
|
|
79
|
+
|---|---|
|
|
80
|
+
| `npx -y @knowttl/checkpoint-axi attachment download` | Download one attachment to a new private file with profile opt-in, a 50 MiB cap and verified x-av-sha256; scope behavior is unverified (guide pages 133-135) |
|
|
81
|
+
| `npx -y @knowttl/checkpoint-axi attachment download-all` | Download available attachments as a ZIP to a new private file with opt-in, a 50 MiB cap and mandatory SHA-256 verification; ZIP hash availability and scopes are unverified; HTTP 200 may contain only some attachments (guide pages 135-137) |
|
|
82
|
+
| `npx -y @knowttl/checkpoint-axi auth status` | Validate the selected local profile and secret source without API calls |
|
|
83
|
+
| `npx -y @knowttl/checkpoint-axi config path` | Show config and state paths without reading files; --profile does not affect paths |
|
|
84
|
+
| `npx -y @knowttl/checkpoint-axi doctor` | Check regional API authentication and one bounded email search without printing tenant data |
|
|
85
|
+
| `npx -y @knowttl/checkpoint-axi email download` | Download an email to a new private file with profile opt-in, a 50 MiB cap and mandatory SHA-256 verification; scopes and email hash availability are unverified (guide pages 131-132) |
|
|
86
|
+
| `npx -y @knowttl/checkpoint-axi email quarantine` | Preview or request asynchronous email quarantine through the gated write coordinator (guide pages 28-30) |
|
|
87
|
+
| `npx -y @knowttl/checkpoint-axi email restore` | Preview or request asynchronous email restore through the gated write coordinator (guide pages 28-30) |
|
|
88
|
+
| `npx -y @knowttl/checkpoint-axi email search` | Search emails with a bounded date window and scroll continuation (API guide pages 18-27) |
|
|
89
|
+
| `npx -y @knowttl/checkpoint-axi email show` | Show one email with verdicts, actions and available actions (API guide pages 10-18) |
|
|
90
|
+
| `npx -y @knowttl/checkpoint-axi event action` | Preview or request a name-only event action; parameterized actions refuse ENDPOINT_UNVERIFIED pending commissioning (guide pages 35-37, 42-45) |
|
|
91
|
+
| `npx -y @knowttl/checkpoint-axi event list` | List security events with bounded scroll continuation (API guide pages 37-42) |
|
|
92
|
+
| `npx -y @knowttl/checkpoint-axi event show` | Show one event, actions taken and available actions (API guide pages 34-37) |
|
|
93
|
+
| `npx -y @knowttl/checkpoint-axi exception clear` | Refuse click-time/malware/url/dlp clear with ENDPOINT_UNVERIFIED until commissioning establishes counts and delete contracts (guide pages 87-88, 96-97, 107-110, 117-120, 128-131) |
|
|
94
|
+
| `npx -y @knowttl/checkpoint-axi exception create` | Preview or create one exception of any kind; anomaly/click-time/malware/url/dlp response identities are unverified (guide pages 61-64, 75-78, 84-85, 91-93, 102-105, 113-116, 123-126) |
|
|
95
|
+
| `npx -y @knowttl/checkpoint-axi exception list` | List bounded exceptions for phishing-allow, phishing-block, spam-allow, anomaly, click-time, malware, url or dlp (guide pages 49-123) |
|
|
96
|
+
| `npx -y @knowttl/checkpoint-axi exception remove` | Preview or remove one phishing/spam/anomaly/click-time exception by ID; malware/url/dlp refuse ENDPOINT_UNVERIFIED before authentication (guide pages 67-69, 81-82, 85-87, 98-99, 108-110, 119-120, 129-131) |
|
|
97
|
+
| `npx -y @knowttl/checkpoint-axi exception remove-items` | Preview or remove 1-20 click-time items by caller-supplied IDs; existence is unverified (guide pages 97-98) |
|
|
98
|
+
| `npx -y @knowttl/checkpoint-axi exception show` | Show an exception by kind and ID/value; anomaly refuses ENDPOINT_UNVERIFIED pending commissioning (guide pages 52-123) |
|
|
99
|
+
| `npx -y @knowttl/checkpoint-axi exception update` | Preview or replace one exception; phishing/spam/click-time require an ID; malware/url/dlp identify it in --input without an ID; anomaly unsupported (guide pages 64-67, 78-81, 94-96, 105-107, 116-117, 126-127) |
|
|
100
|
+
| `npx -y @knowttl/checkpoint-axi home` | Show local profile context without resolving secrets or making API calls |
|
|
101
|
+
| `npx -y @knowttl/checkpoint-axi profile list` | List file profiles without resolving secrets; --profile does not filter this list |
|
|
102
|
+
| `npx -y @knowttl/checkpoint-axi task show` | Show asynchronous task status and per-action details (API guide pages 30-33) |
|