ec.fdk 0.8.8 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,7 +29,7 @@ Start by calling `fdk` with your environment (`stage` | `live`), then method cha
29
29
  import { fdk } from 'ec.fdk';
30
30
 
31
31
  fdk('stage') // choose stage environment
32
- .dm('83cc6374') // select datamanager via short id
32
+ .dm('<shortID>') // select datamanager via short id
33
33
  .model('muffin') // select model muffin
34
34
  .entryList() // load entry list
35
35
  .then((list) => {
@@ -47,7 +47,7 @@ The act function converts a single object param into a fetch request:
47
47
  const muffins = await act({
48
48
  action: 'entryList',
49
49
  env: 'stage',
50
- dmShortID: '83cc6374',
50
+ dmShortID: '<shortID>',
51
51
  model: 'muffin',
52
52
  });
53
53
  ```
@@ -73,7 +73,7 @@ Then use the hook:
73
73
  ```js
74
74
  const config = {
75
75
  env: 'stage',
76
- dmShortID: '83cc6374',
76
+ dmShortID: '<shortID>',
77
77
  };
78
78
 
79
79
  function App() {
@@ -116,41 +116,31 @@ ec.fdk <command> [options]
116
116
  | `deleteEntry` | Delete an entry | `--dm`, `--model`, `--id` |
117
117
  | `getSchema` | Get model schema | `--dm`, `--model` |
118
118
 
119
- #### Admin list commands
120
-
121
- | Command | Description | Required flags |
122
- | ---------------- | ------------------------- | -------------- |
123
- | `login` | Login with ec credentials | — |
124
- | `dmList` | List datamanagers | — |
125
- | `modelList` | List models | `--id` (DM UUID) |
126
- | `getDatamanager` | Get a datamanager | `--id` (DM UUID) |
127
- | `resourceList` | List resources | `--resource`, optional `--subdomain` |
128
- | `getStats` | Get datamanager stats | — |
129
- | `getHistory` | Get dm-history entries | — |
130
-
131
- #### Datamanager CRUD
119
+ #### Datamanager (`--id` = DM UUID)
132
120
 
133
121
  | Command | Description | Required flags |
134
122
  | ------------------- | -------------------- | -------------- |
123
+ | `dmList` | List datamanagers | — |
124
+ | `getDatamanager` | Get a datamanager | `--id` |
135
125
  | `createDatamanager` | Create a datamanager | `--data` |
136
- | `editDatamanager` | Edit a datamanager | `--id`, `--data` |
126
+ | `editDatamanager` | Edit a datamanager (full PUT) | `--id`, `--data` |
137
127
  | `deleteDatamanager` | Delete a datamanager | `--id` |
128
+ | `getStats` | Get datamanager stats | — |
138
129
 
139
- #### Model CRUD (`--id` = DM UUID)
130
+ #### Model (`--id` = DM UUID)
140
131
 
141
132
  | Command | Description | Required flags |
142
133
  | ------------- | -------------- | -------------- |
134
+ | `modelList` | List models | `--id` |
143
135
  | `createModel` | Create a model | `--id`, `--data` |
144
136
  | `editModel` | Edit a model | `--id`, `--rid`, `--data` |
145
137
  | `deleteModel` | Delete a model | `--id`, `--rid` |
146
138
 
147
- #### Template CRUD
139
+ #### Template
148
140
 
149
141
  | Command | Description | Required flags |
150
142
  | ---------------- | ----------------- | -------------- |
151
143
  | `createTemplate` | Create a template | `--data` |
152
- | `editTemplate` | Edit a template | `--rid`, `--data` |
153
- | `deleteTemplate` | Delete a template | `--rid` |
154
144
 
155
145
  #### Asset Group (`--id` = DM UUID)
156
146
 
@@ -171,7 +161,7 @@ ec.fdk <command> [options]
171
161
  | -------------- | ---------------- | -------------- |
172
162
  | `editDmClient` | Edit a DM client | `--id`, `--rid`, `--data` |
173
163
 
174
- #### Role CRUD (`--id` = DM UUID)
164
+ #### Role (`--id` = DM UUID)
175
165
 
176
166
  | Command | Description | Required flags |
177
167
  | ------------ | ------------- | -------------- |
@@ -224,6 +214,34 @@ ec.fdk <command> [options]
224
214
  | `createToken` | Create a token | `--account-id` |
225
215
  | `deleteToken` | Delete a token | `--account-id`, `--rid` |
226
216
 
217
+ #### Other
218
+
219
+ | Command | Description | Required flags |
220
+ | -------------- | ------------------------- | -------------- |
221
+ | `login` | Login with ec credentials | — |
222
+ | `resourceList` | List any resource type | `--resource`, `-f` for query params |
223
+ | `resourceGet` | Get a single resource | `--resource`, `-f` for identifying params |
224
+ | `resourceEdit` | Edit a single resource | `--resource`, `-f` for identifying params, `--data` |
225
+ | `resourceDelete` | Delete a single resource | `--resource`, `-f` for identifying params |
226
+ | `getHistory` | Get dm-history entries | `-f shortID=<shortID>` |
227
+
228
+ ##### `resourceList` resource types
229
+
230
+ | `--resource` | `--subdomain` | Typical filters |
231
+ | --- | --- | --- |
232
+ | `model` | — | `-f dataManagerID=<dataManagerID>` |
233
+ | `assetgroup` | — | `-f dataManagerID=<dataManagerID>` |
234
+ | `client` | — | `-f dataManagerID=<dataManagerID>` |
235
+ | `role` | — | `-f dataManagerID=<dataManagerID>` |
236
+ | `account` | — | `-f dataManagerID=<dataManagerID>` |
237
+ | `template` | — | — |
238
+ | `tag` | — | `-f dataManagerID=<dataManagerID>` |
239
+ | `account` | `accounts` | — |
240
+ | `client` | `accounts` | — |
241
+ | `group` | `accounts` | — |
242
+ | `invite` | `accounts` | — |
243
+ | `account/tokens` | `accounts` | `-f accountID=<accountID>` |
244
+
227
245
  ### Options
228
246
 
229
247
  | Option | Description |
@@ -235,8 +253,8 @@ ec.fdk <command> [options]
235
253
  | `--rid <id>` | Resource ID (model, template, role, client, asset group, invite, etc.) |
236
254
  | `--account-id <id>` | Account ID |
237
255
  | `--assetgroup <name>` | Asset group name (for `editAsset`) |
238
- | `--resource <name>` | Resource name (for `resourceList`) |
239
- | `--subdomain <name>` | Subdomain override (for `resourceList`) |
256
+ | `--resource <name>` | Resource name (for `resource*` commands) |
257
+ | `--subdomain <name>` | Subdomain override (for `resource*` commands) |
240
258
  | `--data <json>` | JSON data (for create/edit, or pipe via stdin) |
241
259
  | `-s, --size <n>` | Page size for list |
242
260
  | `-p, --page <n>` | Page number for list |
@@ -247,6 +265,26 @@ ec.fdk <command> [options]
247
265
  | `-v, --version` | Show version |
248
266
  | `-h, --help` | Show help |
249
267
 
268
+ ### Placeholders
269
+
270
+ All examples use `<PLACEHOLDER>` values — replace them with your own resource IDs.
271
+
272
+ | Placeholder | Flag | Resource |
273
+ | --- | --- | --- |
274
+ | `<shortID>` | `--dm` | [Datamanager](https://doc.entrecode.de/datamanager/resources/datamanager/) |
275
+ | `<dataManagerID>` | `--id` | [Datamanager](https://doc.entrecode.de/datamanager/resources/datamanager/) |
276
+ | `<entryID>` | `--id` | [Model](https://doc.entrecode.de/datamanager/resources/model/) |
277
+ | `<modelID>` | `--rid` | [Model](https://doc.entrecode.de/datamanager/resources/model/) |
278
+ | `<assetGroup>` | `--rid` / `--assetgroup` | [Asset Group](https://doc.entrecode.de/datamanager/resources/dm-assetgroup/) |
279
+ | `<assetID>` | `--rid` | [Asset](https://doc.entrecode.de/datamanager/resources/asset/) |
280
+ | `<clientID>` | `--rid` | [DM Client](https://doc.entrecode.de/datamanager/resources/dm-client/) / [Account Client](https://doc.entrecode.de/account/resources/client/) |
281
+ | `<roleID>` | `--rid` | [Role](https://doc.entrecode.de/datamanager/resources/dm-role/) |
282
+ | `<accountID>` | `--account-id` | [DM Account](https://doc.entrecode.de/datamanager/resources/dm-account/) / [Account](https://doc.entrecode.de/account/resources/account/) |
283
+ | `<groupID>` | `--rid` | [Group](https://doc.entrecode.de/account/resources/group/) |
284
+ | `<inviteID>` | `--rid` | [Invite](https://doc.entrecode.de/account/resources/invite/) |
285
+ | `<tokenID>` | `--rid` | [Token](https://doc.entrecode.de/account/resources/token/) |
286
+ | `<collectionID>` | `--data` | [Template](https://doc.entrecode.de/datamanager/resources/dm-template/) |
287
+
250
288
  ### Examples
251
289
 
252
290
  ```sh
@@ -257,129 +295,133 @@ ec.fdk login -e stage
257
295
  ec.fdk dmList -e stage
258
296
 
259
297
  # Get a single datamanager
260
- ec.fdk getDatamanager -e stage --id 73538731-4ac3-4a1a-b3b5-e31d09e94d42
298
+ ec.fdk getDatamanager -e stage --id <dataManagerID>
261
299
 
262
300
  # List models of a datamanager
263
- ec.fdk modelList -e stage --id 73538731-4ac3-4a1a-b3b5-e31d09e94d42
301
+ ec.fdk modelList -e stage --id <dataManagerID>
264
302
 
265
303
  # Filter models by title
266
- ec.fdk modelList --id 73538731-4ac3-4a1a-b3b5-e31d09e94d42 -f title~=muffin
304
+ ec.fdk modelList --id <dataManagerID> -f title~=muffin
267
305
 
268
306
  # List entries
269
- ec.fdk entryList -d 83cc6374 -m muffin
307
+ ec.fdk entryList -d <shortID> -m muffin
270
308
 
271
309
  # List with pagination
272
- ec.fdk entryList -d 83cc6374 -m muffin -s 10 -p 2
310
+ ec.fdk entryList -d <shortID> -m muffin -s 10 -p 2
273
311
 
274
312
  # Get a single entry
275
- ec.fdk getEntry -d 83cc6374 -m muffin -i fZctZXIeRJ
313
+ ec.fdk getEntry -d <shortID> -m muffin -i <entryID>
276
314
 
277
315
  # Create an entry
278
- ec.fdk createEntry -d 83cc6374 -m muffin --data '{"name":"new muffin","amazement_factor":10}'
316
+ ec.fdk createEntry -d <shortID> -m muffin --data '{"name":"new muffin","amazement_factor":10}'
279
317
 
280
318
  # Create via stdin pipe
281
- echo '{"name":"piped muffin","amazement_factor":10}' | ec.fdk createEntry -d 83cc6374 -m muffin
319
+ echo '{"name":"piped muffin","amazement_factor":10}' | ec.fdk createEntry -d <shortID> -m muffin
282
320
 
283
321
  # Edit an entry
284
- ec.fdk editEntry -d 83cc6374 -m muffin -i fZctZXIeRJ --data '{"name":"edited"}'
322
+ ec.fdk editEntry -d <shortID> -m muffin -i <entryID> --data '{"name":"edited"}'
285
323
 
286
324
  # Delete an entry
287
- ec.fdk deleteEntry -d 83cc6374 -m muffin -i fZctZXIeRJ
325
+ ec.fdk deleteEntry -d <shortID> -m muffin -i <entryID>
288
326
 
289
327
  # Get model schema
290
- ec.fdk getSchema -d 83cc6374 -m muffin
328
+ ec.fdk getSchema -d <shortID> -m muffin
291
329
 
292
330
  # Filter entries (repeatable -f for arbitrary query params)
293
- ec.fdk entryList -d 83cc6374 -m muffin -f name~=chocolate
294
- ec.fdk entryList -d 83cc6374 -m muffin -f amazement_factorFrom=5 -f amazement_factorTo=10
295
- ec.fdk entryList -d 83cc6374 -m muffin -f createdFrom=2024-01-01
331
+ ec.fdk entryList -d <shortID> -m muffin -f name~=chocolate
332
+ ec.fdk entryList -d <shortID> -m muffin -f amazement_factorFrom=5 -f amazement_factorTo=10
333
+ ec.fdk entryList -d <shortID> -m muffin -f createdFrom=2024-01-01
296
334
 
297
335
  # Filter datamanagers
298
- ec.fdk dmList -f title~=ec-admin
336
+ ec.fdk dmList -f title~=myproject
299
337
 
300
338
  # Pipe into jq
301
- ec.fdk entryList -d 83cc6374 -m muffin | jq '.items | length'
339
+ ec.fdk entryList -d <shortID> -m muffin | jq '.items | length'
302
340
  ```
303
341
 
304
342
  ### Admin examples
305
343
 
306
344
  ```sh
307
- # Get datamanager stats
345
+ # Datamanager stats
308
346
  ec.fdk getStats
309
347
 
310
- # Get dm-history entries
311
- ec.fdk getHistory -s 10
348
+ # dm-history (requires shortID filter)
349
+ ec.fdk getHistory -f shortID=<shortID> -s 10
312
350
 
313
- # List templates
351
+ # List any resource type
314
352
  ec.fdk resourceList --resource template -s 5
315
-
316
- # List resources with custom subdomain
317
353
  ec.fdk resourceList --resource client --subdomain accounts
318
354
 
319
- # Create a datamanager
320
- ec.fdk createDatamanager --data '{"title":"My DM","config":{}}'
321
-
322
- # Edit a datamanager
323
- ec.fdk editDatamanager --id <DM-UUID> --data '{"title":"New Title"}'
324
-
325
- # Delete a datamanager
326
- ec.fdk deleteDatamanager --id <DM-UUID>
355
+ # Generic get / edit / delete (works with any resource type)
356
+ ec.fdk resourceGet --resource model -f dataManagerID=<dataManagerID> -f modelID=<modelID>
357
+ ec.fdk resourceGet --resource group --subdomain accounts -f groupID=<groupID>
358
+ ec.fdk resourceEdit --resource invite --subdomain accounts -f invite=<inviteID> --data '{"email":"user@example.com","permissions":["dm-read"],"groups":[]}'
359
+ ec.fdk resourceDelete --resource role -f dataManagerID=<dataManagerID> -f roleID=<roleID>
327
360
 
328
- # Create a model
329
- ec.fdk createModel --id <DM-UUID> --data '{"title":"article","fields":[...]}'
330
-
331
- # Edit a model
332
- ec.fdk editModel --id <DM-UUID> --rid <MODEL-ID> --data '{"title":"renamed"}'
333
-
334
- # Delete a model
335
- ec.fdk deleteModel --id <DM-UUID> --rid <MODEL-ID>
336
-
337
- # Create/edit/delete templates
338
- ec.fdk createTemplate --data '{"name":"My Template"}'
339
- ec.fdk editTemplate --rid <TEMPLATE-ID> --data '{"name":"Renamed"}'
340
- ec.fdk deleteTemplate --rid <TEMPLATE-ID>
341
-
342
- # Asset group management
343
- ec.fdk createAssetGroup --id <DM-UUID> --data '{"assetGroupID":"photos"}'
344
- ec.fdk editAssetGroup --id <DM-UUID> --rid <ASSETGROUP-ID> --data '{"public":true}'
345
-
346
- # Edit asset metadata
347
- ec.fdk editAsset --dm 83cc6374 --assetgroup photos --rid <ASSET-ID> --data '{"title":"sunset"}'
348
-
349
- # Edit a DM client
350
- ec.fdk editDmClient --id <DM-UUID> --rid <CLIENT-ID> --data '{"callbackURL":"..."}'
351
-
352
- # Role management
353
- ec.fdk createRole --id <DM-UUID> --data '{"name":"editor"}'
354
- ec.fdk editRole --id <DM-UUID> --rid <ROLE-ID> --data '{"name":"admin"}'
355
- ec.fdk deleteRole --id <DM-UUID> --rid <ROLE-ID>
356
-
357
- # DM account management
358
- ec.fdk editDmAccount --id <DM-UUID> --account-id <ACCOUNT-ID> --data '{"email":"new@example.com"}'
359
- ec.fdk deleteDmAccount --id <DM-UUID> --account-id <ACCOUNT-ID>
360
-
361
- # Account client management
362
- ec.fdk createAccountClient --data '{"clientID":"my-client","callbackURL":"..."}'
363
- ec.fdk editAccountClient --rid <CLIENT-ID> --data '{"callbackURL":"..."}'
364
- ec.fdk deleteAccountClient --rid <CLIENT-ID>
365
-
366
- # Group management
361
+ # Datamanager
362
+ ec.fdk createDatamanager --data '{"title":"My DM","config":{}}'
363
+ ec.fdk deleteDatamanager --id <dataManagerID>
364
+
365
+ # editDatamanager is a full PUT pass the complete resource, not just changed fields.
366
+ # Use getDatamanager + jq to build the payload:
367
+ ec.fdk getDatamanager --id <dataManagerID> \
368
+ | jq '.title = "New Title"' \
369
+ | ec.fdk editDatamanager --id <dataManagerID>
370
+
371
+ # Model
372
+ ec.fdk createModel --id <dataManagerID> --data '{"title":"article","locales":[],"fields":[]}'
373
+ ec.fdk editModel --id <dataManagerID> --rid <modelID> --data '{"title":"renamed","locales":[],"fields":[]}'
374
+ ec.fdk deleteModel --id <dataManagerID> --rid <modelID>
375
+
376
+ # Template
377
+ ec.fdk createTemplate --data '{"name":"My Template","collection":{"id":"<collectionID>","name":"my-collection","order":[],"requests":[]}}'
378
+
379
+ # Asset group
380
+ ec.fdk createAssetGroup --id <dataManagerID> --data '{"assetGroupID":"photos"}'
381
+ ec.fdk editAssetGroup --id <dataManagerID> --rid <assetGroup> --data '{"public":true}'
382
+
383
+ # Asset metadata
384
+ ec.fdk editAsset --dm <shortID> --assetgroup <assetGroup> --rid <assetID> --data '{"title":"sunset"}'
385
+
386
+ # DM client
387
+ ec.fdk editDmClient --id <dataManagerID> --rid <clientID> --data '{"callbackURL":"https://example.com/cb"}'
388
+
389
+ # Role
390
+ ec.fdk createRole --id <dataManagerID> --data '{"name":"editor"}'
391
+ ec.fdk editRole --id <dataManagerID> --rid <roleID> --data '{"name":"admin"}'
392
+ ec.fdk deleteRole --id <dataManagerID> --rid <roleID>
393
+
394
+ # DM account
395
+ ec.fdk editDmAccount --id <dataManagerID> --account-id <accountID> --data '{"email":"user@example.com"}'
396
+ ec.fdk deleteDmAccount --id <dataManagerID> --account-id <accountID>
397
+
398
+ # Account client
399
+ ec.fdk createAccountClient --data '{"clientID":"my-client","callbackURL":"https://example.com/cb"}'
400
+ # editAccountClient is a full PUT — clientID is required in the body.
401
+ ec.fdk resourceList --resource client --subdomain accounts -f clientID=my-client \
402
+ | jq '.items[0]' \
403
+ | jq '.callbackURL = "https://example.com/cb2"' \
404
+ | ec.fdk editAccountClient --rid my-client
405
+ ec.fdk deleteAccountClient --rid <clientID>
406
+
407
+ # Group
367
408
  ec.fdk createGroup --data '{"name":"devs"}'
368
- ec.fdk editGroup --rid <GROUP-ID> --data '{"name":"developers"}'
369
- ec.fdk deleteGroup --rid <GROUP-ID>
409
+ ec.fdk editGroup --rid <groupID> --data '{"name":"developers"}'
410
+ ec.fdk deleteGroup --rid <groupID>
370
411
 
371
- # Invite management
412
+ # Invite
372
413
  ec.fdk createInvite --data '{"email":"user@example.com"}'
373
- ec.fdk editInvite --rid <INVITE-ID> --data '{"permissions":["dm-read"]}'
374
- ec.fdk deleteInvite --rid <INVITE-ID>
414
+ # editInvite is a full PUT — pass the complete resource (email, permissions, groups).
415
+ ec.fdk editInvite --rid <inviteID> --data '{"email":"user@example.com","permissions":["dm-read"],"groups":[]}'
416
+ ec.fdk deleteInvite --rid <inviteID>
375
417
 
376
- # Account management
377
- ec.fdk editAccount --account-id <ACCOUNT-ID> --data '{"email":"updated@example.com"}'
418
+ # Account
419
+ ec.fdk editAccount --account-id <accountID> --data '{"email":"user@example.com"}'
378
420
 
379
- # Token management
380
- ec.fdk listTokens --account-id <ACCOUNT-ID>
381
- ec.fdk createToken --account-id <ACCOUNT-ID>
382
- ec.fdk deleteToken --account-id <ACCOUNT-ID> --rid <TOKEN-ID>
421
+ # Tokens
422
+ ec.fdk listTokens --account-id <accountID>
423
+ ec.fdk createToken --account-id <accountID>
424
+ ec.fdk deleteToken --account-id <accountID> --rid <tokenID>
383
425
  ```
384
426
 
385
427
  The `-f` flag maps directly to [entrecode filter query params](https://doc.entrecode.de/api-basics/#filtering). Common filter suffixes:
@@ -474,9 +516,9 @@ const entryList = await fdk(env).dm(shortID).entryList(model);
474
516
  By default, the second param of ec.fdk `entryList` will just convert the object to url params:
475
517
 
476
518
  ```js
477
- const entryList = await fdk('stage').dm('83cc6374').entryList({ createdTo: '2021-01-18T09:13:47.605Z' });
519
+ const entryList = await fdk('stage').dm('<shortID>').entryList({ createdTo: '2021-01-18T09:13:47.605Z' });
478
520
  /*
479
- https://datamanager.cachena.entrecode.de/api/83cc6374/muffin?
521
+ https://datamanager.cachena.entrecode.de/api/<shortID>/muffin?
480
522
  _list=true&
481
523
  createdTo=2021-01-18T09:13:47.605Z&
482
524
  page=1&
@@ -490,7 +532,7 @@ There is some syntax sugar you can use to get the same behavior as [ec.sdk filte
490
532
 
491
533
  ```js
492
534
  const entryList = await fdk('stage')
493
- .dm('83cc6374')
535
+ .dm('<shortID>')
494
536
  .entryList(filterOptions({ created: { to: '2021-01-18T09:13:47.605Z' } }));
495
537
  ```
496
538