@norbix.ai/cli 1.0.0 → 1.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.
@@ -7001,18 +7001,18 @@
7001
7001
  "delete.js"
7002
7002
  ]
7003
7003
  },
7004
- "push:integration": {
7004
+ "push:device": {
7005
7005
  "aliases": [],
7006
7006
  "args": {
7007
7007
  "id": {
7008
- "description": "Integration ID",
7008
+ "description": "Device ID",
7009
7009
  "name": "id",
7010
7010
  "required": true
7011
7011
  }
7012
7012
  },
7013
- "description": "Show one push integration",
7013
+ "description": "Show one registered push device, with the user it belongs to",
7014
7014
  "examples": [
7015
- "<%= config.bin %> push integration 66b2f0a1..."
7015
+ "<%= config.bin %> push device pnd_123"
7016
7016
  ],
7017
7017
  "flags": {
7018
7018
  "json": {
@@ -7079,7 +7079,7 @@
7079
7079
  },
7080
7080
  "hasDynamicHelp": false,
7081
7081
  "hiddenAliases": [],
7082
- "id": "push:integration",
7082
+ "id": "push:device",
7083
7083
  "pluginAlias": "@norbix.ai/cli",
7084
7084
  "pluginName": "@norbix.ai/cli",
7085
7085
  "pluginType": "core",
@@ -7090,15 +7090,17 @@
7090
7090
  "dist",
7091
7091
  "commands",
7092
7092
  "push",
7093
- "integration.js"
7093
+ "device.js"
7094
7094
  ]
7095
7095
  },
7096
- "push:integrations": {
7096
+ "push:devices": {
7097
7097
  "aliases": [],
7098
7098
  "args": {},
7099
- "description": "List the push integrations set up for this project",
7099
+ "description": "List the devices registered for push\n\nNarrow the list with --user, --token or --platform. Devices are stored\ninside their user, so a page is a page of users carrying every matching\ndevice they hold — follow hasMore rather than stopping at a short page.",
7100
7100
  "examples": [
7101
- "<%= config.bin %> push integrations --page-size 50"
7101
+ "<%= config.bin %> push devices",
7102
+ "<%= config.bin %> push devices --platform ios",
7103
+ "<%= config.bin %> push devices --user usr_123"
7102
7104
  ],
7103
7105
  "flags": {
7104
7106
  "json": {
@@ -7162,24 +7164,38 @@
7162
7164
  "multiple": false,
7163
7165
  "type": "option"
7164
7166
  },
7165
- "page-size": {
7166
- "description": "Records per page",
7167
- "name": "page-size",
7167
+ "user": {
7168
+ "description": "Only the devices of this user",
7169
+ "name": "user",
7168
7170
  "hasDynamicHelp": false,
7169
7171
  "multiple": false,
7170
7172
  "type": "option"
7171
7173
  },
7172
- "after": {
7173
- "description": "Cursor: fetch the page after this item",
7174
- "name": "after",
7174
+ "token": {
7175
+ "description": "Only the device registered with this provider token",
7176
+ "name": "token",
7177
+ "hasDynamicHelp": false,
7178
+ "multiple": false,
7179
+ "type": "option"
7180
+ },
7181
+ "platform": {
7182
+ "description": "Only devices of this platform",
7183
+ "name": "platform",
7175
7184
  "hasDynamicHelp": false,
7176
7185
  "multiple": false,
7186
+ "options": [
7187
+ "ios",
7188
+ "android",
7189
+ "chrome",
7190
+ "safari",
7191
+ "expo"
7192
+ ],
7177
7193
  "type": "option"
7178
7194
  }
7179
7195
  },
7180
7196
  "hasDynamicHelp": false,
7181
7197
  "hiddenAliases": [],
7182
- "id": "push:integrations",
7198
+ "id": "push:devices",
7183
7199
  "pluginAlias": "@norbix.ai/cli",
7184
7200
  "pluginName": "@norbix.ai/cli",
7185
7201
  "pluginType": "core",
@@ -7190,21 +7206,15 @@
7190
7206
  "dist",
7191
7207
  "commands",
7192
7208
  "push",
7193
- "integrations.js"
7209
+ "devices.js"
7194
7210
  ]
7195
7211
  },
7196
- "push:preview": {
7212
+ "push:disable-dependencies": {
7197
7213
  "aliases": [],
7198
- "args": {
7199
- "hash": {
7200
- "description": "Preview hash from the preview link",
7201
- "name": "hash",
7202
- "required": true
7203
- }
7204
- },
7205
- "description": "Render the title, body and subtitle behind a push preview link\n\nThe hash is the opaque value the backend puts in a preview link — you cannot\nbuild it yourself, so copy it out of the link.",
7214
+ "args": {},
7215
+ "description": "List what still depends on push — check this before `push disable`",
7206
7216
  "examples": [
7207
- "<%= config.bin %> push preview 8f2a91c4..."
7217
+ "<%= config.bin %> push disable-dependencies"
7208
7218
  ],
7209
7219
  "flags": {
7210
7220
  "json": {
@@ -7271,7 +7281,7 @@
7271
7281
  },
7272
7282
  "hasDynamicHelp": false,
7273
7283
  "hiddenAliases": [],
7274
- "id": "push:preview",
7284
+ "id": "push:disable-dependencies",
7275
7285
  "pluginAlias": "@norbix.ai/cli",
7276
7286
  "pluginName": "@norbix.ai/cli",
7277
7287
  "pluginType": "core",
@@ -7282,15 +7292,15 @@
7282
7292
  "dist",
7283
7293
  "commands",
7284
7294
  "push",
7285
- "preview.js"
7295
+ "disable-dependencies.js"
7286
7296
  ]
7287
7297
  },
7288
- "push:settings": {
7298
+ "push:disable": {
7289
7299
  "aliases": [],
7290
7300
  "args": {},
7291
- "description": "Show the project push settings",
7301
+ "description": "Turn off the push module for the project\n\nRun `push disable-dependencies` first to see what still depends on push.",
7292
7302
  "examples": [
7293
- "<%= config.bin %> push settings"
7303
+ "<%= config.bin %> push disable --yes"
7294
7304
  ],
7295
7305
  "flags": {
7296
7306
  "json": {
@@ -7354,17 +7364,17 @@
7354
7364
  "multiple": false,
7355
7365
  "type": "option"
7356
7366
  },
7357
- "id": {
7358
- "description": "Settings ID (defaults to the project settings)",
7359
- "name": "id",
7360
- "hasDynamicHelp": false,
7361
- "multiple": false,
7362
- "type": "option"
7367
+ "yes": {
7368
+ "char": "y",
7369
+ "description": "Skip the confirmation prompt",
7370
+ "name": "yes",
7371
+ "allowNo": false,
7372
+ "type": "boolean"
7363
7373
  }
7364
7374
  },
7365
7375
  "hasDynamicHelp": false,
7366
7376
  "hiddenAliases": [],
7367
- "id": "push:settings",
7377
+ "id": "push:disable",
7368
7378
  "pluginAlias": "@norbix.ai/cli",
7369
7379
  "pluginName": "@norbix.ai/cli",
7370
7380
  "pluginType": "core",
@@ -7375,21 +7385,15 @@
7375
7385
  "dist",
7376
7386
  "commands",
7377
7387
  "push",
7378
- "settings.js"
7388
+ "disable.js"
7379
7389
  ]
7380
7390
  },
7381
- "push:stop": {
7391
+ "push:enable": {
7382
7392
  "aliases": [],
7383
- "args": {
7384
- "id": {
7385
- "description": "Campaign ID",
7386
- "name": "id",
7387
- "required": true
7388
- }
7389
- },
7390
- "description": "Stop a running push campaign",
7393
+ "args": {},
7394
+ "description": "Turn on the push module for the project",
7391
7395
  "examples": [
7392
- "<%= config.bin %> push stop 66b2f0a1... --yes"
7396
+ "<%= config.bin %> push enable"
7393
7397
  ],
7394
7398
  "flags": {
7395
7399
  "json": {
@@ -7452,18 +7456,11 @@
7452
7456
  "hasDynamicHelp": false,
7453
7457
  "multiple": false,
7454
7458
  "type": "option"
7455
- },
7456
- "yes": {
7457
- "char": "y",
7458
- "description": "Skip the confirmation prompt",
7459
- "name": "yes",
7460
- "allowNo": false,
7461
- "type": "boolean"
7462
7459
  }
7463
7460
  },
7464
7461
  "hasDynamicHelp": false,
7465
7462
  "hiddenAliases": [],
7466
- "id": "push:stop",
7463
+ "id": "push:enable",
7467
7464
  "pluginAlias": "@norbix.ai/cli",
7468
7465
  "pluginName": "@norbix.ai/cli",
7469
7466
  "pluginType": "core",
@@ -7474,21 +7471,21 @@
7474
7471
  "dist",
7475
7472
  "commands",
7476
7473
  "push",
7477
- "stop.js"
7474
+ "enable.js"
7478
7475
  ]
7479
7476
  },
7480
- "push:template": {
7477
+ "push:integration": {
7481
7478
  "aliases": [],
7482
7479
  "args": {
7483
7480
  "id": {
7484
- "description": "Template ID",
7481
+ "description": "Integration ID",
7485
7482
  "name": "id",
7486
7483
  "required": true
7487
7484
  }
7488
7485
  },
7489
- "description": "Show one push template",
7486
+ "description": "Show one push integration",
7490
7487
  "examples": [
7491
- "<%= config.bin %> push template 66b2f0a1..."
7488
+ "<%= config.bin %> push integration 66b2f0a1..."
7492
7489
  ],
7493
7490
  "flags": {
7494
7491
  "json": {
@@ -7555,7 +7552,7 @@
7555
7552
  },
7556
7553
  "hasDynamicHelp": false,
7557
7554
  "hiddenAliases": [],
7558
- "id": "push:template",
7555
+ "id": "push:integration",
7559
7556
  "pluginAlias": "@norbix.ai/cli",
7560
7557
  "pluginName": "@norbix.ai/cli",
7561
7558
  "pluginType": "core",
@@ -7566,15 +7563,15 @@
7566
7563
  "dist",
7567
7564
  "commands",
7568
7565
  "push",
7569
- "template.js"
7566
+ "integration.js"
7570
7567
  ]
7571
7568
  },
7572
- "push:templates": {
7569
+ "push:integrations": {
7573
7570
  "aliases": [],
7574
7571
  "args": {},
7575
- "description": "List push notification templates",
7572
+ "description": "List the push integrations set up for this project",
7576
7573
  "examples": [
7577
- "<%= config.bin %> push templates --archived"
7574
+ "<%= config.bin %> push integrations --page-size 50"
7578
7575
  ],
7579
7576
  "flags": {
7580
7577
  "json": {
@@ -7638,16 +7635,24 @@
7638
7635
  "multiple": false,
7639
7636
  "type": "option"
7640
7637
  },
7641
- "archived": {
7642
- "description": "Include archived templates",
7643
- "name": "archived",
7644
- "allowNo": false,
7645
- "type": "boolean"
7638
+ "page-size": {
7639
+ "description": "Records per page",
7640
+ "name": "page-size",
7641
+ "hasDynamicHelp": false,
7642
+ "multiple": false,
7643
+ "type": "option"
7644
+ },
7645
+ "after": {
7646
+ "description": "Cursor: fetch the page after this item",
7647
+ "name": "after",
7648
+ "hasDynamicHelp": false,
7649
+ "multiple": false,
7650
+ "type": "option"
7646
7651
  }
7647
7652
  },
7648
7653
  "hasDynamicHelp": false,
7649
7654
  "hiddenAliases": [],
7650
- "id": "push:templates",
7655
+ "id": "push:integrations",
7651
7656
  "pluginAlias": "@norbix.ai/cli",
7652
7657
  "pluginName": "@norbix.ai/cli",
7653
7658
  "pluginType": "core",
@@ -7658,21 +7663,21 @@
7658
7663
  "dist",
7659
7664
  "commands",
7660
7665
  "push",
7661
- "templates.js"
7666
+ "integrations.js"
7662
7667
  ]
7663
7668
  },
7664
- "push:unarchive": {
7669
+ "push:preview": {
7665
7670
  "aliases": [],
7666
7671
  "args": {
7667
- "id": {
7668
- "description": "Template ID",
7669
- "name": "id",
7672
+ "hash": {
7673
+ "description": "Preview hash from the preview link",
7674
+ "name": "hash",
7670
7675
  "required": true
7671
7676
  }
7672
7677
  },
7673
- "description": "Restore an archived push template",
7678
+ "description": "Render the title, body and subtitle behind a push preview link\n\nThe hash is the opaque value the backend puts in a preview link — you cannot\nbuild it yourself, so copy it out of the link.",
7674
7679
  "examples": [
7675
- "<%= config.bin %> push unarchive 66b2f0a1..."
7680
+ "<%= config.bin %> push preview 8f2a91c4..."
7676
7681
  ],
7677
7682
  "flags": {
7678
7683
  "json": {
@@ -7739,7 +7744,7 @@
7739
7744
  },
7740
7745
  "hasDynamicHelp": false,
7741
7746
  "hiddenAliases": [],
7742
- "id": "push:unarchive",
7747
+ "id": "push:preview",
7743
7748
  "pluginAlias": "@norbix.ai/cli",
7744
7749
  "pluginName": "@norbix.ai/cli",
7745
7750
  "pluginType": "core",
@@ -7750,21 +7755,15 @@
7750
7755
  "dist",
7751
7756
  "commands",
7752
7757
  "push",
7753
- "unarchive.js"
7758
+ "preview.js"
7754
7759
  ]
7755
7760
  },
7756
- "scheduler:delete": {
7761
+ "push:settings": {
7757
7762
  "aliases": [],
7758
- "args": {
7759
- "id": {
7760
- "description": "Task ID",
7761
- "name": "id",
7762
- "required": true
7763
- }
7764
- },
7765
- "description": "Delete a scheduler task",
7763
+ "args": {},
7764
+ "description": "Show the project push settings",
7766
7765
  "examples": [
7767
- "<%= config.bin %> scheduler delete 66b2f0a1... --yes"
7766
+ "<%= config.bin %> push settings"
7768
7767
  ],
7769
7768
  "flags": {
7770
7769
  "json": {
@@ -7828,17 +7827,17 @@
7828
7827
  "multiple": false,
7829
7828
  "type": "option"
7830
7829
  },
7831
- "yes": {
7832
- "char": "y",
7833
- "description": "Skip the confirmation prompt",
7834
- "name": "yes",
7835
- "allowNo": false,
7836
- "type": "boolean"
7830
+ "id": {
7831
+ "description": "Settings ID (defaults to the project settings)",
7832
+ "name": "id",
7833
+ "hasDynamicHelp": false,
7834
+ "multiple": false,
7835
+ "type": "option"
7837
7836
  }
7838
7837
  },
7839
7838
  "hasDynamicHelp": false,
7840
7839
  "hiddenAliases": [],
7841
- "id": "scheduler:delete",
7840
+ "id": "push:settings",
7842
7841
  "pluginAlias": "@norbix.ai/cli",
7843
7842
  "pluginName": "@norbix.ai/cli",
7844
7843
  "pluginType": "core",
@@ -7848,22 +7847,22 @@
7848
7847
  "relativePath": [
7849
7848
  "dist",
7850
7849
  "commands",
7851
- "scheduler",
7852
- "delete.js"
7850
+ "push",
7851
+ "settings.js"
7853
7852
  ]
7854
7853
  },
7855
- "scheduler:disable": {
7854
+ "push:stop": {
7856
7855
  "aliases": [],
7857
7856
  "args": {
7858
7857
  "id": {
7859
- "description": "Task ID",
7858
+ "description": "Campaign ID",
7860
7859
  "name": "id",
7861
7860
  "required": true
7862
7861
  }
7863
7862
  },
7864
- "description": "Disable a scheduler task",
7863
+ "description": "Stop a running push campaign",
7865
7864
  "examples": [
7866
- "<%= config.bin %> scheduler disable 66b2f0a1..."
7865
+ "<%= config.bin %> push stop 66b2f0a1... --yes"
7867
7866
  ],
7868
7867
  "flags": {
7869
7868
  "json": {
@@ -7926,11 +7925,18 @@
7926
7925
  "hasDynamicHelp": false,
7927
7926
  "multiple": false,
7928
7927
  "type": "option"
7928
+ },
7929
+ "yes": {
7930
+ "char": "y",
7931
+ "description": "Skip the confirmation prompt",
7932
+ "name": "yes",
7933
+ "allowNo": false,
7934
+ "type": "boolean"
7929
7935
  }
7930
7936
  },
7931
7937
  "hasDynamicHelp": false,
7932
7938
  "hiddenAliases": [],
7933
- "id": "scheduler:disable",
7939
+ "id": "push:stop",
7934
7940
  "pluginAlias": "@norbix.ai/cli",
7935
7941
  "pluginName": "@norbix.ai/cli",
7936
7942
  "pluginType": "core",
@@ -7940,22 +7946,22 @@
7940
7946
  "relativePath": [
7941
7947
  "dist",
7942
7948
  "commands",
7943
- "scheduler",
7944
- "disable.js"
7949
+ "push",
7950
+ "stop.js"
7945
7951
  ]
7946
7952
  },
7947
- "scheduler:enable": {
7953
+ "push:template": {
7948
7954
  "aliases": [],
7949
7955
  "args": {
7950
7956
  "id": {
7951
- "description": "Task ID",
7957
+ "description": "Template ID",
7952
7958
  "name": "id",
7953
7959
  "required": true
7954
7960
  }
7955
7961
  },
7956
- "description": "Enable a scheduler task",
7962
+ "description": "Show one push template",
7957
7963
  "examples": [
7958
- "<%= config.bin %> scheduler enable 66b2f0a1..."
7964
+ "<%= config.bin %> push template 66b2f0a1..."
7959
7965
  ],
7960
7966
  "flags": {
7961
7967
  "json": {
@@ -8022,7 +8028,7 @@
8022
8028
  },
8023
8029
  "hasDynamicHelp": false,
8024
8030
  "hiddenAliases": [],
8025
- "id": "scheduler:enable",
8031
+ "id": "push:template",
8026
8032
  "pluginAlias": "@norbix.ai/cli",
8027
8033
  "pluginName": "@norbix.ai/cli",
8028
8034
  "pluginType": "core",
@@ -8032,22 +8038,16 @@
8032
8038
  "relativePath": [
8033
8039
  "dist",
8034
8040
  "commands",
8035
- "scheduler",
8036
- "enable.js"
8041
+ "push",
8042
+ "template.js"
8037
8043
  ]
8038
8044
  },
8039
- "scheduler:get": {
8045
+ "push:templates": {
8040
8046
  "aliases": [],
8041
- "args": {
8042
- "id": {
8043
- "description": "Task ID",
8044
- "name": "id",
8045
- "required": true
8046
- }
8047
- },
8048
- "description": "Show one scheduler task",
8047
+ "args": {},
8048
+ "description": "List push notification templates",
8049
8049
  "examples": [
8050
- "<%= config.bin %> scheduler get 66b2f0a1..."
8050
+ "<%= config.bin %> push templates --archived"
8051
8051
  ],
8052
8052
  "flags": {
8053
8053
  "json": {
@@ -8110,11 +8110,17 @@
8110
8110
  "hasDynamicHelp": false,
8111
8111
  "multiple": false,
8112
8112
  "type": "option"
8113
+ },
8114
+ "archived": {
8115
+ "description": "Include archived templates",
8116
+ "name": "archived",
8117
+ "allowNo": false,
8118
+ "type": "boolean"
8113
8119
  }
8114
8120
  },
8115
8121
  "hasDynamicHelp": false,
8116
8122
  "hiddenAliases": [],
8117
- "id": "scheduler:get",
8123
+ "id": "push:templates",
8118
8124
  "pluginAlias": "@norbix.ai/cli",
8119
8125
  "pluginName": "@norbix.ai/cli",
8120
8126
  "pluginType": "core",
@@ -8124,16 +8130,22 @@
8124
8130
  "relativePath": [
8125
8131
  "dist",
8126
8132
  "commands",
8127
- "scheduler",
8128
- "get.js"
8133
+ "push",
8134
+ "templates.js"
8129
8135
  ]
8130
8136
  },
8131
- "scheduler:list": {
8137
+ "push:unarchive": {
8132
8138
  "aliases": [],
8133
- "args": {},
8134
- "description": "List scheduler tasks",
8139
+ "args": {
8140
+ "id": {
8141
+ "description": "Template ID",
8142
+ "name": "id",
8143
+ "required": true
8144
+ }
8145
+ },
8146
+ "description": "Restore an archived push template",
8135
8147
  "examples": [
8136
- "<%= config.bin %> scheduler list"
8148
+ "<%= config.bin %> push unarchive 66b2f0a1..."
8137
8149
  ],
8138
8150
  "flags": {
8139
8151
  "json": {
@@ -8196,25 +8208,11 @@
8196
8208
  "hasDynamicHelp": false,
8197
8209
  "multiple": false,
8198
8210
  "type": "option"
8199
- },
8200
- "page-size": {
8201
- "description": "Records per page",
8202
- "name": "page-size",
8203
- "hasDynamicHelp": false,
8204
- "multiple": false,
8205
- "type": "option"
8206
- },
8207
- "after": {
8208
- "description": "Cursor: fetch the page after this item",
8209
- "name": "after",
8210
- "hasDynamicHelp": false,
8211
- "multiple": false,
8212
- "type": "option"
8213
8211
  }
8214
8212
  },
8215
8213
  "hasDynamicHelp": false,
8216
8214
  "hiddenAliases": [],
8217
- "id": "scheduler:list",
8215
+ "id": "push:unarchive",
8218
8216
  "pluginAlias": "@norbix.ai/cli",
8219
8217
  "pluginName": "@norbix.ai/cli",
8220
8218
  "pluginType": "core",
@@ -8224,8 +8222,8 @@
8224
8222
  "relativePath": [
8225
8223
  "dist",
8226
8224
  "commands",
8227
- "scheduler",
8228
- "list.js"
8225
+ "push",
8226
+ "unarchive.js"
8229
8227
  ]
8230
8228
  },
8231
8229
  "sms:archive": {
@@ -9084,18 +9082,18 @@
9084
9082
  "unarchive.js"
9085
9083
  ]
9086
9084
  },
9087
- "webhooks:disable": {
9085
+ "users:block": {
9088
9086
  "aliases": [],
9089
9087
  "args": {
9090
- "destinationId": {
9091
- "description": "Destination ID",
9092
- "name": "destinationId",
9088
+ "id": {
9089
+ "description": "User ID",
9090
+ "name": "id",
9093
9091
  "required": true
9094
9092
  }
9095
9093
  },
9096
- "description": "Disable a webhook destination",
9094
+ "description": "Block a user (they can no longer log in)",
9097
9095
  "examples": [
9098
- "<%= config.bin %> webhooks disable 66b2f0a1..."
9096
+ "<%= config.bin %> users block 66b2f0a1..."
9099
9097
  ],
9100
9098
  "flags": {
9101
9099
  "json": {
@@ -9162,7 +9160,7 @@
9162
9160
  },
9163
9161
  "hasDynamicHelp": false,
9164
9162
  "hiddenAliases": [],
9165
- "id": "webhooks:disable",
9163
+ "id": "users:block",
9166
9164
  "pluginAlias": "@norbix.ai/cli",
9167
9165
  "pluginName": "@norbix.ai/cli",
9168
9166
  "pluginType": "core",
@@ -9172,22 +9170,22 @@
9172
9170
  "relativePath": [
9173
9171
  "dist",
9174
9172
  "commands",
9175
- "webhooks",
9176
- "disable.js"
9173
+ "users",
9174
+ "block.js"
9177
9175
  ]
9178
9176
  },
9179
- "webhooks:enable": {
9177
+ "users:delete": {
9180
9178
  "aliases": [],
9181
9179
  "args": {
9182
- "destinationId": {
9183
- "description": "Destination ID",
9184
- "name": "destinationId",
9180
+ "id": {
9181
+ "description": "User ID",
9182
+ "name": "id",
9185
9183
  "required": true
9186
9184
  }
9187
9185
  },
9188
- "description": "Enable a webhook destination",
9186
+ "description": "Delete a user",
9189
9187
  "examples": [
9190
- "<%= config.bin %> webhooks enable 66b2f0a1..."
9188
+ "<%= config.bin %> users delete 66b2f0a1... --yes"
9191
9189
  ],
9192
9190
  "flags": {
9193
9191
  "json": {
@@ -9250,11 +9248,18 @@
9250
9248
  "hasDynamicHelp": false,
9251
9249
  "multiple": false,
9252
9250
  "type": "option"
9251
+ },
9252
+ "yes": {
9253
+ "char": "y",
9254
+ "description": "Skip the confirmation prompt",
9255
+ "name": "yes",
9256
+ "allowNo": false,
9257
+ "type": "boolean"
9253
9258
  }
9254
9259
  },
9255
9260
  "hasDynamicHelp": false,
9256
9261
  "hiddenAliases": [],
9257
- "id": "webhooks:enable",
9262
+ "id": "users:delete",
9258
9263
  "pluginAlias": "@norbix.ai/cli",
9259
9264
  "pluginName": "@norbix.ai/cli",
9260
9265
  "pluginType": "core",
@@ -9264,22 +9269,22 @@
9264
9269
  "relativePath": [
9265
9270
  "dist",
9266
9271
  "commands",
9267
- "webhooks",
9268
- "enable.js"
9272
+ "users",
9273
+ "delete.js"
9269
9274
  ]
9270
9275
  },
9271
- "webhooks:remove": {
9276
+ "users:get": {
9272
9277
  "aliases": [],
9273
9278
  "args": {
9274
- "destinationId": {
9275
- "description": "Destination ID",
9276
- "name": "destinationId",
9279
+ "id": {
9280
+ "description": "User ID",
9281
+ "name": "id",
9277
9282
  "required": true
9278
9283
  }
9279
9284
  },
9280
- "description": "Remove a webhook destination",
9285
+ "description": "Show one user",
9281
9286
  "examples": [
9282
- "<%= config.bin %> webhooks remove 66b2f0a1... --yes"
9287
+ "<%= config.bin %> users get 66b2f0a1..."
9283
9288
  ],
9284
9289
  "flags": {
9285
9290
  "json": {
@@ -9342,18 +9347,11 @@
9342
9347
  "hasDynamicHelp": false,
9343
9348
  "multiple": false,
9344
9349
  "type": "option"
9345
- },
9346
- "yes": {
9347
- "char": "y",
9348
- "description": "Skip the confirmation prompt",
9349
- "name": "yes",
9350
- "allowNo": false,
9351
- "type": "boolean"
9352
9350
  }
9353
9351
  },
9354
9352
  "hasDynamicHelp": false,
9355
9353
  "hiddenAliases": [],
9356
- "id": "webhooks:remove",
9354
+ "id": "users:get",
9357
9355
  "pluginAlias": "@norbix.ai/cli",
9358
9356
  "pluginName": "@norbix.ai/cli",
9359
9357
  "pluginType": "core",
@@ -9363,17 +9361,22 @@
9363
9361
  "relativePath": [
9364
9362
  "dist",
9365
9363
  "commands",
9366
- "webhooks",
9367
- "remove.js"
9364
+ "users",
9365
+ "get.js"
9368
9366
  ]
9369
9367
  },
9370
- "webhooks:secret": {
9368
+ "users:invite": {
9371
9369
  "aliases": [],
9372
- "args": {},
9373
- "description": "Reveal the webhook signing secret, or rotate it with --rotate",
9370
+ "args": {
9371
+ "email": {
9372
+ "description": "Email address to invite",
9373
+ "name": "email",
9374
+ "required": true
9375
+ }
9376
+ },
9377
+ "description": "Invite a user by email",
9374
9378
  "examples": [
9375
- "<%= config.bin %> webhooks secret",
9376
- "<%= config.bin %> webhooks secret --rotate --yes"
9379
+ "<%= config.bin %> users invite alice@example.com"
9377
9380
  ],
9378
9381
  "flags": {
9379
9382
  "json": {
@@ -9436,24 +9439,11 @@
9436
9439
  "hasDynamicHelp": false,
9437
9440
  "multiple": false,
9438
9441
  "type": "option"
9439
- },
9440
- "rotate": {
9441
- "description": "Rotate the secret (old secret stops working)",
9442
- "name": "rotate",
9443
- "allowNo": false,
9444
- "type": "boolean"
9445
- },
9446
- "yes": {
9447
- "char": "y",
9448
- "description": "Skip the confirmation prompt",
9449
- "name": "yes",
9450
- "allowNo": false,
9451
- "type": "boolean"
9452
9442
  }
9453
9443
  },
9454
9444
  "hasDynamicHelp": false,
9455
9445
  "hiddenAliases": [],
9456
- "id": "webhooks:secret",
9446
+ "id": "users:invite",
9457
9447
  "pluginAlias": "@norbix.ai/cli",
9458
9448
  "pluginName": "@norbix.ai/cli",
9459
9449
  "pluginType": "core",
@@ -9463,16 +9453,17 @@
9463
9453
  "relativePath": [
9464
9454
  "dist",
9465
9455
  "commands",
9466
- "webhooks",
9467
- "secret.js"
9456
+ "users",
9457
+ "invite.js"
9468
9458
  ]
9469
9459
  },
9470
- "webhooks:show": {
9460
+ "users:list": {
9471
9461
  "aliases": [],
9472
9462
  "args": {},
9473
- "description": "Show the project's webhook integration (destinations, settings)",
9463
+ "description": "List project users",
9474
9464
  "examples": [
9475
- "<%= config.bin %> webhooks show"
9465
+ "<%= config.bin %> users list",
9466
+ "<%= config.bin %> users list --role admin --page-size 100"
9476
9467
  ],
9477
9468
  "flags": {
9478
9469
  "json": {
@@ -9535,11 +9526,38 @@
9535
9526
  "hasDynamicHelp": false,
9536
9527
  "multiple": false,
9537
9528
  "type": "option"
9529
+ },
9530
+ "role": {
9531
+ "description": "Only users with this role (repeatable)",
9532
+ "name": "role",
9533
+ "hasDynamicHelp": false,
9534
+ "multiple": true,
9535
+ "type": "option"
9536
+ },
9537
+ "permissions": {
9538
+ "description": "Include permissions in the output",
9539
+ "name": "permissions",
9540
+ "allowNo": false,
9541
+ "type": "boolean"
9542
+ },
9543
+ "page-size": {
9544
+ "description": "Records per page",
9545
+ "name": "page-size",
9546
+ "hasDynamicHelp": false,
9547
+ "multiple": false,
9548
+ "type": "option"
9549
+ },
9550
+ "after": {
9551
+ "description": "Cursor: fetch the page after this item",
9552
+ "name": "after",
9553
+ "hasDynamicHelp": false,
9554
+ "multiple": false,
9555
+ "type": "option"
9538
9556
  }
9539
9557
  },
9540
9558
  "hasDynamicHelp": false,
9541
9559
  "hiddenAliases": [],
9542
- "id": "webhooks:show",
9560
+ "id": "users:list",
9543
9561
  "pluginAlias": "@norbix.ai/cli",
9544
9562
  "pluginName": "@norbix.ai/cli",
9545
9563
  "pluginType": "core",
@@ -9549,22 +9567,16 @@
9549
9567
  "relativePath": [
9550
9568
  "dist",
9551
9569
  "commands",
9552
- "webhooks",
9553
- "show.js"
9570
+ "users",
9571
+ "list.js"
9554
9572
  ]
9555
9573
  },
9556
- "users:block": {
9574
+ "users:policies": {
9557
9575
  "aliases": [],
9558
- "args": {
9559
- "id": {
9560
- "description": "User ID",
9561
- "name": "id",
9562
- "required": true
9563
- }
9564
- },
9565
- "description": "Block a user (they can no longer log in)",
9576
+ "args": {},
9577
+ "description": "List membership policies",
9566
9578
  "examples": [
9567
- "<%= config.bin %> users block 66b2f0a1..."
9579
+ "<%= config.bin %> users policies"
9568
9580
  ],
9569
9581
  "flags": {
9570
9582
  "json": {
@@ -9631,7 +9643,7 @@
9631
9643
  },
9632
9644
  "hasDynamicHelp": false,
9633
9645
  "hiddenAliases": [],
9634
- "id": "users:block",
9646
+ "id": "users:policies",
9635
9647
  "pluginAlias": "@norbix.ai/cli",
9636
9648
  "pluginName": "@norbix.ai/cli",
9637
9649
  "pluginType": "core",
@@ -9642,21 +9654,15 @@
9642
9654
  "dist",
9643
9655
  "commands",
9644
9656
  "users",
9645
- "block.js"
9657
+ "policies.js"
9646
9658
  ]
9647
9659
  },
9648
- "users:delete": {
9660
+ "users:roles": {
9649
9661
  "aliases": [],
9650
- "args": {
9651
- "id": {
9652
- "description": "User ID",
9653
- "name": "id",
9654
- "required": true
9655
- }
9656
- },
9657
- "description": "Delete a user",
9662
+ "args": {},
9663
+ "description": "List membership roles",
9658
9664
  "examples": [
9659
- "<%= config.bin %> users delete 66b2f0a1... --yes"
9665
+ "<%= config.bin %> users roles"
9660
9666
  ],
9661
9667
  "flags": {
9662
9668
  "json": {
@@ -9719,18 +9725,11 @@
9719
9725
  "hasDynamicHelp": false,
9720
9726
  "multiple": false,
9721
9727
  "type": "option"
9722
- },
9723
- "yes": {
9724
- "char": "y",
9725
- "description": "Skip the confirmation prompt",
9726
- "name": "yes",
9727
- "allowNo": false,
9728
- "type": "boolean"
9729
9728
  }
9730
9729
  },
9731
9730
  "hasDynamicHelp": false,
9732
9731
  "hiddenAliases": [],
9733
- "id": "users:delete",
9732
+ "id": "users:roles",
9734
9733
  "pluginAlias": "@norbix.ai/cli",
9735
9734
  "pluginName": "@norbix.ai/cli",
9736
9735
  "pluginType": "core",
@@ -9741,10 +9740,10 @@
9741
9740
  "dist",
9742
9741
  "commands",
9743
9742
  "users",
9744
- "delete.js"
9743
+ "roles.js"
9745
9744
  ]
9746
9745
  },
9747
- "users:get": {
9746
+ "users:unblock": {
9748
9747
  "aliases": [],
9749
9748
  "args": {
9750
9749
  "id": {
@@ -9753,9 +9752,9 @@
9753
9752
  "required": true
9754
9753
  }
9755
9754
  },
9756
- "description": "Show one user",
9755
+ "description": "Unblock a user",
9757
9756
  "examples": [
9758
- "<%= config.bin %> users get 66b2f0a1..."
9757
+ "<%= config.bin %> users unblock 66b2f0a1..."
9759
9758
  ],
9760
9759
  "flags": {
9761
9760
  "json": {
@@ -9822,7 +9821,7 @@
9822
9821
  },
9823
9822
  "hasDynamicHelp": false,
9824
9823
  "hiddenAliases": [],
9825
- "id": "users:get",
9824
+ "id": "users:unblock",
9826
9825
  "pluginAlias": "@norbix.ai/cli",
9827
9826
  "pluginName": "@norbix.ai/cli",
9828
9827
  "pluginType": "core",
@@ -9833,21 +9832,21 @@
9833
9832
  "dist",
9834
9833
  "commands",
9835
9834
  "users",
9836
- "get.js"
9835
+ "unblock.js"
9837
9836
  ]
9838
9837
  },
9839
- "users:invite": {
9838
+ "webhooks:disable": {
9840
9839
  "aliases": [],
9841
9840
  "args": {
9842
- "email": {
9843
- "description": "Email address to invite",
9844
- "name": "email",
9841
+ "destinationId": {
9842
+ "description": "Destination ID",
9843
+ "name": "destinationId",
9845
9844
  "required": true
9846
9845
  }
9847
9846
  },
9848
- "description": "Invite a user by email",
9847
+ "description": "Disable a webhook destination",
9849
9848
  "examples": [
9850
- "<%= config.bin %> users invite alice@example.com"
9849
+ "<%= config.bin %> webhooks disable 66b2f0a1..."
9851
9850
  ],
9852
9851
  "flags": {
9853
9852
  "json": {
@@ -9914,7 +9913,7 @@
9914
9913
  },
9915
9914
  "hasDynamicHelp": false,
9916
9915
  "hiddenAliases": [],
9917
- "id": "users:invite",
9916
+ "id": "webhooks:disable",
9918
9917
  "pluginAlias": "@norbix.ai/cli",
9919
9918
  "pluginName": "@norbix.ai/cli",
9920
9919
  "pluginType": "core",
@@ -9924,17 +9923,22 @@
9924
9923
  "relativePath": [
9925
9924
  "dist",
9926
9925
  "commands",
9927
- "users",
9928
- "invite.js"
9926
+ "webhooks",
9927
+ "disable.js"
9929
9928
  ]
9930
9929
  },
9931
- "users:list": {
9930
+ "webhooks:enable": {
9932
9931
  "aliases": [],
9933
- "args": {},
9934
- "description": "List project users",
9932
+ "args": {
9933
+ "destinationId": {
9934
+ "description": "Destination ID",
9935
+ "name": "destinationId",
9936
+ "required": true
9937
+ }
9938
+ },
9939
+ "description": "Enable a webhook destination",
9935
9940
  "examples": [
9936
- "<%= config.bin %> users list",
9937
- "<%= config.bin %> users list --role admin --page-size 100"
9941
+ "<%= config.bin %> webhooks enable 66b2f0a1..."
9938
9942
  ],
9939
9943
  "flags": {
9940
9944
  "json": {
@@ -9997,29 +10001,1138 @@
9997
10001
  "hasDynamicHelp": false,
9998
10002
  "multiple": false,
9999
10003
  "type": "option"
10000
- },
10001
- "role": {
10002
- "description": "Only users with this role (repeatable)",
10003
- "name": "role",
10004
- "hasDynamicHelp": false,
10005
- "multiple": true,
10006
- "type": "option"
10007
- },
10008
- "permissions": {
10009
- "description": "Include permissions in the output",
10010
- "name": "permissions",
10011
- "allowNo": false,
10012
- "type": "boolean"
10013
- },
10014
- "page-size": {
10015
- "description": "Records per page",
10016
- "name": "page-size",
10017
- "hasDynamicHelp": false,
10018
- "multiple": false,
10019
- "type": "option"
10020
- },
10021
- "after": {
10022
- "description": "Cursor: fetch the page after this item",
10004
+ }
10005
+ },
10006
+ "hasDynamicHelp": false,
10007
+ "hiddenAliases": [],
10008
+ "id": "webhooks:enable",
10009
+ "pluginAlias": "@norbix.ai/cli",
10010
+ "pluginName": "@norbix.ai/cli",
10011
+ "pluginType": "core",
10012
+ "strict": true,
10013
+ "enableJsonFlag": true,
10014
+ "isESM": true,
10015
+ "relativePath": [
10016
+ "dist",
10017
+ "commands",
10018
+ "webhooks",
10019
+ "enable.js"
10020
+ ]
10021
+ },
10022
+ "webhooks:remove": {
10023
+ "aliases": [],
10024
+ "args": {
10025
+ "destinationId": {
10026
+ "description": "Destination ID",
10027
+ "name": "destinationId",
10028
+ "required": true
10029
+ }
10030
+ },
10031
+ "description": "Remove a webhook destination",
10032
+ "examples": [
10033
+ "<%= config.bin %> webhooks remove 66b2f0a1... --yes"
10034
+ ],
10035
+ "flags": {
10036
+ "json": {
10037
+ "description": "Format output as json.",
10038
+ "helpGroup": "GLOBAL",
10039
+ "name": "json",
10040
+ "allowNo": false,
10041
+ "type": "boolean"
10042
+ },
10043
+ "project": {
10044
+ "description": "Project ID",
10045
+ "env": "NORBIX_PROJECT_ID",
10046
+ "helpGroup": "GLOBAL",
10047
+ "name": "project",
10048
+ "hasDynamicHelp": false,
10049
+ "multiple": false,
10050
+ "type": "option"
10051
+ },
10052
+ "env": {
10053
+ "description": "Project environment (e.g. PROD, TEST)",
10054
+ "env": "NORBIX_ENV",
10055
+ "helpGroup": "GLOBAL",
10056
+ "name": "env",
10057
+ "hasDynamicHelp": false,
10058
+ "multiple": false,
10059
+ "type": "option"
10060
+ },
10061
+ "region": {
10062
+ "description": "Region code (e.g. nb-eu-germany)",
10063
+ "env": "NORBIX_REGION",
10064
+ "helpGroup": "GLOBAL",
10065
+ "name": "region",
10066
+ "hasDynamicHelp": false,
10067
+ "multiple": false,
10068
+ "type": "option"
10069
+ },
10070
+ "api-key": {
10071
+ "description": "API key (overrides profile and session)",
10072
+ "env": "NORBIX_API_KEY",
10073
+ "helpGroup": "GLOBAL",
10074
+ "name": "api-key",
10075
+ "hasDynamicHelp": false,
10076
+ "multiple": false,
10077
+ "type": "option"
10078
+ },
10079
+ "account": {
10080
+ "description": "Account ID (needed for account-scoped hub endpoints)",
10081
+ "env": "NORBIX_ACCOUNT_ID",
10082
+ "helpGroup": "GLOBAL",
10083
+ "name": "account",
10084
+ "hasDynamicHelp": false,
10085
+ "multiple": false,
10086
+ "type": "option"
10087
+ },
10088
+ "profile": {
10089
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
10090
+ "env": "NORBIX_PROFILE",
10091
+ "helpGroup": "GLOBAL",
10092
+ "name": "profile",
10093
+ "hasDynamicHelp": false,
10094
+ "multiple": false,
10095
+ "type": "option"
10096
+ },
10097
+ "yes": {
10098
+ "char": "y",
10099
+ "description": "Skip the confirmation prompt",
10100
+ "name": "yes",
10101
+ "allowNo": false,
10102
+ "type": "boolean"
10103
+ }
10104
+ },
10105
+ "hasDynamicHelp": false,
10106
+ "hiddenAliases": [],
10107
+ "id": "webhooks:remove",
10108
+ "pluginAlias": "@norbix.ai/cli",
10109
+ "pluginName": "@norbix.ai/cli",
10110
+ "pluginType": "core",
10111
+ "strict": true,
10112
+ "enableJsonFlag": true,
10113
+ "isESM": true,
10114
+ "relativePath": [
10115
+ "dist",
10116
+ "commands",
10117
+ "webhooks",
10118
+ "remove.js"
10119
+ ]
10120
+ },
10121
+ "webhooks:secret": {
10122
+ "aliases": [],
10123
+ "args": {},
10124
+ "description": "Reveal the webhook signing secret, or rotate it with --rotate",
10125
+ "examples": [
10126
+ "<%= config.bin %> webhooks secret",
10127
+ "<%= config.bin %> webhooks secret --rotate --yes"
10128
+ ],
10129
+ "flags": {
10130
+ "json": {
10131
+ "description": "Format output as json.",
10132
+ "helpGroup": "GLOBAL",
10133
+ "name": "json",
10134
+ "allowNo": false,
10135
+ "type": "boolean"
10136
+ },
10137
+ "project": {
10138
+ "description": "Project ID",
10139
+ "env": "NORBIX_PROJECT_ID",
10140
+ "helpGroup": "GLOBAL",
10141
+ "name": "project",
10142
+ "hasDynamicHelp": false,
10143
+ "multiple": false,
10144
+ "type": "option"
10145
+ },
10146
+ "env": {
10147
+ "description": "Project environment (e.g. PROD, TEST)",
10148
+ "env": "NORBIX_ENV",
10149
+ "helpGroup": "GLOBAL",
10150
+ "name": "env",
10151
+ "hasDynamicHelp": false,
10152
+ "multiple": false,
10153
+ "type": "option"
10154
+ },
10155
+ "region": {
10156
+ "description": "Region code (e.g. nb-eu-germany)",
10157
+ "env": "NORBIX_REGION",
10158
+ "helpGroup": "GLOBAL",
10159
+ "name": "region",
10160
+ "hasDynamicHelp": false,
10161
+ "multiple": false,
10162
+ "type": "option"
10163
+ },
10164
+ "api-key": {
10165
+ "description": "API key (overrides profile and session)",
10166
+ "env": "NORBIX_API_KEY",
10167
+ "helpGroup": "GLOBAL",
10168
+ "name": "api-key",
10169
+ "hasDynamicHelp": false,
10170
+ "multiple": false,
10171
+ "type": "option"
10172
+ },
10173
+ "account": {
10174
+ "description": "Account ID (needed for account-scoped hub endpoints)",
10175
+ "env": "NORBIX_ACCOUNT_ID",
10176
+ "helpGroup": "GLOBAL",
10177
+ "name": "account",
10178
+ "hasDynamicHelp": false,
10179
+ "multiple": false,
10180
+ "type": "option"
10181
+ },
10182
+ "profile": {
10183
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
10184
+ "env": "NORBIX_PROFILE",
10185
+ "helpGroup": "GLOBAL",
10186
+ "name": "profile",
10187
+ "hasDynamicHelp": false,
10188
+ "multiple": false,
10189
+ "type": "option"
10190
+ },
10191
+ "rotate": {
10192
+ "description": "Rotate the secret (old secret stops working)",
10193
+ "name": "rotate",
10194
+ "allowNo": false,
10195
+ "type": "boolean"
10196
+ },
10197
+ "yes": {
10198
+ "char": "y",
10199
+ "description": "Skip the confirmation prompt",
10200
+ "name": "yes",
10201
+ "allowNo": false,
10202
+ "type": "boolean"
10203
+ }
10204
+ },
10205
+ "hasDynamicHelp": false,
10206
+ "hiddenAliases": [],
10207
+ "id": "webhooks:secret",
10208
+ "pluginAlias": "@norbix.ai/cli",
10209
+ "pluginName": "@norbix.ai/cli",
10210
+ "pluginType": "core",
10211
+ "strict": true,
10212
+ "enableJsonFlag": true,
10213
+ "isESM": true,
10214
+ "relativePath": [
10215
+ "dist",
10216
+ "commands",
10217
+ "webhooks",
10218
+ "secret.js"
10219
+ ]
10220
+ },
10221
+ "webhooks:show": {
10222
+ "aliases": [],
10223
+ "args": {},
10224
+ "description": "Show the project's webhook integration (destinations, settings)",
10225
+ "examples": [
10226
+ "<%= config.bin %> webhooks show"
10227
+ ],
10228
+ "flags": {
10229
+ "json": {
10230
+ "description": "Format output as json.",
10231
+ "helpGroup": "GLOBAL",
10232
+ "name": "json",
10233
+ "allowNo": false,
10234
+ "type": "boolean"
10235
+ },
10236
+ "project": {
10237
+ "description": "Project ID",
10238
+ "env": "NORBIX_PROJECT_ID",
10239
+ "helpGroup": "GLOBAL",
10240
+ "name": "project",
10241
+ "hasDynamicHelp": false,
10242
+ "multiple": false,
10243
+ "type": "option"
10244
+ },
10245
+ "env": {
10246
+ "description": "Project environment (e.g. PROD, TEST)",
10247
+ "env": "NORBIX_ENV",
10248
+ "helpGroup": "GLOBAL",
10249
+ "name": "env",
10250
+ "hasDynamicHelp": false,
10251
+ "multiple": false,
10252
+ "type": "option"
10253
+ },
10254
+ "region": {
10255
+ "description": "Region code (e.g. nb-eu-germany)",
10256
+ "env": "NORBIX_REGION",
10257
+ "helpGroup": "GLOBAL",
10258
+ "name": "region",
10259
+ "hasDynamicHelp": false,
10260
+ "multiple": false,
10261
+ "type": "option"
10262
+ },
10263
+ "api-key": {
10264
+ "description": "API key (overrides profile and session)",
10265
+ "env": "NORBIX_API_KEY",
10266
+ "helpGroup": "GLOBAL",
10267
+ "name": "api-key",
10268
+ "hasDynamicHelp": false,
10269
+ "multiple": false,
10270
+ "type": "option"
10271
+ },
10272
+ "account": {
10273
+ "description": "Account ID (needed for account-scoped hub endpoints)",
10274
+ "env": "NORBIX_ACCOUNT_ID",
10275
+ "helpGroup": "GLOBAL",
10276
+ "name": "account",
10277
+ "hasDynamicHelp": false,
10278
+ "multiple": false,
10279
+ "type": "option"
10280
+ },
10281
+ "profile": {
10282
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
10283
+ "env": "NORBIX_PROFILE",
10284
+ "helpGroup": "GLOBAL",
10285
+ "name": "profile",
10286
+ "hasDynamicHelp": false,
10287
+ "multiple": false,
10288
+ "type": "option"
10289
+ }
10290
+ },
10291
+ "hasDynamicHelp": false,
10292
+ "hiddenAliases": [],
10293
+ "id": "webhooks:show",
10294
+ "pluginAlias": "@norbix.ai/cli",
10295
+ "pluginName": "@norbix.ai/cli",
10296
+ "pluginType": "core",
10297
+ "strict": true,
10298
+ "enableJsonFlag": true,
10299
+ "isESM": true,
10300
+ "relativePath": [
10301
+ "dist",
10302
+ "commands",
10303
+ "webhooks",
10304
+ "show.js"
10305
+ ]
10306
+ },
10307
+ "files:integrations:test": {
10308
+ "aliases": [],
10309
+ "args": {
10310
+ "id": {
10311
+ "description": "Files integration ID",
10312
+ "name": "id",
10313
+ "required": true
10314
+ }
10315
+ },
10316
+ "description": "Check that a files integration really works\n\nRuns a live probe against the storage: uploads a small file, reads it, lists\nits folder and deletes it again. Prints one line per step — OK, FAILED or\nNOT_TESTED (skipped because an earlier step failed) — with the errors of a\nfailed step. Exits non-zero unless every step is OK.\n\nNeeds the files:create permission, because the probe writes to the storage.",
10317
+ "examples": [
10318
+ "<%= config.bin %> files integrations test 55555555-5555-5555-5555-555555555555",
10319
+ "<%= config.bin %> files integrations test 55555555-5555-5555-5555-555555555555 --json"
10320
+ ],
10321
+ "flags": {
10322
+ "json": {
10323
+ "description": "Format output as json.",
10324
+ "helpGroup": "GLOBAL",
10325
+ "name": "json",
10326
+ "allowNo": false,
10327
+ "type": "boolean"
10328
+ },
10329
+ "project": {
10330
+ "description": "Project ID",
10331
+ "env": "NORBIX_PROJECT_ID",
10332
+ "helpGroup": "GLOBAL",
10333
+ "name": "project",
10334
+ "hasDynamicHelp": false,
10335
+ "multiple": false,
10336
+ "type": "option"
10337
+ },
10338
+ "env": {
10339
+ "description": "Project environment (e.g. PROD, TEST)",
10340
+ "env": "NORBIX_ENV",
10341
+ "helpGroup": "GLOBAL",
10342
+ "name": "env",
10343
+ "hasDynamicHelp": false,
10344
+ "multiple": false,
10345
+ "type": "option"
10346
+ },
10347
+ "region": {
10348
+ "description": "Region code (e.g. nb-eu-germany)",
10349
+ "env": "NORBIX_REGION",
10350
+ "helpGroup": "GLOBAL",
10351
+ "name": "region",
10352
+ "hasDynamicHelp": false,
10353
+ "multiple": false,
10354
+ "type": "option"
10355
+ },
10356
+ "api-key": {
10357
+ "description": "API key (overrides profile and session)",
10358
+ "env": "NORBIX_API_KEY",
10359
+ "helpGroup": "GLOBAL",
10360
+ "name": "api-key",
10361
+ "hasDynamicHelp": false,
10362
+ "multiple": false,
10363
+ "type": "option"
10364
+ },
10365
+ "account": {
10366
+ "description": "Account ID (needed for account-scoped hub endpoints)",
10367
+ "env": "NORBIX_ACCOUNT_ID",
10368
+ "helpGroup": "GLOBAL",
10369
+ "name": "account",
10370
+ "hasDynamicHelp": false,
10371
+ "multiple": false,
10372
+ "type": "option"
10373
+ },
10374
+ "profile": {
10375
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
10376
+ "env": "NORBIX_PROFILE",
10377
+ "helpGroup": "GLOBAL",
10378
+ "name": "profile",
10379
+ "hasDynamicHelp": false,
10380
+ "multiple": false,
10381
+ "type": "option"
10382
+ }
10383
+ },
10384
+ "hasDynamicHelp": false,
10385
+ "hiddenAliases": [],
10386
+ "id": "files:integrations:test",
10387
+ "pluginAlias": "@norbix.ai/cli",
10388
+ "pluginName": "@norbix.ai/cli",
10389
+ "pluginType": "core",
10390
+ "strict": true,
10391
+ "enableJsonFlag": true,
10392
+ "isESM": true,
10393
+ "relativePath": [
10394
+ "dist",
10395
+ "commands",
10396
+ "files",
10397
+ "integrations",
10398
+ "test.js"
10399
+ ]
10400
+ },
10401
+ "push:campaign:batch": {
10402
+ "aliases": [],
10403
+ "args": {
10404
+ "id": {
10405
+ "description": "Campaign ID",
10406
+ "name": "id",
10407
+ "required": true
10408
+ },
10409
+ "batchId": {
10410
+ "description": "Batch ID (from `push campaign batches`)",
10411
+ "name": "batchId",
10412
+ "required": true
10413
+ },
10414
+ "notificationId": {
10415
+ "description": "Notification ID",
10416
+ "name": "notificationId"
10417
+ }
10418
+ },
10419
+ "description": "List the notifications in one batch — or show one of them\n\nGive a notification ID as the third argument to see just that notification.",
10420
+ "examples": [
10421
+ "<%= config.bin %> push campaign batch 66b2f0a1... b7c3...",
10422
+ "<%= config.bin %> push campaign batch 66b2f0a1... b7c3... n9d4..."
10423
+ ],
10424
+ "flags": {
10425
+ "json": {
10426
+ "description": "Format output as json.",
10427
+ "helpGroup": "GLOBAL",
10428
+ "name": "json",
10429
+ "allowNo": false,
10430
+ "type": "boolean"
10431
+ },
10432
+ "project": {
10433
+ "description": "Project ID",
10434
+ "env": "NORBIX_PROJECT_ID",
10435
+ "helpGroup": "GLOBAL",
10436
+ "name": "project",
10437
+ "hasDynamicHelp": false,
10438
+ "multiple": false,
10439
+ "type": "option"
10440
+ },
10441
+ "env": {
10442
+ "description": "Project environment (e.g. PROD, TEST)",
10443
+ "env": "NORBIX_ENV",
10444
+ "helpGroup": "GLOBAL",
10445
+ "name": "env",
10446
+ "hasDynamicHelp": false,
10447
+ "multiple": false,
10448
+ "type": "option"
10449
+ },
10450
+ "region": {
10451
+ "description": "Region code (e.g. nb-eu-germany)",
10452
+ "env": "NORBIX_REGION",
10453
+ "helpGroup": "GLOBAL",
10454
+ "name": "region",
10455
+ "hasDynamicHelp": false,
10456
+ "multiple": false,
10457
+ "type": "option"
10458
+ },
10459
+ "api-key": {
10460
+ "description": "API key (overrides profile and session)",
10461
+ "env": "NORBIX_API_KEY",
10462
+ "helpGroup": "GLOBAL",
10463
+ "name": "api-key",
10464
+ "hasDynamicHelp": false,
10465
+ "multiple": false,
10466
+ "type": "option"
10467
+ },
10468
+ "account": {
10469
+ "description": "Account ID (needed for account-scoped hub endpoints)",
10470
+ "env": "NORBIX_ACCOUNT_ID",
10471
+ "helpGroup": "GLOBAL",
10472
+ "name": "account",
10473
+ "hasDynamicHelp": false,
10474
+ "multiple": false,
10475
+ "type": "option"
10476
+ },
10477
+ "profile": {
10478
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
10479
+ "env": "NORBIX_PROFILE",
10480
+ "helpGroup": "GLOBAL",
10481
+ "name": "profile",
10482
+ "hasDynamicHelp": false,
10483
+ "multiple": false,
10484
+ "type": "option"
10485
+ },
10486
+ "page-size": {
10487
+ "description": "Items per page",
10488
+ "name": "page-size",
10489
+ "hasDynamicHelp": false,
10490
+ "multiple": false,
10491
+ "type": "option"
10492
+ },
10493
+ "after": {
10494
+ "description": "Cursor from the previous page",
10495
+ "name": "after",
10496
+ "hasDynamicHelp": false,
10497
+ "multiple": false,
10498
+ "type": "option"
10499
+ }
10500
+ },
10501
+ "hasDynamicHelp": false,
10502
+ "hiddenAliases": [],
10503
+ "id": "push:campaign:batch",
10504
+ "pluginAlias": "@norbix.ai/cli",
10505
+ "pluginName": "@norbix.ai/cli",
10506
+ "pluginType": "core",
10507
+ "strict": true,
10508
+ "enableJsonFlag": true,
10509
+ "isESM": true,
10510
+ "relativePath": [
10511
+ "dist",
10512
+ "commands",
10513
+ "push",
10514
+ "campaign",
10515
+ "batch.js"
10516
+ ]
10517
+ },
10518
+ "push:campaign:batches": {
10519
+ "aliases": [],
10520
+ "args": {
10521
+ "id": {
10522
+ "description": "Campaign ID",
10523
+ "name": "id",
10524
+ "required": true
10525
+ }
10526
+ },
10527
+ "description": "List the send batches of a push campaign",
10528
+ "examples": [
10529
+ "<%= config.bin %> push campaign batches 66b2f0a1..."
10530
+ ],
10531
+ "flags": {
10532
+ "json": {
10533
+ "description": "Format output as json.",
10534
+ "helpGroup": "GLOBAL",
10535
+ "name": "json",
10536
+ "allowNo": false,
10537
+ "type": "boolean"
10538
+ },
10539
+ "project": {
10540
+ "description": "Project ID",
10541
+ "env": "NORBIX_PROJECT_ID",
10542
+ "helpGroup": "GLOBAL",
10543
+ "name": "project",
10544
+ "hasDynamicHelp": false,
10545
+ "multiple": false,
10546
+ "type": "option"
10547
+ },
10548
+ "env": {
10549
+ "description": "Project environment (e.g. PROD, TEST)",
10550
+ "env": "NORBIX_ENV",
10551
+ "helpGroup": "GLOBAL",
10552
+ "name": "env",
10553
+ "hasDynamicHelp": false,
10554
+ "multiple": false,
10555
+ "type": "option"
10556
+ },
10557
+ "region": {
10558
+ "description": "Region code (e.g. nb-eu-germany)",
10559
+ "env": "NORBIX_REGION",
10560
+ "helpGroup": "GLOBAL",
10561
+ "name": "region",
10562
+ "hasDynamicHelp": false,
10563
+ "multiple": false,
10564
+ "type": "option"
10565
+ },
10566
+ "api-key": {
10567
+ "description": "API key (overrides profile and session)",
10568
+ "env": "NORBIX_API_KEY",
10569
+ "helpGroup": "GLOBAL",
10570
+ "name": "api-key",
10571
+ "hasDynamicHelp": false,
10572
+ "multiple": false,
10573
+ "type": "option"
10574
+ },
10575
+ "account": {
10576
+ "description": "Account ID (needed for account-scoped hub endpoints)",
10577
+ "env": "NORBIX_ACCOUNT_ID",
10578
+ "helpGroup": "GLOBAL",
10579
+ "name": "account",
10580
+ "hasDynamicHelp": false,
10581
+ "multiple": false,
10582
+ "type": "option"
10583
+ },
10584
+ "profile": {
10585
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
10586
+ "env": "NORBIX_PROFILE",
10587
+ "helpGroup": "GLOBAL",
10588
+ "name": "profile",
10589
+ "hasDynamicHelp": false,
10590
+ "multiple": false,
10591
+ "type": "option"
10592
+ },
10593
+ "page-size": {
10594
+ "description": "Items per page",
10595
+ "name": "page-size",
10596
+ "hasDynamicHelp": false,
10597
+ "multiple": false,
10598
+ "type": "option"
10599
+ },
10600
+ "after": {
10601
+ "description": "Cursor from the previous page",
10602
+ "name": "after",
10603
+ "hasDynamicHelp": false,
10604
+ "multiple": false,
10605
+ "type": "option"
10606
+ }
10607
+ },
10608
+ "hasDynamicHelp": false,
10609
+ "hiddenAliases": [],
10610
+ "id": "push:campaign:batches",
10611
+ "pluginAlias": "@norbix.ai/cli",
10612
+ "pluginName": "@norbix.ai/cli",
10613
+ "pluginType": "core",
10614
+ "strict": true,
10615
+ "enableJsonFlag": true,
10616
+ "isESM": true,
10617
+ "relativePath": [
10618
+ "dist",
10619
+ "commands",
10620
+ "push",
10621
+ "campaign",
10622
+ "batches.js"
10623
+ ]
10624
+ },
10625
+ "push:campaign:create": {
10626
+ "aliases": [],
10627
+ "args": {},
10628
+ "description": "Create a push campaign\n\n--audience picks who receives it:\n all-users every user; narrow with --role / --tag\n users the users named with --user\n account-users the account users named with --user\n collection the users referenced by --field in the --schema collection\n devices raw device tokens, --device <token>:<family> (Ios, Android, Chrome, Safari, Expo)\n\nWithout --at the campaign is sent right away. Anything the flags do not cover\ngoes in --config as a JSON object and is merged into the campaign.",
10629
+ "examples": [
10630
+ "<%= config.bin %> push campaign create --template 66b2f0a1... --audience all-users --tag beta",
10631
+ "<%= config.bin %> push campaign create --template 66b2f0a1... --audience users --user usr_1 --user usr_2",
10632
+ "<%= config.bin %> push campaign create --template 66b2f0a1... --audience devices --device dGVzdA==:Ios"
10633
+ ],
10634
+ "flags": {
10635
+ "json": {
10636
+ "description": "Format output as json.",
10637
+ "helpGroup": "GLOBAL",
10638
+ "name": "json",
10639
+ "allowNo": false,
10640
+ "type": "boolean"
10641
+ },
10642
+ "project": {
10643
+ "description": "Project ID",
10644
+ "env": "NORBIX_PROJECT_ID",
10645
+ "helpGroup": "GLOBAL",
10646
+ "name": "project",
10647
+ "hasDynamicHelp": false,
10648
+ "multiple": false,
10649
+ "type": "option"
10650
+ },
10651
+ "env": {
10652
+ "description": "Project environment (e.g. PROD, TEST)",
10653
+ "env": "NORBIX_ENV",
10654
+ "helpGroup": "GLOBAL",
10655
+ "name": "env",
10656
+ "hasDynamicHelp": false,
10657
+ "multiple": false,
10658
+ "type": "option"
10659
+ },
10660
+ "region": {
10661
+ "description": "Region code (e.g. nb-eu-germany)",
10662
+ "env": "NORBIX_REGION",
10663
+ "helpGroup": "GLOBAL",
10664
+ "name": "region",
10665
+ "hasDynamicHelp": false,
10666
+ "multiple": false,
10667
+ "type": "option"
10668
+ },
10669
+ "api-key": {
10670
+ "description": "API key (overrides profile and session)",
10671
+ "env": "NORBIX_API_KEY",
10672
+ "helpGroup": "GLOBAL",
10673
+ "name": "api-key",
10674
+ "hasDynamicHelp": false,
10675
+ "multiple": false,
10676
+ "type": "option"
10677
+ },
10678
+ "account": {
10679
+ "description": "Account ID (needed for account-scoped hub endpoints)",
10680
+ "env": "NORBIX_ACCOUNT_ID",
10681
+ "helpGroup": "GLOBAL",
10682
+ "name": "account",
10683
+ "hasDynamicHelp": false,
10684
+ "multiple": false,
10685
+ "type": "option"
10686
+ },
10687
+ "profile": {
10688
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
10689
+ "env": "NORBIX_PROFILE",
10690
+ "helpGroup": "GLOBAL",
10691
+ "name": "profile",
10692
+ "hasDynamicHelp": false,
10693
+ "multiple": false,
10694
+ "type": "option"
10695
+ },
10696
+ "template": {
10697
+ "description": "Template ID",
10698
+ "name": "template",
10699
+ "required": true,
10700
+ "hasDynamicHelp": false,
10701
+ "multiple": false,
10702
+ "type": "option"
10703
+ },
10704
+ "audience": {
10705
+ "description": "Who receives it",
10706
+ "name": "audience",
10707
+ "required": true,
10708
+ "hasDynamicHelp": false,
10709
+ "multiple": false,
10710
+ "options": [
10711
+ "all-users",
10712
+ "users",
10713
+ "account-users",
10714
+ "collection",
10715
+ "devices"
10716
+ ],
10717
+ "type": "option"
10718
+ },
10719
+ "user": {
10720
+ "description": "User ID (users / account-users; repeat for several)",
10721
+ "name": "user",
10722
+ "hasDynamicHelp": false,
10723
+ "multiple": true,
10724
+ "type": "option"
10725
+ },
10726
+ "role": {
10727
+ "description": "Role name (all-users / collection; repeat for several)",
10728
+ "name": "role",
10729
+ "hasDynamicHelp": false,
10730
+ "multiple": true,
10731
+ "type": "option"
10732
+ },
10733
+ "tag": {
10734
+ "description": "User tag (all-users; repeat for several)",
10735
+ "name": "tag",
10736
+ "hasDynamicHelp": false,
10737
+ "multiple": true,
10738
+ "type": "option"
10739
+ },
10740
+ "schema": {
10741
+ "description": "Collection name (collection)",
10742
+ "name": "schema",
10743
+ "hasDynamicHelp": false,
10744
+ "multiple": false,
10745
+ "type": "option"
10746
+ },
10747
+ "field": {
10748
+ "description": "Field that holds the recipient (collection; repeat for several)",
10749
+ "name": "field",
10750
+ "hasDynamicHelp": false,
10751
+ "multiple": true,
10752
+ "type": "option"
10753
+ },
10754
+ "field-type": {
10755
+ "description": "What --field holds (collection)",
10756
+ "name": "field-type",
10757
+ "hasDynamicHelp": false,
10758
+ "multiple": false,
10759
+ "options": [
10760
+ "User",
10761
+ "Email"
10762
+ ],
10763
+ "type": "option"
10764
+ },
10765
+ "device": {
10766
+ "description": "Device as <token>:<family> (devices; repeat for several)",
10767
+ "name": "device",
10768
+ "hasDynamicHelp": false,
10769
+ "multiple": true,
10770
+ "type": "option"
10771
+ },
10772
+ "integration": {
10773
+ "description": "Push integration ID (defaults to the project default)",
10774
+ "name": "integration",
10775
+ "hasDynamicHelp": false,
10776
+ "multiple": false,
10777
+ "type": "option"
10778
+ },
10779
+ "language": {
10780
+ "description": "Template language to send",
10781
+ "name": "language",
10782
+ "hasDynamicHelp": false,
10783
+ "multiple": false,
10784
+ "type": "option"
10785
+ },
10786
+ "notes": {
10787
+ "description": "Internal notes",
10788
+ "name": "notes",
10789
+ "hasDynamicHelp": false,
10790
+ "multiple": false,
10791
+ "type": "option"
10792
+ },
10793
+ "at": {
10794
+ "description": "Send later: ISO 8601 date-time or Unix seconds",
10795
+ "name": "at",
10796
+ "hasDynamicHelp": false,
10797
+ "multiple": false,
10798
+ "type": "option"
10799
+ },
10800
+ "token": {
10801
+ "description": "Token value as key=value (repeat for several)",
10802
+ "name": "token",
10803
+ "hasDynamicHelp": false,
10804
+ "multiple": true,
10805
+ "type": "option"
10806
+ },
10807
+ "database-integration": {
10808
+ "description": "Database integration ID (defaults to the project default)",
10809
+ "name": "database-integration",
10810
+ "hasDynamicHelp": false,
10811
+ "multiple": false,
10812
+ "type": "option"
10813
+ },
10814
+ "config": {
10815
+ "description": "Extra campaign fields as a JSON object, @file or -",
10816
+ "name": "config",
10817
+ "hasDynamicHelp": false,
10818
+ "multiple": false,
10819
+ "type": "option"
10820
+ }
10821
+ },
10822
+ "hasDynamicHelp": false,
10823
+ "hiddenAliases": [],
10824
+ "id": "push:campaign:create",
10825
+ "pluginAlias": "@norbix.ai/cli",
10826
+ "pluginName": "@norbix.ai/cli",
10827
+ "pluginType": "core",
10828
+ "strict": true,
10829
+ "enableJsonFlag": true,
10830
+ "isESM": true,
10831
+ "relativePath": [
10832
+ "dist",
10833
+ "commands",
10834
+ "push",
10835
+ "campaign",
10836
+ "create.js"
10837
+ ]
10838
+ },
10839
+ "push:campaign:delete": {
10840
+ "aliases": [],
10841
+ "args": {
10842
+ "id": {
10843
+ "description": "Campaign ID",
10844
+ "name": "id",
10845
+ "required": true
10846
+ }
10847
+ },
10848
+ "description": "Delete a push campaign",
10849
+ "examples": [
10850
+ "<%= config.bin %> push campaign delete 66b2f0a1... --yes"
10851
+ ],
10852
+ "flags": {
10853
+ "json": {
10854
+ "description": "Format output as json.",
10855
+ "helpGroup": "GLOBAL",
10856
+ "name": "json",
10857
+ "allowNo": false,
10858
+ "type": "boolean"
10859
+ },
10860
+ "project": {
10861
+ "description": "Project ID",
10862
+ "env": "NORBIX_PROJECT_ID",
10863
+ "helpGroup": "GLOBAL",
10864
+ "name": "project",
10865
+ "hasDynamicHelp": false,
10866
+ "multiple": false,
10867
+ "type": "option"
10868
+ },
10869
+ "env": {
10870
+ "description": "Project environment (e.g. PROD, TEST)",
10871
+ "env": "NORBIX_ENV",
10872
+ "helpGroup": "GLOBAL",
10873
+ "name": "env",
10874
+ "hasDynamicHelp": false,
10875
+ "multiple": false,
10876
+ "type": "option"
10877
+ },
10878
+ "region": {
10879
+ "description": "Region code (e.g. nb-eu-germany)",
10880
+ "env": "NORBIX_REGION",
10881
+ "helpGroup": "GLOBAL",
10882
+ "name": "region",
10883
+ "hasDynamicHelp": false,
10884
+ "multiple": false,
10885
+ "type": "option"
10886
+ },
10887
+ "api-key": {
10888
+ "description": "API key (overrides profile and session)",
10889
+ "env": "NORBIX_API_KEY",
10890
+ "helpGroup": "GLOBAL",
10891
+ "name": "api-key",
10892
+ "hasDynamicHelp": false,
10893
+ "multiple": false,
10894
+ "type": "option"
10895
+ },
10896
+ "account": {
10897
+ "description": "Account ID (needed for account-scoped hub endpoints)",
10898
+ "env": "NORBIX_ACCOUNT_ID",
10899
+ "helpGroup": "GLOBAL",
10900
+ "name": "account",
10901
+ "hasDynamicHelp": false,
10902
+ "multiple": false,
10903
+ "type": "option"
10904
+ },
10905
+ "profile": {
10906
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
10907
+ "env": "NORBIX_PROFILE",
10908
+ "helpGroup": "GLOBAL",
10909
+ "name": "profile",
10910
+ "hasDynamicHelp": false,
10911
+ "multiple": false,
10912
+ "type": "option"
10913
+ },
10914
+ "yes": {
10915
+ "char": "y",
10916
+ "description": "Skip the confirmation prompt",
10917
+ "name": "yes",
10918
+ "allowNo": false,
10919
+ "type": "boolean"
10920
+ }
10921
+ },
10922
+ "hasDynamicHelp": false,
10923
+ "hiddenAliases": [],
10924
+ "id": "push:campaign:delete",
10925
+ "pluginAlias": "@norbix.ai/cli",
10926
+ "pluginName": "@norbix.ai/cli",
10927
+ "pluginType": "core",
10928
+ "strict": true,
10929
+ "enableJsonFlag": true,
10930
+ "isESM": true,
10931
+ "relativePath": [
10932
+ "dist",
10933
+ "commands",
10934
+ "push",
10935
+ "campaign",
10936
+ "delete.js"
10937
+ ]
10938
+ },
10939
+ "push:campaign:message": {
10940
+ "aliases": [],
10941
+ "args": {
10942
+ "id": {
10943
+ "description": "Campaign ID",
10944
+ "name": "id",
10945
+ "required": true
10946
+ },
10947
+ "messageId": {
10948
+ "description": "Message (notification) ID",
10949
+ "name": "messageId",
10950
+ "required": true
10951
+ }
10952
+ },
10953
+ "description": "Show one push message a campaign sent",
10954
+ "examples": [
10955
+ "<%= config.bin %> push campaign message 66b2f0a1... n9d4... --batch b7c3..."
10956
+ ],
10957
+ "flags": {
10958
+ "json": {
10959
+ "description": "Format output as json.",
10960
+ "helpGroup": "GLOBAL",
10961
+ "name": "json",
10962
+ "allowNo": false,
10963
+ "type": "boolean"
10964
+ },
10965
+ "project": {
10966
+ "description": "Project ID",
10967
+ "env": "NORBIX_PROJECT_ID",
10968
+ "helpGroup": "GLOBAL",
10969
+ "name": "project",
10970
+ "hasDynamicHelp": false,
10971
+ "multiple": false,
10972
+ "type": "option"
10973
+ },
10974
+ "env": {
10975
+ "description": "Project environment (e.g. PROD, TEST)",
10976
+ "env": "NORBIX_ENV",
10977
+ "helpGroup": "GLOBAL",
10978
+ "name": "env",
10979
+ "hasDynamicHelp": false,
10980
+ "multiple": false,
10981
+ "type": "option"
10982
+ },
10983
+ "region": {
10984
+ "description": "Region code (e.g. nb-eu-germany)",
10985
+ "env": "NORBIX_REGION",
10986
+ "helpGroup": "GLOBAL",
10987
+ "name": "region",
10988
+ "hasDynamicHelp": false,
10989
+ "multiple": false,
10990
+ "type": "option"
10991
+ },
10992
+ "api-key": {
10993
+ "description": "API key (overrides profile and session)",
10994
+ "env": "NORBIX_API_KEY",
10995
+ "helpGroup": "GLOBAL",
10996
+ "name": "api-key",
10997
+ "hasDynamicHelp": false,
10998
+ "multiple": false,
10999
+ "type": "option"
11000
+ },
11001
+ "account": {
11002
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11003
+ "env": "NORBIX_ACCOUNT_ID",
11004
+ "helpGroup": "GLOBAL",
11005
+ "name": "account",
11006
+ "hasDynamicHelp": false,
11007
+ "multiple": false,
11008
+ "type": "option"
11009
+ },
11010
+ "profile": {
11011
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11012
+ "env": "NORBIX_PROFILE",
11013
+ "helpGroup": "GLOBAL",
11014
+ "name": "profile",
11015
+ "hasDynamicHelp": false,
11016
+ "multiple": false,
11017
+ "type": "option"
11018
+ },
11019
+ "batch": {
11020
+ "description": "Batch the message belongs to",
11021
+ "name": "batch",
11022
+ "required": true,
11023
+ "hasDynamicHelp": false,
11024
+ "multiple": false,
11025
+ "type": "option"
11026
+ }
11027
+ },
11028
+ "hasDynamicHelp": false,
11029
+ "hiddenAliases": [],
11030
+ "id": "push:campaign:message",
11031
+ "pluginAlias": "@norbix.ai/cli",
11032
+ "pluginName": "@norbix.ai/cli",
11033
+ "pluginType": "core",
11034
+ "strict": true,
11035
+ "enableJsonFlag": true,
11036
+ "isESM": true,
11037
+ "relativePath": [
11038
+ "dist",
11039
+ "commands",
11040
+ "push",
11041
+ "campaign",
11042
+ "message.js"
11043
+ ]
11044
+ },
11045
+ "push:campaign:messages": {
11046
+ "aliases": [],
11047
+ "args": {
11048
+ "id": {
11049
+ "description": "Campaign ID",
11050
+ "name": "id",
11051
+ "required": true
11052
+ }
11053
+ },
11054
+ "description": "List the push messages a campaign sent",
11055
+ "examples": [
11056
+ "<%= config.bin %> push campaign messages 66b2f0a1... --batch b7c3..."
11057
+ ],
11058
+ "flags": {
11059
+ "json": {
11060
+ "description": "Format output as json.",
11061
+ "helpGroup": "GLOBAL",
11062
+ "name": "json",
11063
+ "allowNo": false,
11064
+ "type": "boolean"
11065
+ },
11066
+ "project": {
11067
+ "description": "Project ID",
11068
+ "env": "NORBIX_PROJECT_ID",
11069
+ "helpGroup": "GLOBAL",
11070
+ "name": "project",
11071
+ "hasDynamicHelp": false,
11072
+ "multiple": false,
11073
+ "type": "option"
11074
+ },
11075
+ "env": {
11076
+ "description": "Project environment (e.g. PROD, TEST)",
11077
+ "env": "NORBIX_ENV",
11078
+ "helpGroup": "GLOBAL",
11079
+ "name": "env",
11080
+ "hasDynamicHelp": false,
11081
+ "multiple": false,
11082
+ "type": "option"
11083
+ },
11084
+ "region": {
11085
+ "description": "Region code (e.g. nb-eu-germany)",
11086
+ "env": "NORBIX_REGION",
11087
+ "helpGroup": "GLOBAL",
11088
+ "name": "region",
11089
+ "hasDynamicHelp": false,
11090
+ "multiple": false,
11091
+ "type": "option"
11092
+ },
11093
+ "api-key": {
11094
+ "description": "API key (overrides profile and session)",
11095
+ "env": "NORBIX_API_KEY",
11096
+ "helpGroup": "GLOBAL",
11097
+ "name": "api-key",
11098
+ "hasDynamicHelp": false,
11099
+ "multiple": false,
11100
+ "type": "option"
11101
+ },
11102
+ "account": {
11103
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11104
+ "env": "NORBIX_ACCOUNT_ID",
11105
+ "helpGroup": "GLOBAL",
11106
+ "name": "account",
11107
+ "hasDynamicHelp": false,
11108
+ "multiple": false,
11109
+ "type": "option"
11110
+ },
11111
+ "profile": {
11112
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11113
+ "env": "NORBIX_PROFILE",
11114
+ "helpGroup": "GLOBAL",
11115
+ "name": "profile",
11116
+ "hasDynamicHelp": false,
11117
+ "multiple": false,
11118
+ "type": "option"
11119
+ },
11120
+ "batch": {
11121
+ "description": "Only this batch (from `push campaign batches`)",
11122
+ "name": "batch",
11123
+ "hasDynamicHelp": false,
11124
+ "multiple": false,
11125
+ "type": "option"
11126
+ },
11127
+ "page-size": {
11128
+ "description": "Items per page",
11129
+ "name": "page-size",
11130
+ "hasDynamicHelp": false,
11131
+ "multiple": false,
11132
+ "type": "option"
11133
+ },
11134
+ "after": {
11135
+ "description": "Cursor from the previous page",
10023
11136
  "name": "after",
10024
11137
  "hasDynamicHelp": false,
10025
11138
  "multiple": false,
@@ -10028,7 +11141,645 @@
10028
11141
  },
10029
11142
  "hasDynamicHelp": false,
10030
11143
  "hiddenAliases": [],
10031
- "id": "users:list",
11144
+ "id": "push:campaign:messages",
11145
+ "pluginAlias": "@norbix.ai/cli",
11146
+ "pluginName": "@norbix.ai/cli",
11147
+ "pluginType": "core",
11148
+ "strict": true,
11149
+ "enableJsonFlag": true,
11150
+ "isESM": true,
11151
+ "relativePath": [
11152
+ "dist",
11153
+ "commands",
11154
+ "push",
11155
+ "campaign",
11156
+ "messages.js"
11157
+ ]
11158
+ },
11159
+ "push:device:register": {
11160
+ "aliases": [],
11161
+ "args": {},
11162
+ "description": "Register a device so push campaigns can reach it\n\nA device belongs to a user, so --user is required. --os is the operating\nsystem the token came from; the backend uses it to pick a provider.",
11163
+ "examples": [
11164
+ "<%= config.bin %> push device register --user usr_123 --token dGVzdA== --os iOS"
11165
+ ],
11166
+ "flags": {
11167
+ "json": {
11168
+ "description": "Format output as json.",
11169
+ "helpGroup": "GLOBAL",
11170
+ "name": "json",
11171
+ "allowNo": false,
11172
+ "type": "boolean"
11173
+ },
11174
+ "project": {
11175
+ "description": "Project ID",
11176
+ "env": "NORBIX_PROJECT_ID",
11177
+ "helpGroup": "GLOBAL",
11178
+ "name": "project",
11179
+ "hasDynamicHelp": false,
11180
+ "multiple": false,
11181
+ "type": "option"
11182
+ },
11183
+ "env": {
11184
+ "description": "Project environment (e.g. PROD, TEST)",
11185
+ "env": "NORBIX_ENV",
11186
+ "helpGroup": "GLOBAL",
11187
+ "name": "env",
11188
+ "hasDynamicHelp": false,
11189
+ "multiple": false,
11190
+ "type": "option"
11191
+ },
11192
+ "region": {
11193
+ "description": "Region code (e.g. nb-eu-germany)",
11194
+ "env": "NORBIX_REGION",
11195
+ "helpGroup": "GLOBAL",
11196
+ "name": "region",
11197
+ "hasDynamicHelp": false,
11198
+ "multiple": false,
11199
+ "type": "option"
11200
+ },
11201
+ "api-key": {
11202
+ "description": "API key (overrides profile and session)",
11203
+ "env": "NORBIX_API_KEY",
11204
+ "helpGroup": "GLOBAL",
11205
+ "name": "api-key",
11206
+ "hasDynamicHelp": false,
11207
+ "multiple": false,
11208
+ "type": "option"
11209
+ },
11210
+ "account": {
11211
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11212
+ "env": "NORBIX_ACCOUNT_ID",
11213
+ "helpGroup": "GLOBAL",
11214
+ "name": "account",
11215
+ "hasDynamicHelp": false,
11216
+ "multiple": false,
11217
+ "type": "option"
11218
+ },
11219
+ "profile": {
11220
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11221
+ "env": "NORBIX_PROFILE",
11222
+ "helpGroup": "GLOBAL",
11223
+ "name": "profile",
11224
+ "hasDynamicHelp": false,
11225
+ "multiple": false,
11226
+ "type": "option"
11227
+ },
11228
+ "user": {
11229
+ "description": "User ID the device belongs to",
11230
+ "name": "user",
11231
+ "required": true,
11232
+ "hasDynamicHelp": false,
11233
+ "multiple": false,
11234
+ "type": "option"
11235
+ },
11236
+ "token": {
11237
+ "description": "Device token from the platform",
11238
+ "name": "token",
11239
+ "required": true,
11240
+ "hasDynamicHelp": false,
11241
+ "multiple": false,
11242
+ "type": "option"
11243
+ },
11244
+ "os": {
11245
+ "description": "Operating system, e.g. iOS or Android",
11246
+ "name": "os",
11247
+ "required": true,
11248
+ "hasDynamicHelp": false,
11249
+ "multiple": false,
11250
+ "type": "option"
11251
+ },
11252
+ "device-id": {
11253
+ "description": "Stable device identifier",
11254
+ "name": "device-id",
11255
+ "hasDynamicHelp": false,
11256
+ "multiple": false,
11257
+ "type": "option"
11258
+ },
11259
+ "model": {
11260
+ "description": "Device model, e.g. iPhone 15",
11261
+ "name": "model",
11262
+ "hasDynamicHelp": false,
11263
+ "multiple": false,
11264
+ "type": "option"
11265
+ },
11266
+ "name": {
11267
+ "description": "The device's own name",
11268
+ "name": "name",
11269
+ "hasDynamicHelp": false,
11270
+ "multiple": false,
11271
+ "type": "option"
11272
+ }
11273
+ },
11274
+ "hasDynamicHelp": false,
11275
+ "hiddenAliases": [],
11276
+ "id": "push:device:register",
11277
+ "pluginAlias": "@norbix.ai/cli",
11278
+ "pluginName": "@norbix.ai/cli",
11279
+ "pluginType": "core",
11280
+ "strict": true,
11281
+ "enableJsonFlag": true,
11282
+ "isESM": true,
11283
+ "relativePath": [
11284
+ "dist",
11285
+ "commands",
11286
+ "push",
11287
+ "device",
11288
+ "register.js"
11289
+ ]
11290
+ },
11291
+ "push:integration:app-request": {
11292
+ "aliases": [],
11293
+ "args": {},
11294
+ "description": "Register a Norbix app push integration request (managed service)\n\nThis is one step of the managed-app pairing flow: the Norbix mobile app shows\na request ID, a PIN and a public key, and this call registers them for the\naccount. It is account-scoped, so an account ID must be configured or passed\nwith --account.",
11295
+ "examples": [
11296
+ "<%= config.bin %> push integration app-request --user usr_1 --request-id req_1 --pin 123456 --valid-till 2026-09-20T12:00:00Z --public-key MIIB..."
11297
+ ],
11298
+ "flags": {
11299
+ "json": {
11300
+ "description": "Format output as json.",
11301
+ "helpGroup": "GLOBAL",
11302
+ "name": "json",
11303
+ "allowNo": false,
11304
+ "type": "boolean"
11305
+ },
11306
+ "project": {
11307
+ "description": "Project ID",
11308
+ "env": "NORBIX_PROJECT_ID",
11309
+ "helpGroup": "GLOBAL",
11310
+ "name": "project",
11311
+ "hasDynamicHelp": false,
11312
+ "multiple": false,
11313
+ "type": "option"
11314
+ },
11315
+ "env": {
11316
+ "description": "Project environment (e.g. PROD, TEST)",
11317
+ "env": "NORBIX_ENV",
11318
+ "helpGroup": "GLOBAL",
11319
+ "name": "env",
11320
+ "hasDynamicHelp": false,
11321
+ "multiple": false,
11322
+ "type": "option"
11323
+ },
11324
+ "region": {
11325
+ "description": "Region code (e.g. nb-eu-germany)",
11326
+ "env": "NORBIX_REGION",
11327
+ "helpGroup": "GLOBAL",
11328
+ "name": "region",
11329
+ "hasDynamicHelp": false,
11330
+ "multiple": false,
11331
+ "type": "option"
11332
+ },
11333
+ "api-key": {
11334
+ "description": "API key (overrides profile and session)",
11335
+ "env": "NORBIX_API_KEY",
11336
+ "helpGroup": "GLOBAL",
11337
+ "name": "api-key",
11338
+ "hasDynamicHelp": false,
11339
+ "multiple": false,
11340
+ "type": "option"
11341
+ },
11342
+ "account": {
11343
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11344
+ "env": "NORBIX_ACCOUNT_ID",
11345
+ "helpGroup": "GLOBAL",
11346
+ "name": "account",
11347
+ "hasDynamicHelp": false,
11348
+ "multiple": false,
11349
+ "type": "option"
11350
+ },
11351
+ "profile": {
11352
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11353
+ "env": "NORBIX_PROFILE",
11354
+ "helpGroup": "GLOBAL",
11355
+ "name": "profile",
11356
+ "hasDynamicHelp": false,
11357
+ "multiple": false,
11358
+ "type": "option"
11359
+ },
11360
+ "user": {
11361
+ "description": "User ID the app is paired to",
11362
+ "name": "user",
11363
+ "required": true,
11364
+ "hasDynamicHelp": false,
11365
+ "multiple": false,
11366
+ "type": "option"
11367
+ },
11368
+ "request-id": {
11369
+ "description": "Request ID shown by the app",
11370
+ "name": "request-id",
11371
+ "required": true,
11372
+ "hasDynamicHelp": false,
11373
+ "multiple": false,
11374
+ "type": "option"
11375
+ },
11376
+ "pin": {
11377
+ "description": "PIN shown by the app",
11378
+ "name": "pin",
11379
+ "required": true,
11380
+ "hasDynamicHelp": false,
11381
+ "multiple": false,
11382
+ "type": "option"
11383
+ },
11384
+ "valid-till": {
11385
+ "description": "When the request expires (ISO 8601)",
11386
+ "name": "valid-till",
11387
+ "required": true,
11388
+ "hasDynamicHelp": false,
11389
+ "multiple": false,
11390
+ "type": "option"
11391
+ },
11392
+ "public-key": {
11393
+ "description": "The app's public key",
11394
+ "name": "public-key",
11395
+ "required": true,
11396
+ "hasDynamicHelp": false,
11397
+ "multiple": false,
11398
+ "type": "option"
11399
+ }
11400
+ },
11401
+ "hasDynamicHelp": false,
11402
+ "hiddenAliases": [],
11403
+ "id": "push:integration:app-request",
11404
+ "pluginAlias": "@norbix.ai/cli",
11405
+ "pluginName": "@norbix.ai/cli",
11406
+ "pluginType": "core",
11407
+ "strict": true,
11408
+ "enableJsonFlag": true,
11409
+ "isESM": true,
11410
+ "relativePath": [
11411
+ "dist",
11412
+ "commands",
11413
+ "push",
11414
+ "integration",
11415
+ "app-request.js"
11416
+ ]
11417
+ },
11418
+ "push:integration:confirm-delivery": {
11419
+ "aliases": [],
11420
+ "args": {
11421
+ "id": {
11422
+ "description": "Integration ID",
11423
+ "name": "id",
11424
+ "required": true
11425
+ }
11426
+ },
11427
+ "description": "Confirm that a test push reached a real person\n\nAfter `push integration test`, run this once you have seen the push on the\ndevice. It marks the integration as proven to deliver.",
11428
+ "examples": [
11429
+ "<%= config.bin %> push integration confirm-delivery 66b2f0a1..."
11430
+ ],
11431
+ "flags": {
11432
+ "json": {
11433
+ "description": "Format output as json.",
11434
+ "helpGroup": "GLOBAL",
11435
+ "name": "json",
11436
+ "allowNo": false,
11437
+ "type": "boolean"
11438
+ },
11439
+ "project": {
11440
+ "description": "Project ID",
11441
+ "env": "NORBIX_PROJECT_ID",
11442
+ "helpGroup": "GLOBAL",
11443
+ "name": "project",
11444
+ "hasDynamicHelp": false,
11445
+ "multiple": false,
11446
+ "type": "option"
11447
+ },
11448
+ "env": {
11449
+ "description": "Project environment (e.g. PROD, TEST)",
11450
+ "env": "NORBIX_ENV",
11451
+ "helpGroup": "GLOBAL",
11452
+ "name": "env",
11453
+ "hasDynamicHelp": false,
11454
+ "multiple": false,
11455
+ "type": "option"
11456
+ },
11457
+ "region": {
11458
+ "description": "Region code (e.g. nb-eu-germany)",
11459
+ "env": "NORBIX_REGION",
11460
+ "helpGroup": "GLOBAL",
11461
+ "name": "region",
11462
+ "hasDynamicHelp": false,
11463
+ "multiple": false,
11464
+ "type": "option"
11465
+ },
11466
+ "api-key": {
11467
+ "description": "API key (overrides profile and session)",
11468
+ "env": "NORBIX_API_KEY",
11469
+ "helpGroup": "GLOBAL",
11470
+ "name": "api-key",
11471
+ "hasDynamicHelp": false,
11472
+ "multiple": false,
11473
+ "type": "option"
11474
+ },
11475
+ "account": {
11476
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11477
+ "env": "NORBIX_ACCOUNT_ID",
11478
+ "helpGroup": "GLOBAL",
11479
+ "name": "account",
11480
+ "hasDynamicHelp": false,
11481
+ "multiple": false,
11482
+ "type": "option"
11483
+ },
11484
+ "profile": {
11485
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11486
+ "env": "NORBIX_PROFILE",
11487
+ "helpGroup": "GLOBAL",
11488
+ "name": "profile",
11489
+ "hasDynamicHelp": false,
11490
+ "multiple": false,
11491
+ "type": "option"
11492
+ }
11493
+ },
11494
+ "hasDynamicHelp": false,
11495
+ "hiddenAliases": [],
11496
+ "id": "push:integration:confirm-delivery",
11497
+ "pluginAlias": "@norbix.ai/cli",
11498
+ "pluginName": "@norbix.ai/cli",
11499
+ "pluginType": "core",
11500
+ "strict": true,
11501
+ "enableJsonFlag": true,
11502
+ "isESM": true,
11503
+ "relativePath": [
11504
+ "dist",
11505
+ "commands",
11506
+ "push",
11507
+ "integration",
11508
+ "confirm-delivery.js"
11509
+ ]
11510
+ },
11511
+ "push:integration:default": {
11512
+ "aliases": [],
11513
+ "args": {
11514
+ "id": {
11515
+ "description": "Integration ID",
11516
+ "name": "id",
11517
+ "required": true
11518
+ }
11519
+ },
11520
+ "description": "Make a push integration the default one for this project",
11521
+ "examples": [
11522
+ "<%= config.bin %> push integration default 66b2f0a1..."
11523
+ ],
11524
+ "flags": {
11525
+ "json": {
11526
+ "description": "Format output as json.",
11527
+ "helpGroup": "GLOBAL",
11528
+ "name": "json",
11529
+ "allowNo": false,
11530
+ "type": "boolean"
11531
+ },
11532
+ "project": {
11533
+ "description": "Project ID",
11534
+ "env": "NORBIX_PROJECT_ID",
11535
+ "helpGroup": "GLOBAL",
11536
+ "name": "project",
11537
+ "hasDynamicHelp": false,
11538
+ "multiple": false,
11539
+ "type": "option"
11540
+ },
11541
+ "env": {
11542
+ "description": "Project environment (e.g. PROD, TEST)",
11543
+ "env": "NORBIX_ENV",
11544
+ "helpGroup": "GLOBAL",
11545
+ "name": "env",
11546
+ "hasDynamicHelp": false,
11547
+ "multiple": false,
11548
+ "type": "option"
11549
+ },
11550
+ "region": {
11551
+ "description": "Region code (e.g. nb-eu-germany)",
11552
+ "env": "NORBIX_REGION",
11553
+ "helpGroup": "GLOBAL",
11554
+ "name": "region",
11555
+ "hasDynamicHelp": false,
11556
+ "multiple": false,
11557
+ "type": "option"
11558
+ },
11559
+ "api-key": {
11560
+ "description": "API key (overrides profile and session)",
11561
+ "env": "NORBIX_API_KEY",
11562
+ "helpGroup": "GLOBAL",
11563
+ "name": "api-key",
11564
+ "hasDynamicHelp": false,
11565
+ "multiple": false,
11566
+ "type": "option"
11567
+ },
11568
+ "account": {
11569
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11570
+ "env": "NORBIX_ACCOUNT_ID",
11571
+ "helpGroup": "GLOBAL",
11572
+ "name": "account",
11573
+ "hasDynamicHelp": false,
11574
+ "multiple": false,
11575
+ "type": "option"
11576
+ },
11577
+ "profile": {
11578
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11579
+ "env": "NORBIX_PROFILE",
11580
+ "helpGroup": "GLOBAL",
11581
+ "name": "profile",
11582
+ "hasDynamicHelp": false,
11583
+ "multiple": false,
11584
+ "type": "option"
11585
+ }
11586
+ },
11587
+ "hasDynamicHelp": false,
11588
+ "hiddenAliases": [],
11589
+ "id": "push:integration:default",
11590
+ "pluginAlias": "@norbix.ai/cli",
11591
+ "pluginName": "@norbix.ai/cli",
11592
+ "pluginType": "core",
11593
+ "strict": true,
11594
+ "enableJsonFlag": true,
11595
+ "isESM": true,
11596
+ "relativePath": [
11597
+ "dist",
11598
+ "commands",
11599
+ "push",
11600
+ "integration",
11601
+ "default.js"
11602
+ ]
11603
+ },
11604
+ "push:integration:delete": {
11605
+ "aliases": [],
11606
+ "args": {
11607
+ "id": {
11608
+ "description": "Integration ID",
11609
+ "name": "id",
11610
+ "required": true
11611
+ }
11612
+ },
11613
+ "description": "Delete a push integration",
11614
+ "examples": [
11615
+ "<%= config.bin %> push integration delete 66b2f0a1... --yes"
11616
+ ],
11617
+ "flags": {
11618
+ "json": {
11619
+ "description": "Format output as json.",
11620
+ "helpGroup": "GLOBAL",
11621
+ "name": "json",
11622
+ "allowNo": false,
11623
+ "type": "boolean"
11624
+ },
11625
+ "project": {
11626
+ "description": "Project ID",
11627
+ "env": "NORBIX_PROJECT_ID",
11628
+ "helpGroup": "GLOBAL",
11629
+ "name": "project",
11630
+ "hasDynamicHelp": false,
11631
+ "multiple": false,
11632
+ "type": "option"
11633
+ },
11634
+ "env": {
11635
+ "description": "Project environment (e.g. PROD, TEST)",
11636
+ "env": "NORBIX_ENV",
11637
+ "helpGroup": "GLOBAL",
11638
+ "name": "env",
11639
+ "hasDynamicHelp": false,
11640
+ "multiple": false,
11641
+ "type": "option"
11642
+ },
11643
+ "region": {
11644
+ "description": "Region code (e.g. nb-eu-germany)",
11645
+ "env": "NORBIX_REGION",
11646
+ "helpGroup": "GLOBAL",
11647
+ "name": "region",
11648
+ "hasDynamicHelp": false,
11649
+ "multiple": false,
11650
+ "type": "option"
11651
+ },
11652
+ "api-key": {
11653
+ "description": "API key (overrides profile and session)",
11654
+ "env": "NORBIX_API_KEY",
11655
+ "helpGroup": "GLOBAL",
11656
+ "name": "api-key",
11657
+ "hasDynamicHelp": false,
11658
+ "multiple": false,
11659
+ "type": "option"
11660
+ },
11661
+ "account": {
11662
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11663
+ "env": "NORBIX_ACCOUNT_ID",
11664
+ "helpGroup": "GLOBAL",
11665
+ "name": "account",
11666
+ "hasDynamicHelp": false,
11667
+ "multiple": false,
11668
+ "type": "option"
11669
+ },
11670
+ "profile": {
11671
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11672
+ "env": "NORBIX_PROFILE",
11673
+ "helpGroup": "GLOBAL",
11674
+ "name": "profile",
11675
+ "hasDynamicHelp": false,
11676
+ "multiple": false,
11677
+ "type": "option"
11678
+ },
11679
+ "yes": {
11680
+ "char": "y",
11681
+ "description": "Skip the confirmation prompt",
11682
+ "name": "yes",
11683
+ "allowNo": false,
11684
+ "type": "boolean"
11685
+ }
11686
+ },
11687
+ "hasDynamicHelp": false,
11688
+ "hiddenAliases": [],
11689
+ "id": "push:integration:delete",
11690
+ "pluginAlias": "@norbix.ai/cli",
11691
+ "pluginName": "@norbix.ai/cli",
11692
+ "pluginType": "core",
11693
+ "strict": true,
11694
+ "enableJsonFlag": true,
11695
+ "isESM": true,
11696
+ "relativePath": [
11697
+ "dist",
11698
+ "commands",
11699
+ "push",
11700
+ "integration",
11701
+ "delete.js"
11702
+ ]
11703
+ },
11704
+ "push:integration:disable": {
11705
+ "aliases": [],
11706
+ "args": {
11707
+ "id": {
11708
+ "description": "Integration ID",
11709
+ "name": "id",
11710
+ "required": true
11711
+ }
11712
+ },
11713
+ "description": "Turn a push integration off",
11714
+ "examples": [
11715
+ "<%= config.bin %> push integration disable 66b2f0a1..."
11716
+ ],
11717
+ "flags": {
11718
+ "json": {
11719
+ "description": "Format output as json.",
11720
+ "helpGroup": "GLOBAL",
11721
+ "name": "json",
11722
+ "allowNo": false,
11723
+ "type": "boolean"
11724
+ },
11725
+ "project": {
11726
+ "description": "Project ID",
11727
+ "env": "NORBIX_PROJECT_ID",
11728
+ "helpGroup": "GLOBAL",
11729
+ "name": "project",
11730
+ "hasDynamicHelp": false,
11731
+ "multiple": false,
11732
+ "type": "option"
11733
+ },
11734
+ "env": {
11735
+ "description": "Project environment (e.g. PROD, TEST)",
11736
+ "env": "NORBIX_ENV",
11737
+ "helpGroup": "GLOBAL",
11738
+ "name": "env",
11739
+ "hasDynamicHelp": false,
11740
+ "multiple": false,
11741
+ "type": "option"
11742
+ },
11743
+ "region": {
11744
+ "description": "Region code (e.g. nb-eu-germany)",
11745
+ "env": "NORBIX_REGION",
11746
+ "helpGroup": "GLOBAL",
11747
+ "name": "region",
11748
+ "hasDynamicHelp": false,
11749
+ "multiple": false,
11750
+ "type": "option"
11751
+ },
11752
+ "api-key": {
11753
+ "description": "API key (overrides profile and session)",
11754
+ "env": "NORBIX_API_KEY",
11755
+ "helpGroup": "GLOBAL",
11756
+ "name": "api-key",
11757
+ "hasDynamicHelp": false,
11758
+ "multiple": false,
11759
+ "type": "option"
11760
+ },
11761
+ "account": {
11762
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11763
+ "env": "NORBIX_ACCOUNT_ID",
11764
+ "helpGroup": "GLOBAL",
11765
+ "name": "account",
11766
+ "hasDynamicHelp": false,
11767
+ "multiple": false,
11768
+ "type": "option"
11769
+ },
11770
+ "profile": {
11771
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11772
+ "env": "NORBIX_PROFILE",
11773
+ "helpGroup": "GLOBAL",
11774
+ "name": "profile",
11775
+ "hasDynamicHelp": false,
11776
+ "multiple": false,
11777
+ "type": "option"
11778
+ }
11779
+ },
11780
+ "hasDynamicHelp": false,
11781
+ "hiddenAliases": [],
11782
+ "id": "push:integration:disable",
10032
11783
  "pluginAlias": "@norbix.ai/cli",
10033
11784
  "pluginName": "@norbix.ai/cli",
10034
11785
  "pluginType": "core",
@@ -10038,16 +11789,243 @@
10038
11789
  "relativePath": [
10039
11790
  "dist",
10040
11791
  "commands",
10041
- "users",
10042
- "list.js"
11792
+ "push",
11793
+ "integration",
11794
+ "disable.js"
10043
11795
  ]
10044
11796
  },
10045
- "users:policies": {
11797
+ "push:integration:enable": {
11798
+ "aliases": [],
11799
+ "args": {
11800
+ "id": {
11801
+ "description": "Integration ID",
11802
+ "name": "id",
11803
+ "required": true
11804
+ }
11805
+ },
11806
+ "description": "Turn a push integration on",
11807
+ "examples": [
11808
+ "<%= config.bin %> push integration enable 66b2f0a1..."
11809
+ ],
11810
+ "flags": {
11811
+ "json": {
11812
+ "description": "Format output as json.",
11813
+ "helpGroup": "GLOBAL",
11814
+ "name": "json",
11815
+ "allowNo": false,
11816
+ "type": "boolean"
11817
+ },
11818
+ "project": {
11819
+ "description": "Project ID",
11820
+ "env": "NORBIX_PROJECT_ID",
11821
+ "helpGroup": "GLOBAL",
11822
+ "name": "project",
11823
+ "hasDynamicHelp": false,
11824
+ "multiple": false,
11825
+ "type": "option"
11826
+ },
11827
+ "env": {
11828
+ "description": "Project environment (e.g. PROD, TEST)",
11829
+ "env": "NORBIX_ENV",
11830
+ "helpGroup": "GLOBAL",
11831
+ "name": "env",
11832
+ "hasDynamicHelp": false,
11833
+ "multiple": false,
11834
+ "type": "option"
11835
+ },
11836
+ "region": {
11837
+ "description": "Region code (e.g. nb-eu-germany)",
11838
+ "env": "NORBIX_REGION",
11839
+ "helpGroup": "GLOBAL",
11840
+ "name": "region",
11841
+ "hasDynamicHelp": false,
11842
+ "multiple": false,
11843
+ "type": "option"
11844
+ },
11845
+ "api-key": {
11846
+ "description": "API key (overrides profile and session)",
11847
+ "env": "NORBIX_API_KEY",
11848
+ "helpGroup": "GLOBAL",
11849
+ "name": "api-key",
11850
+ "hasDynamicHelp": false,
11851
+ "multiple": false,
11852
+ "type": "option"
11853
+ },
11854
+ "account": {
11855
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11856
+ "env": "NORBIX_ACCOUNT_ID",
11857
+ "helpGroup": "GLOBAL",
11858
+ "name": "account",
11859
+ "hasDynamicHelp": false,
11860
+ "multiple": false,
11861
+ "type": "option"
11862
+ },
11863
+ "profile": {
11864
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11865
+ "env": "NORBIX_PROFILE",
11866
+ "helpGroup": "GLOBAL",
11867
+ "name": "profile",
11868
+ "hasDynamicHelp": false,
11869
+ "multiple": false,
11870
+ "type": "option"
11871
+ }
11872
+ },
11873
+ "hasDynamicHelp": false,
11874
+ "hiddenAliases": [],
11875
+ "id": "push:integration:enable",
11876
+ "pluginAlias": "@norbix.ai/cli",
11877
+ "pluginName": "@norbix.ai/cli",
11878
+ "pluginType": "core",
11879
+ "strict": true,
11880
+ "enableJsonFlag": true,
11881
+ "isESM": true,
11882
+ "relativePath": [
11883
+ "dist",
11884
+ "commands",
11885
+ "push",
11886
+ "integration",
11887
+ "enable.js"
11888
+ ]
11889
+ },
11890
+ "push:integration:save": {
10046
11891
  "aliases": [],
10047
11892
  "args": {},
10048
- "description": "List membership policies",
11893
+ "description": "Create or update a push integration\n\n--provider picks the body shape. Fake needs nothing else: it accepts every send\nand contacts no push service, so use it while you develop. The real providers\nneed their credentials — put the provider-specific fields in --config (inline\nJSON, @file.json, or - for stdin). Pass --id to update an existing integration.",
10049
11894
  "examples": [
10050
- "<%= config.bin %> users policies"
11895
+ "<%= config.bin %> push integration save --provider Fake",
11896
+ "<%= config.bin %> push integration save --provider AndroidFirebase --name Android --config @firebase.json"
11897
+ ],
11898
+ "flags": {
11899
+ "json": {
11900
+ "description": "Format output as json.",
11901
+ "helpGroup": "GLOBAL",
11902
+ "name": "json",
11903
+ "allowNo": false,
11904
+ "type": "boolean"
11905
+ },
11906
+ "project": {
11907
+ "description": "Project ID",
11908
+ "env": "NORBIX_PROJECT_ID",
11909
+ "helpGroup": "GLOBAL",
11910
+ "name": "project",
11911
+ "hasDynamicHelp": false,
11912
+ "multiple": false,
11913
+ "type": "option"
11914
+ },
11915
+ "env": {
11916
+ "description": "Project environment (e.g. PROD, TEST)",
11917
+ "env": "NORBIX_ENV",
11918
+ "helpGroup": "GLOBAL",
11919
+ "name": "env",
11920
+ "hasDynamicHelp": false,
11921
+ "multiple": false,
11922
+ "type": "option"
11923
+ },
11924
+ "region": {
11925
+ "description": "Region code (e.g. nb-eu-germany)",
11926
+ "env": "NORBIX_REGION",
11927
+ "helpGroup": "GLOBAL",
11928
+ "name": "region",
11929
+ "hasDynamicHelp": false,
11930
+ "multiple": false,
11931
+ "type": "option"
11932
+ },
11933
+ "api-key": {
11934
+ "description": "API key (overrides profile and session)",
11935
+ "env": "NORBIX_API_KEY",
11936
+ "helpGroup": "GLOBAL",
11937
+ "name": "api-key",
11938
+ "hasDynamicHelp": false,
11939
+ "multiple": false,
11940
+ "type": "option"
11941
+ },
11942
+ "account": {
11943
+ "description": "Account ID (needed for account-scoped hub endpoints)",
11944
+ "env": "NORBIX_ACCOUNT_ID",
11945
+ "helpGroup": "GLOBAL",
11946
+ "name": "account",
11947
+ "hasDynamicHelp": false,
11948
+ "multiple": false,
11949
+ "type": "option"
11950
+ },
11951
+ "profile": {
11952
+ "description": "Use this profile from ~/.norbix/config (ignores the login session)",
11953
+ "env": "NORBIX_PROFILE",
11954
+ "helpGroup": "GLOBAL",
11955
+ "name": "profile",
11956
+ "hasDynamicHelp": false,
11957
+ "multiple": false,
11958
+ "type": "option"
11959
+ },
11960
+ "provider": {
11961
+ "description": "Push provider",
11962
+ "name": "provider",
11963
+ "required": true,
11964
+ "hasDynamicHelp": false,
11965
+ "multiple": false,
11966
+ "options": [
11967
+ "Fake",
11968
+ "AppleApns",
11969
+ "AndroidFirebase",
11970
+ "SafariPush",
11971
+ "ChromeWeb",
11972
+ "FirefoxWeb",
11973
+ "EdgeWeb",
11974
+ "ChromePush"
11975
+ ],
11976
+ "type": "option"
11977
+ },
11978
+ "name": {
11979
+ "description": "Integration name (Fake ignores it and uses its own)",
11980
+ "name": "name",
11981
+ "hasDynamicHelp": false,
11982
+ "multiple": false,
11983
+ "type": "option"
11984
+ },
11985
+ "id": {
11986
+ "description": "Integration ID — set it to update instead of create",
11987
+ "name": "id",
11988
+ "hasDynamicHelp": false,
11989
+ "multiple": false,
11990
+ "type": "option"
11991
+ },
11992
+ "disabled": {
11993
+ "description": "Save it turned off",
11994
+ "name": "disabled",
11995
+ "allowNo": false,
11996
+ "type": "boolean"
11997
+ },
11998
+ "config": {
11999
+ "description": "Provider-specific fields as a JSON object, @file or -",
12000
+ "name": "config",
12001
+ "hasDynamicHelp": false,
12002
+ "multiple": false,
12003
+ "type": "option"
12004
+ }
12005
+ },
12006
+ "hasDynamicHelp": false,
12007
+ "hiddenAliases": [],
12008
+ "id": "push:integration:save",
12009
+ "pluginAlias": "@norbix.ai/cli",
12010
+ "pluginName": "@norbix.ai/cli",
12011
+ "pluginType": "core",
12012
+ "strict": true,
12013
+ "enableJsonFlag": true,
12014
+ "isESM": true,
12015
+ "relativePath": [
12016
+ "dist",
12017
+ "commands",
12018
+ "push",
12019
+ "integration",
12020
+ "save.js"
12021
+ ]
12022
+ },
12023
+ "push:integration:test": {
12024
+ "aliases": [],
12025
+ "args": {},
12026
+ "description": "Send a test push through an integration\n\nPoint this at the Fake integration while you are developing — it accepts the\nsend and contacts no push service, so nothing reaches a real device.",
12027
+ "examples": [
12028
+ "<%= config.bin %> push integration test --integration 66b2f0a1... --token dGVzdA== --family Ios"
10051
12029
  ],
10052
12030
  "flags": {
10053
12031
  "json": {
@@ -10110,11 +12088,40 @@
10110
12088
  "hasDynamicHelp": false,
10111
12089
  "multiple": false,
10112
12090
  "type": "option"
12091
+ },
12092
+ "integration": {
12093
+ "description": "Integration ID to send through",
12094
+ "name": "integration",
12095
+ "required": true,
12096
+ "hasDynamicHelp": false,
12097
+ "multiple": false,
12098
+ "type": "option"
12099
+ },
12100
+ "token": {
12101
+ "description": "Device token to send the test to",
12102
+ "name": "token",
12103
+ "hasDynamicHelp": false,
12104
+ "multiple": false,
12105
+ "type": "option"
12106
+ },
12107
+ "family": {
12108
+ "description": "Which platform the token came from",
12109
+ "name": "family",
12110
+ "hasDynamicHelp": false,
12111
+ "multiple": false,
12112
+ "options": [
12113
+ "Ios",
12114
+ "Android",
12115
+ "Chrome",
12116
+ "Safari",
12117
+ "Expo"
12118
+ ],
12119
+ "type": "option"
10113
12120
  }
10114
12121
  },
10115
12122
  "hasDynamicHelp": false,
10116
12123
  "hiddenAliases": [],
10117
- "id": "users:policies",
12124
+ "id": "push:integration:test",
10118
12125
  "pluginAlias": "@norbix.ai/cli",
10119
12126
  "pluginName": "@norbix.ai/cli",
10120
12127
  "pluginType": "core",
@@ -10124,16 +12131,18 @@
10124
12131
  "relativePath": [
10125
12132
  "dist",
10126
12133
  "commands",
10127
- "users",
10128
- "policies.js"
12134
+ "push",
12135
+ "integration",
12136
+ "test.js"
10129
12137
  ]
10130
12138
  },
10131
- "users:roles": {
12139
+ "push:template:create": {
10132
12140
  "aliases": [],
10133
12141
  "args": {},
10134
- "description": "List membership roles",
12142
+ "description": "Create a push template\n\nOne language: --title and --body. Several languages: --translations with a\nJSON array of {language, content: {title, body}}.",
10135
12143
  "examples": [
10136
- "<%= config.bin %> users roles"
12144
+ "<%= config.bin %> push template create --name Welcome --title \"Hi @Model.Name\" --body \"Thanks for joining\"",
12145
+ "<%= config.bin %> push template create --name Welcome --translations @welcome.json"
10137
12146
  ],
10138
12147
  "flags": {
10139
12148
  "json": {
@@ -10196,11 +12205,79 @@
10196
12205
  "hasDynamicHelp": false,
10197
12206
  "multiple": false,
10198
12207
  "type": "option"
12208
+ },
12209
+ "name": {
12210
+ "description": "Template name",
12211
+ "name": "name",
12212
+ "required": true,
12213
+ "hasDynamicHelp": false,
12214
+ "multiple": false,
12215
+ "type": "option"
12216
+ },
12217
+ "description": {
12218
+ "description": "What the template is for",
12219
+ "name": "description",
12220
+ "hasDynamicHelp": false,
12221
+ "multiple": false,
12222
+ "type": "option"
12223
+ },
12224
+ "channel": {
12225
+ "description": "Communication channel",
12226
+ "name": "channel",
12227
+ "default": "Transactional",
12228
+ "hasDynamicHelp": false,
12229
+ "multiple": false,
12230
+ "options": [
12231
+ "Transactional",
12232
+ "Marketing",
12233
+ "System"
12234
+ ],
12235
+ "type": "option"
12236
+ },
12237
+ "tag": {
12238
+ "description": "Tag (repeat for several)",
12239
+ "name": "tag",
12240
+ "hasDynamicHelp": false,
12241
+ "multiple": true,
12242
+ "type": "option"
12243
+ },
12244
+ "language": {
12245
+ "description": "Language of --title / --body",
12246
+ "name": "language",
12247
+ "default": "en",
12248
+ "hasDynamicHelp": false,
12249
+ "multiple": false,
12250
+ "type": "option"
12251
+ },
12252
+ "title": {
12253
+ "description": "Push title (Razor allowed)",
12254
+ "name": "title",
12255
+ "hasDynamicHelp": false,
12256
+ "multiple": false,
12257
+ "type": "option"
12258
+ },
12259
+ "body": {
12260
+ "description": "Push body (Razor allowed)",
12261
+ "name": "body",
12262
+ "hasDynamicHelp": false,
12263
+ "multiple": false,
12264
+ "type": "option"
12265
+ },
12266
+ "translations": {
12267
+ "description": "All languages as a JSON array of {language, content: {title, body}} — inline, @file or -",
12268
+ "exclusive": [
12269
+ "title",
12270
+ "body"
12271
+ ],
12272
+ "name": "translations",
12273
+ "hasDynamicHelp": false,
12274
+ "multiple": false,
12275
+ "type": "option"
10199
12276
  }
10200
12277
  },
10201
12278
  "hasDynamicHelp": false,
10202
12279
  "hiddenAliases": [],
10203
- "id": "users:roles",
12280
+ "id": "push:template:create",
10204
12281
  "pluginAlias": "@norbix.ai/cli",
10205
12282
  "pluginName": "@norbix.ai/cli",
10206
12283
  "pluginType": "core",
@@ -10210,22 +12287,17 @@
10210
12287
  "relativePath": [
10211
12288
  "dist",
10212
12289
  "commands",
10213
- "users",
10214
- "roles.js"
12290
+ "push",
12291
+ "template",
12292
+ "create.js"
10215
12293
  ]
10216
12294
  },
10217
- "users:unblock": {
12295
+ "push:template:render": {
10218
12296
  "aliases": [],
10219
- "args": {
10220
- "id": {
10221
- "description": "User ID",
10222
- "name": "id",
10223
- "required": true
10224
- }
10225
- },
10226
- "description": "Unblock a user",
12297
+ "args": {},
12298
+ "description": "Render one push field (title, body or subtitle) with token values\n\nUse it to check a Razor template before you save it. When the template needs a\ntoken you did not pass, the answer lists the missing ones.",
10227
12299
  "examples": [
10228
- "<%= config.bin %> users unblock 66b2f0a1..."
12300
+ "<%= config.bin %> push template render --code \"Hi @Model.Name\" --token Name=Ada"
10229
12301
  ],
10230
12302
  "flags": {
10231
12303
  "json": {
@@ -10288,11 +12360,32 @@
10288
12360
  "hasDynamicHelp": false,
10289
12361
  "multiple": false,
10290
12362
  "type": "option"
12363
+ },
12364
+ "code": {
12365
+ "description": "Razor source of the field",
12366
+ "name": "code",
12367
+ "required": true,
12368
+ "hasDynamicHelp": false,
12369
+ "multiple": false,
12370
+ "type": "option"
12371
+ },
12372
+ "token": {
12373
+ "description": "Token value as key=value (repeat for several)",
12374
+ "name": "token",
12375
+ "hasDynamicHelp": false,
12376
+ "multiple": true,
12377
+ "type": "option"
12378
+ },
12379
+ "preview": {
12380
+ "description": "Render for a preview (less strict)",
12381
+ "name": "preview",
12382
+ "allowNo": false,
12383
+ "type": "boolean"
10291
12384
  }
10292
12385
  },
10293
12386
  "hasDynamicHelp": false,
10294
12387
  "hiddenAliases": [],
10295
- "id": "users:unblock",
12388
+ "id": "push:template:render",
10296
12389
  "pluginAlias": "@norbix.ai/cli",
10297
12390
  "pluginName": "@norbix.ai/cli",
10298
12391
  "pluginType": "core",
@@ -10302,23 +12395,23 @@
10302
12395
  "relativePath": [
10303
12396
  "dist",
10304
12397
  "commands",
10305
- "users",
10306
- "unblock.js"
12398
+ "push",
12399
+ "template",
12400
+ "render.js"
10307
12401
  ]
10308
12402
  },
10309
- "files:integrations:test": {
12403
+ "push:template:tokens": {
10310
12404
  "aliases": [],
10311
12405
  "args": {
10312
12406
  "id": {
10313
- "description": "Files integration ID",
12407
+ "description": "Template ID",
10314
12408
  "name": "id",
10315
12409
  "required": true
10316
12410
  }
10317
12411
  },
10318
- "description": "Check that a files integration really works\n\nRuns a live probe against the storage: uploads a small file, reads it, lists\nits folder and deletes it again. Prints one line per step — OK, FAILED or\nNOT_TESTED (skipped because an earlier step failed) — with the errors of a\nfailed step. Exits non-zero unless every step is OK.\n\nNeeds the files:create permission, because the probe writes to the storage.",
12412
+ "description": "List the tokens a push template uses — the values a campaign must fill",
10319
12413
  "examples": [
10320
- "<%= config.bin %> files integrations test 55555555-5555-5555-5555-555555555555",
10321
- "<%= config.bin %> files integrations test 55555555-5555-5555-5555-555555555555 --json"
12414
+ "<%= config.bin %> push template tokens 66b2f0a1..."
10322
12415
  ],
10323
12416
  "flags": {
10324
12417
  "json": {
@@ -10385,7 +12478,7 @@
10385
12478
  },
10386
12479
  "hasDynamicHelp": false,
10387
12480
  "hiddenAliases": [],
10388
- "id": "files:integrations:test",
12481
+ "id": "push:template:tokens",
10389
12482
  "pluginAlias": "@norbix.ai/cli",
10390
12483
  "pluginName": "@norbix.ai/cli",
10391
12484
  "pluginType": "core",
@@ -10395,17 +12488,23 @@
10395
12488
  "relativePath": [
10396
12489
  "dist",
10397
12490
  "commands",
10398
- "files",
10399
- "integrations",
10400
- "test.js"
12491
+ "push",
12492
+ "template",
12493
+ "tokens.js"
10401
12494
  ]
10402
12495
  },
10403
- "push:device:register": {
12496
+ "push:template:update": {
10404
12497
  "aliases": [],
10405
- "args": {},
10406
- "description": "Register a device so push campaigns can reach it\n\nA device belongs to a user, so --user is required. --os is the operating\nsystem the token came from; the backend uses it to pick a provider.",
12498
+ "args": {
12499
+ "id": {
12500
+ "description": "Template ID",
12501
+ "name": "id",
12502
+ "required": true
12503
+ }
12504
+ },
12505
+ "description": "Replace a push template's name, channel, tags and content\n\nThe whole template is sent, so pass every language you want to keep.",
10407
12506
  "examples": [
10408
- "<%= config.bin %> push device register --user usr_123 --token dGVzdA== --os iOS"
12507
+ "<%= config.bin %> push template update 66b2f0a1... --name Welcome --title \"Hi\" --body \"Thanks for joining\""
10409
12508
  ],
10410
12509
  "flags": {
10411
12510
  "json": {
@@ -10469,47 +12568,70 @@
10469
12568
  "multiple": false,
10470
12569
  "type": "option"
10471
12570
  },
10472
- "user": {
10473
- "description": "User ID the device belongs to",
10474
- "name": "user",
12571
+ "name": {
12572
+ "description": "Template name",
12573
+ "name": "name",
10475
12574
  "required": true,
10476
12575
  "hasDynamicHelp": false,
10477
12576
  "multiple": false,
10478
12577
  "type": "option"
10479
12578
  },
10480
- "token": {
10481
- "description": "Device token from the platform",
10482
- "name": "token",
10483
- "required": true,
12579
+ "description": {
12580
+ "description": "What the template is for",
12581
+ "name": "description",
10484
12582
  "hasDynamicHelp": false,
10485
12583
  "multiple": false,
10486
12584
  "type": "option"
10487
12585
  },
10488
- "os": {
10489
- "description": "Operating system, e.g. iOS or Android",
10490
- "name": "os",
10491
- "required": true,
12586
+ "channel": {
12587
+ "description": "Communication channel",
12588
+ "name": "channel",
12589
+ "default": "Transactional",
10492
12590
  "hasDynamicHelp": false,
10493
12591
  "multiple": false,
12592
+ "options": [
12593
+ "Transactional",
12594
+ "Marketing",
12595
+ "System"
12596
+ ],
10494
12597
  "type": "option"
10495
12598
  },
10496
- "device-id": {
10497
- "description": "Stable device identifier",
10498
- "name": "device-id",
12599
+ "tag": {
12600
+ "description": "Tag (repeat for several)",
12601
+ "name": "tag",
12602
+ "hasDynamicHelp": false,
12603
+ "multiple": true,
12604
+ "type": "option"
12605
+ },
12606
+ "language": {
12607
+ "description": "Language of --title / --body",
12608
+ "name": "language",
12609
+ "default": "en",
10499
12610
  "hasDynamicHelp": false,
10500
12611
  "multiple": false,
10501
12612
  "type": "option"
10502
12613
  },
10503
- "model": {
10504
- "description": "Device model, e.g. iPhone 15",
10505
- "name": "model",
12614
+ "title": {
12615
+ "description": "Push title (Razor allowed)",
12616
+ "name": "title",
10506
12617
  "hasDynamicHelp": false,
10507
12618
  "multiple": false,
10508
12619
  "type": "option"
10509
12620
  },
10510
- "name": {
10511
- "description": "The device's own name",
10512
- "name": "name",
12621
+ "body": {
12622
+ "description": "Push body (Razor allowed)",
12623
+ "name": "body",
12624
+ "hasDynamicHelp": false,
12625
+ "multiple": false,
12626
+ "type": "option"
12627
+ },
12628
+ "translations": {
12629
+ "description": "All languages as a JSON array of {language, content: {title, body}} — inline, @file or -",
12630
+ "exclusive": [
12631
+ "title",
12632
+ "body"
12633
+ ],
12634
+ "name": "translations",
10513
12635
  "hasDynamicHelp": false,
10514
12636
  "multiple": false,
10515
12637
  "type": "option"
@@ -10517,7 +12639,7 @@
10517
12639
  },
10518
12640
  "hasDynamicHelp": false,
10519
12641
  "hiddenAliases": [],
10520
- "id": "push:device:register",
12642
+ "id": "push:template:update",
10521
12643
  "pluginAlias": "@norbix.ai/cli",
10522
12644
  "pluginName": "@norbix.ai/cli",
10523
12645
  "pluginType": "core",
@@ -10528,22 +12650,22 @@
10528
12650
  "dist",
10529
12651
  "commands",
10530
12652
  "push",
10531
- "device",
10532
- "register.js"
12653
+ "template",
12654
+ "update.js"
10533
12655
  ]
10534
12656
  },
10535
- "push:integration:default": {
12657
+ "scheduler:delete": {
10536
12658
  "aliases": [],
10537
12659
  "args": {
10538
12660
  "id": {
10539
- "description": "Integration ID",
12661
+ "description": "Task ID",
10540
12662
  "name": "id",
10541
12663
  "required": true
10542
12664
  }
10543
12665
  },
10544
- "description": "Make a push integration the default one for this project",
12666
+ "description": "Delete a scheduler task",
10545
12667
  "examples": [
10546
- "<%= config.bin %> push integration default 66b2f0a1..."
12668
+ "<%= config.bin %> scheduler delete 66b2f0a1... --yes"
10547
12669
  ],
10548
12670
  "flags": {
10549
12671
  "json": {
@@ -10606,11 +12728,18 @@
10606
12728
  "hasDynamicHelp": false,
10607
12729
  "multiple": false,
10608
12730
  "type": "option"
12731
+ },
12732
+ "yes": {
12733
+ "char": "y",
12734
+ "description": "Skip the confirmation prompt",
12735
+ "name": "yes",
12736
+ "allowNo": false,
12737
+ "type": "boolean"
10609
12738
  }
10610
12739
  },
10611
12740
  "hasDynamicHelp": false,
10612
12741
  "hiddenAliases": [],
10613
- "id": "push:integration:default",
12742
+ "id": "scheduler:delete",
10614
12743
  "pluginAlias": "@norbix.ai/cli",
10615
12744
  "pluginName": "@norbix.ai/cli",
10616
12745
  "pluginType": "core",
@@ -10620,23 +12749,22 @@
10620
12749
  "relativePath": [
10621
12750
  "dist",
10622
12751
  "commands",
10623
- "push",
10624
- "integration",
10625
- "default.js"
12752
+ "scheduler",
12753
+ "delete.js"
10626
12754
  ]
10627
12755
  },
10628
- "push:integration:delete": {
12756
+ "scheduler:disable": {
10629
12757
  "aliases": [],
10630
12758
  "args": {
10631
12759
  "id": {
10632
- "description": "Integration ID",
12760
+ "description": "Task ID",
10633
12761
  "name": "id",
10634
12762
  "required": true
10635
12763
  }
10636
12764
  },
10637
- "description": "Delete a push integration",
12765
+ "description": "Disable a scheduler task",
10638
12766
  "examples": [
10639
- "<%= config.bin %> push integration delete 66b2f0a1... --yes"
12767
+ "<%= config.bin %> scheduler disable 66b2f0a1..."
10640
12768
  ],
10641
12769
  "flags": {
10642
12770
  "json": {
@@ -10699,18 +12827,11 @@
10699
12827
  "hasDynamicHelp": false,
10700
12828
  "multiple": false,
10701
12829
  "type": "option"
10702
- },
10703
- "yes": {
10704
- "char": "y",
10705
- "description": "Skip the confirmation prompt",
10706
- "name": "yes",
10707
- "allowNo": false,
10708
- "type": "boolean"
10709
12830
  }
10710
12831
  },
10711
12832
  "hasDynamicHelp": false,
10712
12833
  "hiddenAliases": [],
10713
- "id": "push:integration:delete",
12834
+ "id": "scheduler:disable",
10714
12835
  "pluginAlias": "@norbix.ai/cli",
10715
12836
  "pluginName": "@norbix.ai/cli",
10716
12837
  "pluginType": "core",
@@ -10720,23 +12841,22 @@
10720
12841
  "relativePath": [
10721
12842
  "dist",
10722
12843
  "commands",
10723
- "push",
10724
- "integration",
10725
- "delete.js"
12844
+ "scheduler",
12845
+ "disable.js"
10726
12846
  ]
10727
12847
  },
10728
- "push:integration:disable": {
12848
+ "scheduler:enable": {
10729
12849
  "aliases": [],
10730
12850
  "args": {
10731
12851
  "id": {
10732
- "description": "Integration ID",
12852
+ "description": "Task ID",
10733
12853
  "name": "id",
10734
12854
  "required": true
10735
12855
  }
10736
12856
  },
10737
- "description": "Turn a push integration off",
12857
+ "description": "Enable a scheduler task",
10738
12858
  "examples": [
10739
- "<%= config.bin %> push integration disable 66b2f0a1..."
12859
+ "<%= config.bin %> scheduler enable 66b2f0a1..."
10740
12860
  ],
10741
12861
  "flags": {
10742
12862
  "json": {
@@ -10803,7 +12923,7 @@
10803
12923
  },
10804
12924
  "hasDynamicHelp": false,
10805
12925
  "hiddenAliases": [],
10806
- "id": "push:integration:disable",
12926
+ "id": "scheduler:enable",
10807
12927
  "pluginAlias": "@norbix.ai/cli",
10808
12928
  "pluginName": "@norbix.ai/cli",
10809
12929
  "pluginType": "core",
@@ -10813,23 +12933,22 @@
10813
12933
  "relativePath": [
10814
12934
  "dist",
10815
12935
  "commands",
10816
- "push",
10817
- "integration",
10818
- "disable.js"
12936
+ "scheduler",
12937
+ "enable.js"
10819
12938
  ]
10820
12939
  },
10821
- "push:integration:enable": {
12940
+ "scheduler:get": {
10822
12941
  "aliases": [],
10823
12942
  "args": {
10824
12943
  "id": {
10825
- "description": "Integration ID",
12944
+ "description": "Task ID",
10826
12945
  "name": "id",
10827
12946
  "required": true
10828
12947
  }
10829
12948
  },
10830
- "description": "Turn a push integration on",
12949
+ "description": "Show one scheduler task",
10831
12950
  "examples": [
10832
- "<%= config.bin %> push integration enable 66b2f0a1..."
12951
+ "<%= config.bin %> scheduler get 66b2f0a1..."
10833
12952
  ],
10834
12953
  "flags": {
10835
12954
  "json": {
@@ -10896,7 +13015,7 @@
10896
13015
  },
10897
13016
  "hasDynamicHelp": false,
10898
13017
  "hiddenAliases": [],
10899
- "id": "push:integration:enable",
13018
+ "id": "scheduler:get",
10900
13019
  "pluginAlias": "@norbix.ai/cli",
10901
13020
  "pluginName": "@norbix.ai/cli",
10902
13021
  "pluginType": "core",
@@ -10906,17 +13025,16 @@
10906
13025
  "relativePath": [
10907
13026
  "dist",
10908
13027
  "commands",
10909
- "push",
10910
- "integration",
10911
- "enable.js"
13028
+ "scheduler",
13029
+ "get.js"
10912
13030
  ]
10913
13031
  },
10914
- "push:integration:test": {
13032
+ "scheduler:list": {
10915
13033
  "aliases": [],
10916
13034
  "args": {},
10917
- "description": "Send a test push through an integration\n\nPoint this at the Fake integration while you are developing — it accepts the\nsend and contacts no push service, so nothing reaches a real device.",
13035
+ "description": "List scheduler tasks",
10918
13036
  "examples": [
10919
- "<%= config.bin %> push integration test --integration 66b2f0a1... --token dGVzdA== --family Ios"
13037
+ "<%= config.bin %> scheduler list"
10920
13038
  ],
10921
13039
  "flags": {
10922
13040
  "json": {
@@ -10980,39 +13098,24 @@
10980
13098
  "multiple": false,
10981
13099
  "type": "option"
10982
13100
  },
10983
- "integration": {
10984
- "description": "Integration ID to send through",
10985
- "name": "integration",
10986
- "required": true,
10987
- "hasDynamicHelp": false,
10988
- "multiple": false,
10989
- "type": "option"
10990
- },
10991
- "token": {
10992
- "description": "Device token to send the test to",
10993
- "name": "token",
13101
+ "page-size": {
13102
+ "description": "Records per page",
13103
+ "name": "page-size",
10994
13104
  "hasDynamicHelp": false,
10995
13105
  "multiple": false,
10996
13106
  "type": "option"
10997
13107
  },
10998
- "family": {
10999
- "description": "Which platform the token came from",
11000
- "name": "family",
13108
+ "after": {
13109
+ "description": "Cursor: fetch the page after this item",
13110
+ "name": "after",
11001
13111
  "hasDynamicHelp": false,
11002
13112
  "multiple": false,
11003
- "options": [
11004
- "Ios",
11005
- "Android",
11006
- "Chrome",
11007
- "Safari",
11008
- "Expo"
11009
- ],
11010
13113
  "type": "option"
11011
13114
  }
11012
13115
  },
11013
13116
  "hasDynamicHelp": false,
11014
13117
  "hiddenAliases": [],
11015
- "id": "push:integration:test",
13118
+ "id": "scheduler:list",
11016
13119
  "pluginAlias": "@norbix.ai/cli",
11017
13120
  "pluginName": "@norbix.ai/cli",
11018
13121
  "pluginType": "core",
@@ -11022,11 +13125,10 @@
11022
13125
  "relativePath": [
11023
13126
  "dist",
11024
13127
  "commands",
11025
- "push",
11026
- "integration",
11027
- "test.js"
13128
+ "scheduler",
13129
+ "list.js"
11028
13130
  ]
11029
13131
  }
11030
13132
  },
11031
- "version": "1.0.0"
13133
+ "version": "1.1.0"
11032
13134
  }