@proveanything/smartlinks 1.9.16 → 1.9.19
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/dist/api/appObjects.d.ts +56 -2
- package/dist/api/appObjects.js +58 -0
- package/dist/api/authKit.js +2 -2
- package/dist/api/http.js +9 -5
- package/dist/containers/types.d.ts +77 -0
- package/dist/containers/types.js +1 -0
- package/dist/docs/API_SUMMARY.md +90 -14
- package/dist/docs/app-objects.md +187 -36
- package/dist/openapi.yaml +200 -69
- package/dist/types/appObjects.d.ts +105 -12
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/widgets.d.ts +71 -0
- package/dist/types/widgets.js +2 -0
- package/docs/API_SUMMARY.md +90 -14
- package/docs/app-objects.md +187 -36
- package/openapi.yaml +200 -69
- package/package.json +1 -1
package/dist/docs/app-objects.md
CHANGED
|
@@ -576,47 +576,81 @@ const usageStats = await app.records.aggregate(collectionId, appId, {
|
|
|
576
576
|
|
|
577
577
|
## Public Create Policies
|
|
578
578
|
|
|
579
|
-
Control who can create objects on **public endpoints** by setting a `publicCreate` policy on your app's config
|
|
579
|
+
Control who can create objects on **public endpoints** by setting a `publicCreate` policy on your app's config document (identified by `appId` within your collection).
|
|
580
|
+
|
|
581
|
+
Set the policy via:
|
|
582
|
+
```
|
|
583
|
+
POST /api/v1/admin/collection/:collectionId/apps/:appId
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
The server reads this document at request time — no cache invalidation or service restart is required.
|
|
580
587
|
|
|
581
588
|
### Policy Structure
|
|
582
589
|
|
|
590
|
+
Each object type (`cases`, `threads`, `records`) has **independent branches** for anonymous and authenticated callers. Each branch carries its own `allow` flag, optional field overrides (`enforce`), and — for records — optional edit-token config (`edit`).
|
|
591
|
+
|
|
583
592
|
```typescript
|
|
584
593
|
interface PublicCreatePolicy {
|
|
585
|
-
cases?:
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
+
cases?: PublicCreateObjectRule
|
|
595
|
+
threads?: PublicCreateObjectRule
|
|
596
|
+
records?: PublicCreateObjectRule
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
interface PublicCreateObjectRule {
|
|
600
|
+
anonymous?: PublicCreateBranch
|
|
601
|
+
authenticated?: PublicCreateBranch
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
interface PublicCreateBranch {
|
|
605
|
+
/** Whether creation is permitted for this caller class */
|
|
606
|
+
allow: boolean
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Hard overrides merged over the caller's body before writing.
|
|
610
|
+
* Lock down visibility and status regardless of what clients send.
|
|
611
|
+
*/
|
|
612
|
+
enforce?: {
|
|
613
|
+
visibility?: 'public' | 'owner' | 'admin'
|
|
614
|
+
status?: string
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* Anonymous edit-token config — records only.
|
|
619
|
+
* See "Anonymous Edit Tokens" section below.
|
|
620
|
+
*/
|
|
621
|
+
edit?: {
|
|
622
|
+
editToken: boolean
|
|
623
|
+
windowMinutes?: number // omit for no expiry
|
|
594
624
|
}
|
|
595
|
-
threads?: { /* same structure */ }
|
|
596
|
-
records?: { /* same structure */ }
|
|
597
625
|
}
|
|
598
626
|
```
|
|
599
627
|
|
|
628
|
+
#### Visibility enforcement guard-rails
|
|
629
|
+
|
|
630
|
+
The server silently corrects misconfigured visibility values:
|
|
631
|
+
|
|
632
|
+
| Caller type | `enforce.visibility` supplied | Server overrides to |
|
|
633
|
+
|-----------------|-------------------------------|---------------------|
|
|
634
|
+
| `anonymous` | `'owner'` | `'admin'` |
|
|
635
|
+
| `authenticated` | `'public'` | `'owner'` |
|
|
636
|
+
|
|
637
|
+
These guards exist because anonymous callers have no identity to own a record, and `'public'` visibility on authenticated-only objects would be a misconfiguration.
|
|
638
|
+
|
|
600
639
|
### Example Policies
|
|
601
640
|
|
|
602
641
|
**Support tickets from anyone:**
|
|
603
642
|
|
|
604
643
|
```json
|
|
605
644
|
{
|
|
606
|
-
"
|
|
607
|
-
"
|
|
608
|
-
"anonymous": true,
|
|
609
|
-
"authenticated": true
|
|
610
|
-
},
|
|
611
|
-
"enforce": {
|
|
645
|
+
"publicCreate": {
|
|
646
|
+
"cases": {
|
|
612
647
|
"anonymous": {
|
|
613
|
-
"
|
|
614
|
-
"status": "open"
|
|
615
|
-
"category": "support"
|
|
648
|
+
"allow": true,
|
|
649
|
+
"enforce": { "visibility": "public", "status": "open" }
|
|
616
650
|
},
|
|
617
651
|
"authenticated": {
|
|
618
|
-
"
|
|
619
|
-
"status": "open"
|
|
652
|
+
"allow": true,
|
|
653
|
+
"enforce": { "visibility": "owner", "status": "open" }
|
|
620
654
|
}
|
|
621
655
|
}
|
|
622
656
|
}
|
|
@@ -627,15 +661,35 @@ interface PublicCreatePolicy {
|
|
|
627
661
|
|
|
628
662
|
```json
|
|
629
663
|
{
|
|
630
|
-
"
|
|
631
|
-
"
|
|
632
|
-
"anonymous": false,
|
|
633
|
-
"authenticated": true
|
|
634
|
-
},
|
|
635
|
-
"enforce": {
|
|
664
|
+
"publicCreate": {
|
|
665
|
+
"threads": {
|
|
666
|
+
"anonymous": { "allow": false },
|
|
636
667
|
"authenticated": {
|
|
637
|
-
"
|
|
638
|
-
"status": "open"
|
|
668
|
+
"allow": true,
|
|
669
|
+
"enforce": { "visibility": "public", "status": "open" }
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
**Anonymous record creation with edit token (30-minute window):**
|
|
677
|
+
|
|
678
|
+
```json
|
|
679
|
+
{
|
|
680
|
+
"publicCreate": {
|
|
681
|
+
"records": {
|
|
682
|
+
"anonymous": {
|
|
683
|
+
"allow": true,
|
|
684
|
+
"enforce": { "visibility": "public", "status": "pending" },
|
|
685
|
+
"edit": {
|
|
686
|
+
"editToken": true,
|
|
687
|
+
"windowMinutes": 30
|
|
688
|
+
}
|
|
689
|
+
},
|
|
690
|
+
"authenticated": {
|
|
691
|
+
"allow": true,
|
|
692
|
+
"enforce": { "visibility": "owner", "status": "pending" }
|
|
639
693
|
}
|
|
640
694
|
}
|
|
641
695
|
}
|
|
@@ -646,16 +700,113 @@ interface PublicCreatePolicy {
|
|
|
646
700
|
|
|
647
701
|
```json
|
|
648
702
|
{
|
|
649
|
-
"
|
|
650
|
-
"
|
|
651
|
-
"anonymous": false,
|
|
652
|
-
"authenticated": false
|
|
703
|
+
"publicCreate": {
|
|
704
|
+
"records": {
|
|
705
|
+
"anonymous": { "allow": false },
|
|
706
|
+
"authenticated": { "allow": false }
|
|
653
707
|
}
|
|
654
708
|
}
|
|
655
709
|
}
|
|
656
710
|
```
|
|
657
711
|
|
|
658
|
-
The `enforce` values are **merged over** the caller's request body, so you can lock down fields like `visibility
|
|
712
|
+
The `enforce` values are **merged over** the caller's request body, so you can lock down fields like `visibility` and `status` regardless of what clients send.
|
|
713
|
+
|
|
714
|
+
---
|
|
715
|
+
|
|
716
|
+
## Anonymous Edit Tokens
|
|
717
|
+
|
|
718
|
+
Enables an anonymous caller to amend a record they just created — without authentication — by presenting a short-lived secret token.
|
|
719
|
+
|
|
720
|
+
Designed for flows where a client needs to make a follow-up update before a server-side process locks the record. Common examples: payment + confirmation, multi-step forms, IoT device registration.
|
|
721
|
+
|
|
722
|
+
### How It Works
|
|
723
|
+
|
|
724
|
+
```
|
|
725
|
+
1. Configure — set publicCreate.records.anonymous.edit.editToken: true in app config
|
|
726
|
+
2. Create — anonymous POST /records returns { ...record, editToken: "3f8a2c1e..." }
|
|
727
|
+
Token is stored in record's admin zone; never visible again
|
|
728
|
+
3. Amend — PATCH /records/:recordId with X-Edit-Token header
|
|
729
|
+
Only the data zone may be modified
|
|
730
|
+
4. Expiry — if windowMinutes is set, token is rejected after that many minutes
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
### SDK Usage
|
|
734
|
+
|
|
735
|
+
```typescript
|
|
736
|
+
import { app } from '@proveanything/smartlinks';
|
|
737
|
+
|
|
738
|
+
// Step 1: Create the record (anonymous caller — no auth token)
|
|
739
|
+
const response = await app.records.create(collectionId, appId, {
|
|
740
|
+
recordType: 'payment',
|
|
741
|
+
visibility: 'public',
|
|
742
|
+
data: { amount: 9900, currency: 'USD' },
|
|
743
|
+
})
|
|
744
|
+
|
|
745
|
+
// editToken is present only when the policy has editToken: true
|
|
746
|
+
const { editToken } = response // ⚠️ store immediately — returned once only
|
|
747
|
+
|
|
748
|
+
// Step 2: After external confirmation (e.g. payment gateway callback)
|
|
749
|
+
const updated = await app.records.updateWithToken(
|
|
750
|
+
collectionId,
|
|
751
|
+
appId,
|
|
752
|
+
response.id,
|
|
753
|
+
{ amount: 9900, currency: 'USD', transactionId: 'txn_abc123' },
|
|
754
|
+
editToken,
|
|
755
|
+
)
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
`app.records.updateWithToken()` sends the token as the `X-Edit-Token` request header on the public PATCH endpoint — no auth token needed.
|
|
759
|
+
|
|
760
|
+
### Creation Response Shape
|
|
761
|
+
|
|
762
|
+
```typescript
|
|
763
|
+
interface CreateRecordResponse extends AppRecord {
|
|
764
|
+
/**
|
|
765
|
+
* Present only on anonymous creation when editToken policy is enabled.
|
|
766
|
+
* Returned ONCE — store it client-side immediately.
|
|
767
|
+
*/
|
|
768
|
+
editToken?: string
|
|
769
|
+
}
|
|
770
|
+
```
|
|
771
|
+
|
|
772
|
+
Example creation response:
|
|
773
|
+
|
|
774
|
+
```json
|
|
775
|
+
{
|
|
776
|
+
"id": "a1b2c3d4-...",
|
|
777
|
+
"recordType": "payment",
|
|
778
|
+
"status": "pending",
|
|
779
|
+
"visibility": "public",
|
|
780
|
+
"data": { "amount": 9900, "currency": "USD" },
|
|
781
|
+
"createdAt": "2026-04-16T12:00:00.000Z",
|
|
782
|
+
"editToken": "3f8a2c1e..."
|
|
783
|
+
}
|
|
784
|
+
```
|
|
785
|
+
|
|
786
|
+
### Amendment Scope
|
|
787
|
+
|
|
788
|
+
Anonymous token updates may only modify the **`data` zone**. The following are immutable via this path:
|
|
789
|
+
|
|
790
|
+
- `owner`, `admin` zones
|
|
791
|
+
- `status`, `visibility`
|
|
792
|
+
- All indexed fields (`recordType`, `ref`, `startsAt`, `expiresAt`, etc.)
|
|
793
|
+
|
|
794
|
+
### Error Codes
|
|
795
|
+
|
|
796
|
+
| HTTP | `errorCode` | Meaning |
|
|
797
|
+
|------|------------------------|--------------------------------------------------|
|
|
798
|
+
| 401 | `UNAUTHORIZED` | No auth token and no `X-Edit-Token` header |
|
|
799
|
+
| 403 | `FORBIDDEN` | `editToken` policy not enabled for this app |
|
|
800
|
+
| 403 | `FORBIDDEN` | Token does not match |
|
|
801
|
+
| 403 | `EDIT_WINDOW_EXPIRED` | `windowMinutes` elapsed since record creation |
|
|
802
|
+
| 404 | `NOT_FOUND` | Record does not exist |
|
|
803
|
+
|
|
804
|
+
### Security Notes
|
|
805
|
+
|
|
806
|
+
- The token is stored in `admin.editToken` and is **always stripped** from public and owner responses — it cannot be read back after creation.
|
|
807
|
+
- Token comparison uses `crypto.timingSafeEqual` to prevent timing-based oracle attacks.
|
|
808
|
+
- The token is a 32-byte (`crypto.randomBytes(32)`) hex string — 256 bits of entropy.
|
|
809
|
+
- For sensitive flows, combine `windowMinutes` with a server-side process that removes or overwrites the token once the record is confirmed.
|
|
659
810
|
|
|
660
811
|
---
|
|
661
812
|
|
package/dist/openapi.yaml
CHANGED
|
@@ -8380,6 +8380,65 @@ paths:
|
|
|
8380
8380
|
description: Unauthorized
|
|
8381
8381
|
404:
|
|
8382
8382
|
description: Not found
|
|
8383
|
+
/authkit/{clientId}/auth/magic-link/send:
|
|
8384
|
+
post:
|
|
8385
|
+
tags:
|
|
8386
|
+
- authKit
|
|
8387
|
+
summary: Login with email + password (public).
|
|
8388
|
+
operationId: authKit_sendMagicLink
|
|
8389
|
+
security: []
|
|
8390
|
+
parameters:
|
|
8391
|
+
- name: clientId
|
|
8392
|
+
in: path
|
|
8393
|
+
required: true
|
|
8394
|
+
schema:
|
|
8395
|
+
type: string
|
|
8396
|
+
responses:
|
|
8397
|
+
200:
|
|
8398
|
+
description: Success
|
|
8399
|
+
content:
|
|
8400
|
+
application/json:
|
|
8401
|
+
schema:
|
|
8402
|
+
$ref: "#/components/schemas/MagicLinkSendResponse"
|
|
8403
|
+
400:
|
|
8404
|
+
description: Bad request
|
|
8405
|
+
401:
|
|
8406
|
+
description: Unauthorized
|
|
8407
|
+
404:
|
|
8408
|
+
description: Not found
|
|
8409
|
+
requestBody:
|
|
8410
|
+
required: true
|
|
8411
|
+
content:
|
|
8412
|
+
application/json:
|
|
8413
|
+
schema:
|
|
8414
|
+
type: object
|
|
8415
|
+
additionalProperties: true
|
|
8416
|
+
/authkit/{clientId}/auth/magic-link/verify:
|
|
8417
|
+
post:
|
|
8418
|
+
tags:
|
|
8419
|
+
- authKit
|
|
8420
|
+
summary: Google OAuth login (public).
|
|
8421
|
+
operationId: authKit_verifyMagicLink
|
|
8422
|
+
security: []
|
|
8423
|
+
parameters:
|
|
8424
|
+
- name: clientId
|
|
8425
|
+
in: path
|
|
8426
|
+
required: true
|
|
8427
|
+
schema:
|
|
8428
|
+
type: string
|
|
8429
|
+
responses:
|
|
8430
|
+
200:
|
|
8431
|
+
description: Success
|
|
8432
|
+
content:
|
|
8433
|
+
application/json:
|
|
8434
|
+
schema:
|
|
8435
|
+
$ref: "#/components/schemas/MagicLinkVerifyResponse"
|
|
8436
|
+
400:
|
|
8437
|
+
description: Bad request
|
|
8438
|
+
401:
|
|
8439
|
+
description: Unauthorized
|
|
8440
|
+
404:
|
|
8441
|
+
description: Not found
|
|
8383
8442
|
/authkit/{clientId}/auth/phone/send-code:
|
|
8384
8443
|
post:
|
|
8385
8444
|
tags:
|
|
@@ -8616,65 +8675,6 @@ paths:
|
|
|
8616
8675
|
description: Unauthorized
|
|
8617
8676
|
404:
|
|
8618
8677
|
description: Not found
|
|
8619
|
-
/authkit/{clientId}/magic-link/send:
|
|
8620
|
-
post:
|
|
8621
|
-
tags:
|
|
8622
|
-
- authKit
|
|
8623
|
-
summary: Login with email + password (public).
|
|
8624
|
-
operationId: authKit_sendMagicLink
|
|
8625
|
-
security: []
|
|
8626
|
-
parameters:
|
|
8627
|
-
- name: clientId
|
|
8628
|
-
in: path
|
|
8629
|
-
required: true
|
|
8630
|
-
schema:
|
|
8631
|
-
type: string
|
|
8632
|
-
responses:
|
|
8633
|
-
200:
|
|
8634
|
-
description: Success
|
|
8635
|
-
content:
|
|
8636
|
-
application/json:
|
|
8637
|
-
schema:
|
|
8638
|
-
$ref: "#/components/schemas/MagicLinkSendResponse"
|
|
8639
|
-
400:
|
|
8640
|
-
description: Bad request
|
|
8641
|
-
401:
|
|
8642
|
-
description: Unauthorized
|
|
8643
|
-
404:
|
|
8644
|
-
description: Not found
|
|
8645
|
-
requestBody:
|
|
8646
|
-
required: true
|
|
8647
|
-
content:
|
|
8648
|
-
application/json:
|
|
8649
|
-
schema:
|
|
8650
|
-
type: object
|
|
8651
|
-
additionalProperties: true
|
|
8652
|
-
/authkit/{clientId}/magic-link/verify:
|
|
8653
|
-
post:
|
|
8654
|
-
tags:
|
|
8655
|
-
- authKit
|
|
8656
|
-
summary: Google OAuth login (public).
|
|
8657
|
-
operationId: authKit_verifyMagicLink
|
|
8658
|
-
security: []
|
|
8659
|
-
parameters:
|
|
8660
|
-
- name: clientId
|
|
8661
|
-
in: path
|
|
8662
|
-
required: true
|
|
8663
|
-
schema:
|
|
8664
|
-
type: string
|
|
8665
|
-
responses:
|
|
8666
|
-
200:
|
|
8667
|
-
description: Success
|
|
8668
|
-
content:
|
|
8669
|
-
application/json:
|
|
8670
|
-
schema:
|
|
8671
|
-
$ref: "#/components/schemas/MagicLinkVerifyResponse"
|
|
8672
|
-
400:
|
|
8673
|
-
description: Bad request
|
|
8674
|
-
401:
|
|
8675
|
-
description: Unauthorized
|
|
8676
|
-
404:
|
|
8677
|
-
description: Not found
|
|
8678
8678
|
/platform/location:
|
|
8679
8679
|
post:
|
|
8680
8680
|
tags:
|
|
@@ -12417,6 +12417,54 @@ paths:
|
|
|
12417
12417
|
description: Unauthorized
|
|
12418
12418
|
404:
|
|
12419
12419
|
description: Not found
|
|
12420
|
+
/{zone}/collection/{collectionId}/app/{appId}/recordse)}/{recordId}:
|
|
12421
|
+
patch:
|
|
12422
|
+
tags:
|
|
12423
|
+
- records
|
|
12424
|
+
summary: records.updateWithToken
|
|
12425
|
+
operationId: records_updateWithToken
|
|
12426
|
+
security: []
|
|
12427
|
+
parameters:
|
|
12428
|
+
- name: zone
|
|
12429
|
+
in: path
|
|
12430
|
+
required: true
|
|
12431
|
+
schema:
|
|
12432
|
+
type: string
|
|
12433
|
+
- name: collectionId
|
|
12434
|
+
in: path
|
|
12435
|
+
required: true
|
|
12436
|
+
schema:
|
|
12437
|
+
type: string
|
|
12438
|
+
- name: appId
|
|
12439
|
+
in: path
|
|
12440
|
+
required: true
|
|
12441
|
+
schema:
|
|
12442
|
+
type: string
|
|
12443
|
+
- name: recordId
|
|
12444
|
+
in: path
|
|
12445
|
+
required: true
|
|
12446
|
+
schema:
|
|
12447
|
+
type: string
|
|
12448
|
+
responses:
|
|
12449
|
+
200:
|
|
12450
|
+
description: Success
|
|
12451
|
+
content:
|
|
12452
|
+
application/json:
|
|
12453
|
+
schema:
|
|
12454
|
+
$ref: "#/components/schemas/AppRecord"
|
|
12455
|
+
400:
|
|
12456
|
+
description: Bad request
|
|
12457
|
+
401:
|
|
12458
|
+
description: Unauthorized
|
|
12459
|
+
404:
|
|
12460
|
+
description: Not found
|
|
12461
|
+
requestBody:
|
|
12462
|
+
required: true
|
|
12463
|
+
content:
|
|
12464
|
+
application/json:
|
|
12465
|
+
schema:
|
|
12466
|
+
type: object
|
|
12467
|
+
additionalProperties: true
|
|
12420
12468
|
/{zone}/collection/{collectionId}/app/{appId}/recordsn)}/aggregate:
|
|
12421
12469
|
post:
|
|
12422
12470
|
tags:
|
|
@@ -12550,7 +12598,7 @@ paths:
|
|
|
12550
12598
|
get:
|
|
12551
12599
|
tags:
|
|
12552
12600
|
- records
|
|
12553
|
-
summary: "
|
|
12601
|
+
summary: "List records with optional query parameters GET /records / export async function list( collectionId: string, appId: stri"
|
|
12554
12602
|
operationId: records_get
|
|
12555
12603
|
security: []
|
|
12556
12604
|
parameters:
|
|
@@ -15602,26 +15650,49 @@ components:
|
|
|
15602
15650
|
type: object
|
|
15603
15651
|
properties:
|
|
15604
15652
|
cases:
|
|
15605
|
-
$ref: "#/components/schemas/
|
|
15653
|
+
$ref: "#/components/schemas/PublicCreateObjectRule"
|
|
15606
15654
|
threads:
|
|
15607
|
-
$ref: "#/components/schemas/
|
|
15655
|
+
$ref: "#/components/schemas/PublicCreateObjectRule"
|
|
15608
15656
|
records:
|
|
15609
|
-
$ref: "#/components/schemas/
|
|
15610
|
-
|
|
15657
|
+
$ref: "#/components/schemas/PublicCreateObjectRule"
|
|
15658
|
+
PublicCreateObjectRule:
|
|
15611
15659
|
type: object
|
|
15612
15660
|
properties:
|
|
15613
|
-
allow:
|
|
15614
|
-
type: object
|
|
15615
|
-
additionalProperties: true
|
|
15616
15661
|
anonymous:
|
|
15617
|
-
$ref: "#/components/schemas/
|
|
15662
|
+
$ref: "#/components/schemas/PublicCreateBranch"
|
|
15618
15663
|
authenticated:
|
|
15619
|
-
$ref: "#/components/schemas/
|
|
15664
|
+
$ref: "#/components/schemas/PublicCreateBranch"
|
|
15665
|
+
PublicCreateBranch:
|
|
15666
|
+
type: object
|
|
15667
|
+
properties:
|
|
15668
|
+
allow:
|
|
15669
|
+
type: boolean
|
|
15620
15670
|
enforce:
|
|
15621
15671
|
type: object
|
|
15622
15672
|
additionalProperties: true
|
|
15673
|
+
visibility:
|
|
15674
|
+
type: string
|
|
15675
|
+
enum:
|
|
15676
|
+
- public
|
|
15677
|
+
- owner
|
|
15678
|
+
- admin
|
|
15679
|
+
status:
|
|
15680
|
+
type: string
|
|
15681
|
+
edit:
|
|
15682
|
+
type: object
|
|
15683
|
+
additionalProperties: true
|
|
15684
|
+
editToken:
|
|
15685
|
+
type: boolean
|
|
15686
|
+
windowMinutes:
|
|
15687
|
+
type: number
|
|
15623
15688
|
required:
|
|
15624
15689
|
- allow
|
|
15690
|
+
- editToken
|
|
15691
|
+
CreateRecordResponse:
|
|
15692
|
+
type: object
|
|
15693
|
+
properties:
|
|
15694
|
+
editToken:
|
|
15695
|
+
type: string
|
|
15625
15696
|
Asset:
|
|
15626
15697
|
type: object
|
|
15627
15698
|
properties:
|
|
@@ -22544,6 +22615,66 @@ components:
|
|
|
22544
22615
|
metadata:
|
|
22545
22616
|
type: object
|
|
22546
22617
|
additionalProperties: true
|
|
22618
|
+
NavigationRequest:
|
|
22619
|
+
type: object
|
|
22620
|
+
properties:
|
|
22621
|
+
appId:
|
|
22622
|
+
type: string
|
|
22623
|
+
deepLink:
|
|
22624
|
+
type: string
|
|
22625
|
+
params:
|
|
22626
|
+
type: object
|
|
22627
|
+
additionalProperties:
|
|
22628
|
+
type: string
|
|
22629
|
+
productId:
|
|
22630
|
+
type: string
|
|
22631
|
+
proofId:
|
|
22632
|
+
type: string
|
|
22633
|
+
required:
|
|
22634
|
+
- appId
|
|
22635
|
+
SmartLinksWidgetProps:
|
|
22636
|
+
type: object
|
|
22637
|
+
properties:
|
|
22638
|
+
collectionId:
|
|
22639
|
+
type: string
|
|
22640
|
+
appId:
|
|
22641
|
+
type: string
|
|
22642
|
+
productId:
|
|
22643
|
+
type: string
|
|
22644
|
+
proofId:
|
|
22645
|
+
type: string
|
|
22646
|
+
user:
|
|
22647
|
+
type: object
|
|
22648
|
+
additionalProperties: true
|
|
22649
|
+
id:
|
|
22650
|
+
type: string
|
|
22651
|
+
email:
|
|
22652
|
+
type: string
|
|
22653
|
+
name:
|
|
22654
|
+
type: string
|
|
22655
|
+
admin:
|
|
22656
|
+
type: boolean
|
|
22657
|
+
SL:
|
|
22658
|
+
type: object
|
|
22659
|
+
additionalProperties: true
|
|
22660
|
+
publicPortalUrl:
|
|
22661
|
+
type: string
|
|
22662
|
+
size:
|
|
22663
|
+
type: string
|
|
22664
|
+
enum:
|
|
22665
|
+
- compact
|
|
22666
|
+
- standard
|
|
22667
|
+
- large
|
|
22668
|
+
lang:
|
|
22669
|
+
type: string
|
|
22670
|
+
translations:
|
|
22671
|
+
type: object
|
|
22672
|
+
additionalProperties:
|
|
22673
|
+
type: string
|
|
22674
|
+
required:
|
|
22675
|
+
- collectionId
|
|
22676
|
+
- appId
|
|
22677
|
+
- SL
|
|
22547
22678
|
AppConfigOptions:
|
|
22548
22679
|
type: object
|
|
22549
22680
|
properties:
|