@mostly-good-metrics/cli 0.1.0 → 0.1.4
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 +233 -71
- package/dist/auth.js +10 -10
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +18 -6
- package/dist/client.js +9 -2
- package/dist/client.js.map +1 -1
- package/dist/commands/auth.js +8 -4
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/events.js +21 -0
- package/dist/commands/events.js.map +1 -1
- package/dist/commands/funnels.js +8 -8
- package/dist/commands/funnels.js.map +1 -1
- package/dist/commands/init.js +24 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/keys.d.ts +2 -0
- package/dist/commands/keys.js +42 -5
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/queries.js +98 -52
- package/dist/commands/queries.js.map +1 -1
- package/dist/commands/retention.js +10 -10
- package/dist/commands/retention.js.map +1 -1
- package/dist/commands/skills.d.ts +10 -0
- package/dist/commands/skills.js +48 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/widgets.js +31 -7
- package/dist/commands/widgets.js.map +1 -1
- package/dist/program.d.ts +1 -1
- package/dist/program.js +3 -1
- package/dist/program.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,126 +1,288 @@
|
|
|
1
1
|
# MostlyGoodMetrics CLI
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Documentation: [docs.mostlygoodmetrics.com](https://docs.mostlygoodmetrics.com)
|
|
3
|
+
The command-line interface for [MostlyGoodMetrics](https://mostlygoodmetrics.com). Use it to manage analytics projects, inspect events and dashboards, run product analyses, and operate experiments from a terminal, script, or coding agent.
|
|
6
4
|
|
|
7
5
|
## Install
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
Requires Node.js 18 or later.
|
|
10
8
|
|
|
11
9
|
```bash
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
npm install
|
|
15
|
-
npm run build
|
|
16
|
-
npm link # makes the `mgm` command available on your PATH
|
|
10
|
+
npm install -g @mostly-good-metrics/cli
|
|
11
|
+
mgm --version
|
|
17
12
|
```
|
|
18
13
|
|
|
19
|
-
|
|
14
|
+
## Get started
|
|
20
15
|
|
|
21
|
-
|
|
16
|
+
Authenticate, create or select a project, then inspect its dashboard:
|
|
22
17
|
|
|
23
18
|
```bash
|
|
24
|
-
#
|
|
19
|
+
# Opens the MostlyGoodMetrics sign-in flow in your browser.
|
|
25
20
|
mgm login
|
|
26
21
|
|
|
27
|
-
#
|
|
28
|
-
mgm init
|
|
22
|
+
# Creates a project and a bundle-restricted API key, then writes .mgm.json.
|
|
23
|
+
mgm init --project "My iOS App" --sdk swift --allow com.example.app
|
|
29
24
|
|
|
30
|
-
#
|
|
25
|
+
# Reads the project in .mgm.json.
|
|
31
26
|
mgm dashboard --range 30d
|
|
32
27
|
```
|
|
33
28
|
|
|
34
|
-
|
|
29
|
+
Project-scoped commands use the `.mgm.json` file in the current directory. To work without one, pass `--project <project-id>` or set `MGM_PROJECT_ID`.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
mgm projects list
|
|
33
|
+
mgm dashboard --project prj_123 --range 7d
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Common workflows
|
|
37
|
+
|
|
38
|
+
### Explore your product data
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# See the events your project has received.
|
|
42
|
+
mgm events types --project prj_123
|
|
43
|
+
mgm events list --project prj_123 --range 7d
|
|
44
|
+
|
|
45
|
+
# Define an event before it is first sent, so it is ready for funnels and dashboards.
|
|
46
|
+
# This creates metadata only; it does not emit an analytics event.
|
|
47
|
+
mgm events define checkout_completed \
|
|
48
|
+
--description "A customer completes checkout" \
|
|
49
|
+
--project prj_123
|
|
50
|
+
|
|
51
|
+
# Run an ad-hoc funnel.
|
|
52
|
+
mgm funnels execute \
|
|
53
|
+
--steps "app_open,add_to_cart,purchase" \
|
|
54
|
+
--range 30d \
|
|
55
|
+
--project prj_123
|
|
56
|
+
|
|
57
|
+
# Break out unique users by day.
|
|
58
|
+
mgm queries execute \
|
|
59
|
+
--metric unique_users \
|
|
60
|
+
--group-by date \
|
|
61
|
+
--breakdown-by platform \
|
|
62
|
+
--range 7d \
|
|
63
|
+
--project prj_123
|
|
64
|
+
|
|
65
|
+
# Power-user escape hatch: use the full safe MGM query definition.
|
|
66
|
+
mgm queries execute \
|
|
67
|
+
--definition '{"metric":"count_events","group_by":"date","breakdown_by":"prop:screen","event_filter":["ios_screen_viewed"],"date_range":"30d"}' \
|
|
68
|
+
--project prj_123
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Query definition
|
|
72
|
+
|
|
73
|
+
`--metric`, `--group-by`, `--breakdown-by`, `--granularity`, `--range`,
|
|
74
|
+
`--events`, `--platforms`, `--environments`, and `--exclude-lifecycle-events`
|
|
75
|
+
cover the common cases. `--definition` takes the same object those flags build
|
|
76
|
+
and is the only way to reach country/region/city filters and custom property
|
|
77
|
+
operators. Explicit flags override keys in `--definition`.
|
|
78
|
+
|
|
79
|
+
```jsonc
|
|
80
|
+
{
|
|
81
|
+
"metric": "unique_users", // count_events, unique_users, unique_sessions, dau
|
|
82
|
+
"event_filter": ["purchase"], // event names to count
|
|
83
|
+
"group_by": "date", // dimension below, or "prop:<name>"
|
|
84
|
+
"breakdown_by": "platform", // second dimension; only when group_by is "date"
|
|
85
|
+
"granularity": "day", // day, week, month; only when group_by is "date"
|
|
86
|
+
"date_range": "30d", // see below
|
|
87
|
+
"exclude_lifecycle_events": true, // drop auto-tracked $ events
|
|
88
|
+
"filters": { "platforms": ["iOS"] }
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Dimensions for `group_by` and `breakdown_by`: `date` (`group_by` only),
|
|
93
|
+
`platform`, `app_version`, `app_build_number`, `os_version`, `environment`,
|
|
94
|
+
`device_manufacturer`, `locale`, `timezone`, `country`, `region`, `city`,
|
|
95
|
+
`event_name`, or `prop:<property_name>`.
|
|
96
|
+
|
|
97
|
+
Date ranges: `1d`, `7d`, `30d`, `90d`, `365d`,
|
|
98
|
+
`custom:YYYY-MM-DD:YYYY-MM-DD`, or seasonal forms `month:11`, `months:11,12`,
|
|
99
|
+
`quarter:4`, `quarters:1,4`, `compare:month:11`, `compare:quarter:4`,
|
|
100
|
+
`compare:wow:4`.
|
|
101
|
+
|
|
102
|
+
#### filters
|
|
103
|
+
|
|
104
|
+
A flat object. Dimension keys are `platforms`, `event_names`, `environments`,
|
|
105
|
+
`app_versions`, `countries`, `regions`, and `cities`; the singular spellings
|
|
106
|
+
`environment`, `app_version`, `country`, `region`, and `city` mean the same
|
|
107
|
+
thing. Each takes a string or an array of strings. Values inside one key are
|
|
108
|
+
OR'd; separate keys are AND'd. Run `mgm dashboard filters` to see the values a
|
|
109
|
+
project actually has.
|
|
110
|
+
|
|
111
|
+
Custom properties use a `prop:<name>` key:
|
|
112
|
+
|
|
113
|
+
```jsonc
|
|
114
|
+
"prop:plan": "pro" // shorthand for IN ["pro"]
|
|
115
|
+
"prop:plan": ["pro", "team"] // IN
|
|
116
|
+
"prop:plan": { "op": "neq", "value": "free" } // one clause
|
|
117
|
+
"prop:revenue": { "op": "gt", "type": "number", "value": 100 }
|
|
118
|
+
"prop:plan": [ // several clauses, OR'd
|
|
119
|
+
{ "op": "contains", "value": "ent" },
|
|
120
|
+
{ "op": "is_set" }
|
|
121
|
+
]
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
A clause takes `op` (default `eq`), `type` (`string` default, `number`,
|
|
125
|
+
`boolean`, `datetime`, `enum`), and `value` or `values`. Operators depend on
|
|
126
|
+
`type`:
|
|
127
|
+
|
|
128
|
+
| `type` | Operators |
|
|
129
|
+
| --- | --- |
|
|
130
|
+
| any | `is_set`, `is_not_set` |
|
|
131
|
+
| `string`, `enum` | `eq`, `neq`, `in`, `not_in`, `contains`, `not_contains`, `starts_with`, `ends_with` |
|
|
132
|
+
| `number` | `eq`, `neq`, `in`, `not_in`, `gt`, `gte`, `lt`, `lte`, `between` |
|
|
133
|
+
| `boolean` | `eq` |
|
|
134
|
+
| `datetime` | `before`, `after`, `on_or_before`, `on_or_after`, `between` |
|
|
135
|
+
|
|
136
|
+
Set `type` when you want numeric or chronological comparison; the default
|
|
137
|
+
`string` compares lexically. `in`, `not_in`, and `between` read `values`.
|
|
138
|
+
Clauses within one `prop:` key are OR'd; different `prop:` keys are AND'd.
|
|
139
|
+
|
|
140
|
+
A `prop:` filter is answered from raw events rather than daily aggregates, so
|
|
141
|
+
it is slower than a dimension filter. Prefer a dimension filter when one
|
|
142
|
+
covers what you need.
|
|
143
|
+
|
|
144
|
+
Funnel steps are a different shape. `mgm funnels create --steps` takes
|
|
145
|
+
comma-separated event names; per-step property filters use
|
|
146
|
+
`{"property": ..., "op": ..., "value": ...}` with the smaller operator set
|
|
147
|
+
`eq`, `neq`, `contains`, `not_contains`, `gt`, `gte`, `lt`, `lte`.
|
|
148
|
+
|
|
149
|
+
### Manage saved analysis
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
mgm funnels create --name "Checkout" --steps "app_open,checkout_started,purchase"
|
|
153
|
+
mgm retention create --name "Weekly retention" --cohort-event signup --retention-event app_open
|
|
154
|
+
mgm queries create --name "Daily active users" --metric unique_users --group-by date
|
|
155
|
+
|
|
156
|
+
mgm funnels list
|
|
157
|
+
mgm retention list
|
|
158
|
+
mgm queries list
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Run an experiment
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
mgm experiments create \
|
|
165
|
+
--name "New paywall" \
|
|
166
|
+
--variants "control,treatment" \
|
|
167
|
+
--goal purchase
|
|
168
|
+
|
|
169
|
+
mgm experiments start exp_123
|
|
170
|
+
mgm experiments results exp_123
|
|
171
|
+
mgm experiments stop exp_123 --yes
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Manage access and dashboards
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
mgm orgs list
|
|
178
|
+
mgm projects create "My App" --org acme
|
|
179
|
+
mgm keys create "iOS Production" --project prj_123 --allow com.example.app
|
|
180
|
+
mgm keys create "Private relay" --project prj_123 --unrestricted --yes
|
|
181
|
+
mgm widgets list --project prj_123
|
|
182
|
+
mgm widgets add funnel --funnel fun_123 --project prj_123
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Creating an API key requires an explicit access choice. Use one or more `--allow`
|
|
186
|
+
values for Apple bundle IDs, Android package names, or web domains. Use
|
|
187
|
+
`--unrestricted` only when the caller cannot
|
|
188
|
+
send a stable identifier; unrestricted creation requires interactive confirmation
|
|
189
|
+
or the global `--yes` flag. After restricted creation, the CLI verifies that the
|
|
190
|
+
server applied the requested environment and complete allowlist before revealing
|
|
191
|
+
the one-time key. The same access choice is required by `mgm init`; its key
|
|
192
|
+
environment defaults to `development` and can be changed with `--environment`.
|
|
35
193
|
|
|
36
194
|
## Automation and agents
|
|
37
195
|
|
|
38
|
-
The CLI is designed to be
|
|
196
|
+
The CLI is designed to be discoverable and safe in non-interactive environments.
|
|
39
197
|
|
|
40
198
|
```bash
|
|
41
|
-
#
|
|
199
|
+
# Inspect the entire command tree or the contract for one command.
|
|
42
200
|
mgm commands --json
|
|
43
201
|
mgm schema experiments update --json
|
|
44
202
|
|
|
45
|
-
#
|
|
46
|
-
mgm
|
|
203
|
+
# Produce JSON and select exactly the values a script needs.
|
|
204
|
+
mgm experiments list --project prj_123 --json --jq '.[] | .id'
|
|
47
205
|
|
|
48
|
-
#
|
|
49
|
-
MGM_TOKEN="
|
|
50
|
-
# Set MGM_API_URL alongside MGM_APP_URL for a local API/OAuth development environment.
|
|
51
|
-
mgm init --project "My App" --org acme --no-input --json
|
|
206
|
+
# Run without a browser or local project file.
|
|
207
|
+
MGM_TOKEN="…" MGM_PROJECT_ID="prj_123" mgm experiments list --json
|
|
52
208
|
|
|
53
|
-
# Explicitly
|
|
209
|
+
# Explicitly authorize destructive work in CI.
|
|
54
210
|
mgm experiments delete exp_123 --project prj_123 --no-input --yes --json
|
|
55
211
|
```
|
|
56
212
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## Commands
|
|
213
|
+
## Agent skills
|
|
60
214
|
|
|
61
|
-
|
|
62
|
-
| --- | --- |
|
|
63
|
-
| `mgm login` / `mgm signup` / `mgm logout` | Browser-based OAuth auth (`--token` for CI) |
|
|
64
|
-
| `mgm whoami` | Show current user and organizations |
|
|
65
|
-
| `mgm init` | Create a project + API key and save local context |
|
|
66
|
-
| `mgm orgs list\|show\|create\|invite` | Manage organizations and members |
|
|
67
|
-
| `mgm projects list\|create\|show` | Manage projects |
|
|
68
|
-
| `mgm keys list\|create\|revoke` | Manage project API keys |
|
|
69
|
-
| `mgm dashboard` / `mgm dashboard filters` | Dashboard stats and available filter values |
|
|
70
|
-
| `mgm events list\|types\|send` | Inspect recent events, send test events |
|
|
71
|
-
| `mgm funnels list\|create\|show\|update\|execute\|delete` | Saved and ad-hoc funnels |
|
|
72
|
-
| `mgm retention list\|create\|show\|update\|execute\|delete` | Retention analyses |
|
|
73
|
-
| `mgm queries list\|create\|show\|update\|execute\|delete` | Saved and ad-hoc queries |
|
|
74
|
-
| `mgm experiments list\|create\|show\|update\|start\|stop\|delete` | Manage and analyze A/B experiments |
|
|
75
|
-
| `mgm widgets list\|add\|remove\|reset` | Manage dashboard widgets |
|
|
76
|
-
| `mgm commands` / `mgm schema <command>` | Discover the full command tree and typed flags |
|
|
77
|
-
|
|
78
|
-
Run `mgm <command> --help` for full options.
|
|
79
|
-
|
|
80
|
-
## Examples
|
|
215
|
+
MGM ships skills for instrumentation, metric analysis, funnel diagnosis, and weekly reviews. The CLI uses the standard npm-delivered [`skills`](https://skills.sh) installer, so the same command works for Codex, Claude Code, and other supported agents.
|
|
81
216
|
|
|
82
217
|
```bash
|
|
83
|
-
#
|
|
84
|
-
mgm
|
|
218
|
+
# See the four available MGM skills.
|
|
219
|
+
mgm skills list
|
|
220
|
+
|
|
221
|
+
# Install interactively in the current project.
|
|
222
|
+
mgm skills install
|
|
85
223
|
|
|
86
|
-
#
|
|
87
|
-
mgm
|
|
224
|
+
# Install all MGM skills globally for Codex without prompts.
|
|
225
|
+
mgm skills install --global --agent codex --yes
|
|
88
226
|
|
|
89
|
-
#
|
|
90
|
-
mgm
|
|
227
|
+
# Install only the instrumentation skill for Claude Code.
|
|
228
|
+
mgm skills install --agent claude-code --skill instrument-my-app
|
|
91
229
|
```
|
|
92
230
|
|
|
231
|
+
| Option | Purpose |
|
|
232
|
+
| --- | --- |
|
|
233
|
+
| `--json` | Emit machine-readable JSON where supported. |
|
|
234
|
+
| `--jq <expression>` | Filter JSON output with the standard `jq` executable. |
|
|
235
|
+
| `--no-input` | Fail instead of opening a browser or prompting. |
|
|
236
|
+
| `-y`, `--yes` | Confirm destructive operations such as deletion, key revocation, widget reset, and stopping an experiment. |
|
|
237
|
+
|
|
238
|
+
For scripts, use `MGM_TOKEN` rather than `mgm login --token`, because command-line arguments can be visible to other local processes. `MGM_API_URL` and `MGM_APP_URL` can point the CLI at a local development environment.
|
|
239
|
+
|
|
240
|
+
## Command reference
|
|
241
|
+
|
|
242
|
+
Run `mgm <command> --help` for flags and examples. The main command groups are:
|
|
243
|
+
|
|
244
|
+
| Area | Commands |
|
|
245
|
+
| --- | --- |
|
|
246
|
+
| Account | `login`, `signup`, `logout`, `whoami` |
|
|
247
|
+
| Organizations and projects | `orgs`, `projects`, `init` |
|
|
248
|
+
| Credentials | `keys` |
|
|
249
|
+
| Product data | `dashboard`, `events`, `widgets` |
|
|
250
|
+
| Analysis | `funnels`, `retention`, `queries` |
|
|
251
|
+
| Experiments | `experiments` |
|
|
252
|
+
| Discovery | `commands`, `schema` |
|
|
253
|
+
|
|
254
|
+
Use `mgm commands --json` for the complete command tree, including all subcommands and flags.
|
|
255
|
+
|
|
256
|
+
## Credentials and local files
|
|
257
|
+
|
|
258
|
+
Interactive credentials are stored in the operating system credential store when available (macOS Keychain, Windows Credential Manager, or the Linux secret service). If no native store is available, the fallback config file is restricted to the current user.
|
|
259
|
+
|
|
260
|
+
`mgm init` writes `.mgm.json` in the current directory with the selected project context. Treat API keys printed by `mgm keys create` as secrets and store them in your CI secret manager. Human-readable `mgm keys list` output reports only whether each key is restricted; use `--json` when you need the full identifier allowlist.
|
|
261
|
+
|
|
93
262
|
## Development
|
|
94
263
|
|
|
95
264
|
```bash
|
|
265
|
+
git clone https://github.com/Mostly-Good-Metrics/cli.git
|
|
266
|
+
cd cli
|
|
96
267
|
npm install
|
|
97
|
-
npm run build
|
|
98
|
-
npm test
|
|
99
|
-
npm run test:watch # watch mode
|
|
268
|
+
npm run build
|
|
269
|
+
npm test
|
|
100
270
|
node bin/mgm.js --help
|
|
101
271
|
```
|
|
102
272
|
|
|
103
|
-
CI
|
|
273
|
+
CI runs the build, tests, and a CLI smoke test on Node 20 and 22 for every pull request.
|
|
104
274
|
|
|
105
275
|
## Releasing
|
|
106
276
|
|
|
107
|
-
Publishing is automated
|
|
108
|
-
|
|
109
|
-
One-time setup:
|
|
110
|
-
|
|
111
|
-
1. Create an npm automation token with publish access to the `@mostly-good-metrics` scope (the org must exist on npm).
|
|
112
|
-
2. Add it as the `NPM_TOKEN` secret in the GitHub repo (Settings > Secrets and variables > Actions).
|
|
113
|
-
|
|
114
|
-
To ship a release:
|
|
277
|
+
Publishing is automated through npm trusted publishing. Create a version bump commit, then tag and push it:
|
|
115
278
|
|
|
116
279
|
```bash
|
|
117
|
-
|
|
118
|
-
git
|
|
119
|
-
git push --tags
|
|
280
|
+
git tag v0.2.0
|
|
281
|
+
git push origin v0.2.0
|
|
120
282
|
```
|
|
121
283
|
|
|
122
|
-
The workflow
|
|
284
|
+
The [`release.yml`](.github/workflows/release.yml) workflow builds, tests, and publishes from GitHub Actions using OIDC—no long-lived npm token is stored in the repository. npm automatically attaches provenance to trusted-publisher releases.
|
|
123
285
|
|
|
124
286
|
## License
|
|
125
287
|
|
|
126
|
-
MIT
|
|
288
|
+
[MIT](LICENSE)
|
package/dist/auth.js
CHANGED
|
@@ -91,8 +91,10 @@ export function getToken() {
|
|
|
91
91
|
return keychainToken;
|
|
92
92
|
const config = readConfig();
|
|
93
93
|
const legacyToken = config.token;
|
|
94
|
-
if (legacyToken
|
|
95
|
-
|
|
94
|
+
if (legacyToken) {
|
|
95
|
+
// Best-effort native-store migration. Retain the protected fallback: a
|
|
96
|
+
// handful of keychain backends do not survive process boundaries.
|
|
97
|
+
saveKeychainToken(legacyToken);
|
|
96
98
|
writeConfig(config);
|
|
97
99
|
return legacyToken;
|
|
98
100
|
}
|
|
@@ -109,14 +111,12 @@ export function getRedirectUri() {
|
|
|
109
111
|
}
|
|
110
112
|
export function saveToken(token, email) {
|
|
111
113
|
const config = readConfig();
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
config.token = token;
|
|
119
|
-
}
|
|
114
|
+
// Keep the mode-0600 file fallback alongside the native credential store.
|
|
115
|
+
// On some macOS setups a keychain write succeeds within the login process
|
|
116
|
+
// but is not available to a later CLI invocation. The fallback makes the
|
|
117
|
+
// successful OAuth session durable in that case.
|
|
118
|
+
saveKeychainToken(token);
|
|
119
|
+
config.token = token;
|
|
120
120
|
if (email)
|
|
121
121
|
config.email = email;
|
|
122
122
|
writeConfig(config);
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -55,7 +55,10 @@ export declare const deleteProject: (id: string) => Promise<{
|
|
|
55
55
|
export declare const listApiKeys: (projectId: string) => Promise<{
|
|
56
56
|
api_keys: ApiKey[];
|
|
57
57
|
}>;
|
|
58
|
-
export declare const createApiKey: (projectId: string, name: string
|
|
58
|
+
export declare const createApiKey: (projectId: string, name: string, options?: {
|
|
59
|
+
environment?: string;
|
|
60
|
+
allowedIdentifiers?: string[];
|
|
61
|
+
}) => Promise<{
|
|
59
62
|
api_key: ApiKey & {
|
|
60
63
|
key: string;
|
|
61
64
|
};
|
|
@@ -72,19 +75,22 @@ export declare const listEventTypes: (projectId: string, params?: Record<string,
|
|
|
72
75
|
event_types: EventType[];
|
|
73
76
|
}>;
|
|
74
77
|
export declare const listEventDefinitions: (projectId: string) => Promise<{
|
|
75
|
-
|
|
78
|
+
definitions: EventDefinition[];
|
|
79
|
+
}>;
|
|
80
|
+
export declare const createEventDefinition: (projectId: string, attrs: Record<string, unknown>) => Promise<{
|
|
81
|
+
definition: EventDefinition;
|
|
76
82
|
}>;
|
|
77
83
|
export declare const listInsights: (projectId: string) => Promise<{
|
|
78
|
-
|
|
84
|
+
queries: SavedQuery[];
|
|
79
85
|
}>;
|
|
80
86
|
export declare const getInsight: (projectId: string, id: string) => Promise<{
|
|
81
|
-
|
|
87
|
+
query: SavedQuery;
|
|
82
88
|
}>;
|
|
83
89
|
export declare const createInsight: (projectId: string, attrs: Record<string, unknown>) => Promise<{
|
|
84
|
-
|
|
90
|
+
query: SavedQuery;
|
|
85
91
|
}>;
|
|
86
92
|
export declare const updateInsight: (projectId: string, id: string, attrs: Record<string, unknown>) => Promise<{
|
|
87
|
-
|
|
93
|
+
query: SavedQuery;
|
|
88
94
|
}>;
|
|
89
95
|
export declare const deleteInsight: (projectId: string, id: string) => Promise<{
|
|
90
96
|
status: string;
|
|
@@ -204,6 +210,10 @@ export interface ApiKey {
|
|
|
204
210
|
key_prefix?: string;
|
|
205
211
|
last_used_at?: string;
|
|
206
212
|
created_at?: string;
|
|
213
|
+
inserted_at?: string;
|
|
214
|
+
environment?: string;
|
|
215
|
+
allowed_identifiers?: string[];
|
|
216
|
+
request_count?: number;
|
|
207
217
|
}
|
|
208
218
|
export interface DashboardResponse {
|
|
209
219
|
stats: {
|
|
@@ -243,6 +253,8 @@ export interface EventDefinition {
|
|
|
243
253
|
id: string;
|
|
244
254
|
name: string;
|
|
245
255
|
description?: string;
|
|
256
|
+
event_count?: number;
|
|
257
|
+
first_seen_at?: string | null;
|
|
246
258
|
}
|
|
247
259
|
export interface SavedQuery {
|
|
248
260
|
id: string;
|
package/dist/client.js
CHANGED
|
@@ -71,8 +71,14 @@ export const updateProject = (id, attrs) => request("PATCH", `/projects/${id}`,
|
|
|
71
71
|
export const deleteProject = (id) => request("DELETE", `/projects/${id}`);
|
|
72
72
|
// API Keys
|
|
73
73
|
export const listApiKeys = (projectId) => request("GET", `/projects/${projectId}/api-keys`);
|
|
74
|
-
export const createApiKey = (projectId, name) => request("POST", `/projects/${projectId}/api-keys`, {
|
|
75
|
-
body: {
|
|
74
|
+
export const createApiKey = (projectId, name, options = {}) => request("POST", `/projects/${projectId}/api-keys`, {
|
|
75
|
+
body: {
|
|
76
|
+
name,
|
|
77
|
+
...(options.environment ? { environment: options.environment } : {}),
|
|
78
|
+
...(options.allowedIdentifiers?.length
|
|
79
|
+
? { allowed_identifiers: options.allowedIdentifiers }
|
|
80
|
+
: {}),
|
|
81
|
+
},
|
|
76
82
|
});
|
|
77
83
|
export const revokeApiKey = (projectId, keyId) => request("DELETE", `/projects/${projectId}/api-keys/${keyId}`);
|
|
78
84
|
// Dashboard
|
|
@@ -82,6 +88,7 @@ export const getDashboardFilters = (projectId) => request("GET", `/projects/${pr
|
|
|
82
88
|
export const listEvents = (projectId, params) => request("GET", `/projects/${projectId}/events`, { params });
|
|
83
89
|
export const listEventTypes = (projectId, params) => request("GET", `/projects/${projectId}/events/types`, { params });
|
|
84
90
|
export const listEventDefinitions = (projectId) => request("GET", `/projects/${projectId}/events/definitions`);
|
|
91
|
+
export const createEventDefinition = (projectId, attrs) => request("POST", `/projects/${projectId}/events/definitions`, { body: attrs });
|
|
85
92
|
// Insights (Saved Queries)
|
|
86
93
|
export const listInsights = (projectId) => request("GET", `/projects/${projectId}/insights`);
|
|
87
94
|
export const getInsight = (projectId, id) => request("GET", `/projects/${projectId}/insights/${id}`);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -6,6 +6,10 @@ import * as auth from "../auth.js";
|
|
|
6
6
|
import * as output from "../output.js";
|
|
7
7
|
import { CliUsageError, isNoInput } from "../runtime.js";
|
|
8
8
|
const CLIENT_NAME = "MostlyGoodMetrics CLI";
|
|
9
|
+
// Bind and redirect to the same IPv4 loopback address. Using `localhost` in
|
|
10
|
+
// the redirect URI can resolve to IPv6 (`::1`) in a browser while the server
|
|
11
|
+
// is listening only on IPv4, leaving the browser unable to deliver the code.
|
|
12
|
+
const CALLBACK_HOST = "127.0.0.1";
|
|
9
13
|
function getAppUrl() {
|
|
10
14
|
const configuredUrl = process.env.MGM_APP_URL ?? "https://app.mostlygoodmetrics.com";
|
|
11
15
|
let appUrl;
|
|
@@ -40,7 +44,7 @@ async function browserLogin(opts = {}) {
|
|
|
40
44
|
const appUrl = getAppUrl();
|
|
41
45
|
// 1. Start a local HTTP server to receive the callback
|
|
42
46
|
const { port, waitForCallback, server } = await startCallbackServer();
|
|
43
|
-
const redirectUri = `http
|
|
47
|
+
const redirectUri = `http://${CALLBACK_HOST}:${port}/callback`;
|
|
44
48
|
// 2. Register as an OAuth client (or reuse cached if same redirect_uri)
|
|
45
49
|
let clientId = auth.getClientId();
|
|
46
50
|
const cachedRedirectUri = auth.getRedirectUri();
|
|
@@ -145,7 +149,7 @@ function startCallbackServer() {
|
|
|
145
149
|
onCallback = res;
|
|
146
150
|
});
|
|
147
151
|
const server = http.createServer((req, res) => {
|
|
148
|
-
const url = new URL(req.url ?? "/", `http
|
|
152
|
+
const url = new URL(req.url ?? "/", `http://${CALLBACK_HOST}`);
|
|
149
153
|
if (url.pathname === "/callback") {
|
|
150
154
|
const code = url.searchParams.get("code") ?? undefined;
|
|
151
155
|
const state = url.searchParams.get("state") ?? undefined;
|
|
@@ -177,13 +181,13 @@ function startCallbackServer() {
|
|
|
177
181
|
});
|
|
178
182
|
// Try fixed port first (so cached client_id works), fall back to random
|
|
179
183
|
server.on("error", () => {
|
|
180
|
-
server.listen(0,
|
|
184
|
+
server.listen(0, CALLBACK_HOST, () => {
|
|
181
185
|
const addr = server.address();
|
|
182
186
|
const port = typeof addr === "object" && addr ? addr.port : 0;
|
|
183
187
|
resolve({ port, waitForCallback: () => callbackPromise, server });
|
|
184
188
|
});
|
|
185
189
|
});
|
|
186
|
-
server.listen(19891,
|
|
190
|
+
server.listen(19891, CALLBACK_HOST, () => {
|
|
187
191
|
resolve({ port: 19891, waitForCallback: () => callbackPromise, server });
|
|
188
192
|
});
|
|
189
193
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|