@aiaiai-pt/frankctl 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@aiaiai-pt/frankctl` are documented here. This project
4
+ adheres to [Semantic Versioning](https://semver.org/).
5
+
6
+ ## 0.4.0
7
+
8
+ - First public release to npm as `@aiaiai-pt/frankctl` (binary `frankctl`).
9
+ - `--version` is injected from `package.json` at build time (no drift).
10
+ - Commands: `auth`, `config`, `status`, `sources` (incl. `streams list|set|refresh-schema|set-types|diff-types`),
11
+ `transforms`, `pipelines` (`validate|apply|export|scaffold`), `backing-datasets`, `patterns`,
12
+ `schedules`, `runs`, `datasets`, `ai`, `admin`.
package/README.md ADDED
@@ -0,0 +1,73 @@
1
+ # frankctl
2
+
3
+ Terminal-first CLI for the [Frank Low-Code Pipeline](https://frank-docs-4k3.pages.dev) platform — scriptable access to sources, streams, transforms, pipelines, backing datasets, and AI assistance.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g @aiaiai-pt/frankctl
9
+ frankctl --help
10
+ ```
11
+
12
+ Requires Node.js >= 18. The binary is `frankctl`.
13
+
14
+ ## Quickstart
15
+
16
+ ```bash
17
+ frankctl auth login # authenticate against your Frank instance
18
+ frankctl --api-url https://frank.example.com sources list
19
+ frankctl pipelines apply -f pipeline.yaml
20
+ ```
21
+
22
+ Full command reference: the [Frank docs](https://frank-docs-4k3.pages.dev) and `frankctl <command> --help`.
23
+
24
+ ## Develop from source
25
+
26
+ ```bash
27
+ npm install
28
+ npm run build
29
+ npm link
30
+ frankctl --help
31
+ ```
32
+
33
+ ## Scope
34
+
35
+ - `frankctl status`
36
+ - `frankctl auth login|logout|status|token`
37
+ - `frankctl config set|get|list`
38
+ - `frankctl pipelines list|get|validate|apply|export`
39
+ - `frankctl sources list|get|create|update|delete|discover|sync|logs|history`
40
+ - `frankctl backing-datasets list|get|create|update|delete` (alias: `frankctl bd`)
41
+ - `frankctl sources streams list|set|refresh-schema`
42
+ - `frankctl transforms list|get|runs|logs|trigger`
43
+ - `frankctl runs get|wait|cancel`
44
+ - `frankctl patterns list|get|validate-params|register`
45
+ - `frankctl schedules list|get|set|delete|pause|resume|trigger` (source-scoped)
46
+ - `frankctl datasets list|preview|snapshots`
47
+ - `frankctl ai compose-pipeline|generate-transform|review-sql|fix-ci-failure|suggest|publish-transform`
48
+
49
+ Config files for `sources create|update`, `backing-datasets create|update`, and `sources streams set` accept YAML or JSON (use `-` to read stdin).
50
+
51
+ ### Declarative apply (`pipelines apply -f`)
52
+
53
+ `frankctl pipelines apply -f vertical.yaml` provisions a complete Source +
54
+ Pipeline + BackingDataset triple from a single multi-doc YAML file.
55
+ Docs use the kubectl-style envelope (`apiVersion: frank.platform/v1`,
56
+ `kind:`, `metadata.name:`, `spec:`). The CLI sorts by kind (Source →
57
+ Pipeline → BackingDataset), resolves cross-doc name references to UUIDs,
58
+ and POSTs each doc with `?if-not-exists=true`. `frankctl pipelines export
59
+ <id> -o yaml` round-trips an existing pipeline back to a multi-doc YAML
60
+ file ready for adoption into git. See `../docs/guides/cli.md` for the
61
+ full reference.
62
+
63
+ ## Environment
64
+
65
+ - `FRANKCTL_API_URL` — Frank API base (default `http://localhost:8000`)
66
+ - `FRANKCTL_KEYCLOAK_URL` — Keycloak base (default `http://localhost:8180`)
67
+ - `FRANKCTL_KEYCLOAK_REALM` — realm (default `frank`)
68
+ - `FRANKCTL_CLIENT_ID` — OAuth client id (default `frank-low-code` for user flows, `frank-api` for service account)
69
+ - `FRANKCTL_CLIENT_SECRET` — client secret (service account only)
70
+ - `FRANKCTL_PROFILE` — active config profile
71
+ - `FRANKCTL_TOKEN` — bypass token store entirely
72
+ - `FRANK_DEV_MODE=true` + `FRANKCTL_TENANT_ID=<uuid>` — forward `X-Tenant-ID` header (required today for transforms and source sync routes)
73
+ - `PATTERN_WEBHOOK_SECRET` — HMAC-SHA256 signing key for `frankctl patterns register` (CI only; command exits 6 when unset)