@riverbankcms/sdk 0.78.0 → 0.79.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 +125 -43
- package/dist/{PreviewEditorSidebar-RIKFQ72L.mjs → PreviewEditorSidebar-56NMJMIK.mjs} +750 -65
- package/dist/{PreviewEditorUI-XO7TUWKK.mjs → PreviewEditorUI-27KJVEET.mjs} +4 -4
- package/dist/SdkPreviewModeRuntime-H4BSP6E7.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +72 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
- package/dist/_dts/api/src/endpoints.d.ts +64 -0
- package/dist/_dts/api/src/index.d.ts +8 -6
- package/dist/_dts/api/src/media.d.ts +8 -1
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +8 -8
- package/dist/_dts/api/src/navigation/identity.d.ts +59 -0
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/api/src/public/types.d.ts +1 -1
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/request.d.ts +3 -11
- package/dist/_dts/api/src/sdkConfig/contracts.d.ts +1 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +8 -1
- package/dist/_dts/api/src/siteIcons.d.ts +128 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +26 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +8 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +21 -20
- package/dist/_dts/api/src/types.d.ts +12 -27
- package/dist/_dts/api/src/webhooks.d.ts +239 -0
- package/dist/_dts/block-form/src/fields/types.d.ts +6 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +3 -2
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +6 -3
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +8 -3
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +7 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +3 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +1 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterLabelSource.d.ts +15 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +50 -0
- package/dist/_dts/blocks/src/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +885 -289
- package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +57 -0
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +69 -22
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +170 -0
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +5 -0
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -1
- package/dist/_dts/blocks/src/system/icons/ids.d.ts +13 -0
- package/dist/_dts/blocks/src/system/icons/index.d.ts +6 -0
- package/dist/_dts/blocks/src/system/icons/presets.d.ts +4 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +18 -0
- package/dist/_dts/blocks/src/system/icons/semantic.d.ts +239 -0
- package/dist/_dts/blocks/src/system/icons/value.d.ts +94 -0
- package/dist/_dts/blocks/src/system/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +4 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +187 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +13 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/schema.d.ts +14 -0
- package/dist/_dts/content-model/src/contentManifest.d.ts +3 -1
- package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +3 -1
- package/dist/_dts/content-model/src/templates/bindingValidation.d.ts +10 -4
- package/dist/_dts/content-model/src/templates/fieldPaths.d.ts +20 -0
- package/dist/_dts/content-model/src/templates/manifestAdapter.d.ts +5 -2
- package/dist/_dts/core/src/branded.d.ts +114 -85
- package/dist/_dts/core/src/csv-types.d.ts +2 -2
- package/dist/_dts/core/src/editor-state.d.ts +7 -7
- package/dist/_dts/core/src/participants.d.ts +2 -2
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +202 -0
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +12 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +12 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +12 -2
- package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +21 -0
- package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +40 -0
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +11 -1
- package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +82 -0
- package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
- package/dist/_dts/media-core/src/fileDomain.d.ts +8 -1
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +5 -2
- package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -1
- package/dist/_dts/media-editor/src/fieldUi.d.ts +5 -0
- package/dist/_dts/media-editor/src/index.d.ts +1 -1
- package/dist/_dts/media-react/src/components/MediaLibrary.d.ts +2 -1
- package/dist/_dts/media-react/src/components/MediaPickerMini.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +17 -0
- package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -0
- package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +3 -3
- package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +7 -0
- package/dist/_dts/sdk/src/cli/commands/push.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +13 -0
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/helpers.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +11 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +6 -6
- package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +5 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +5 -2
- package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +10 -1
- package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/sync/diff.d.ts +9 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +8 -0
- package/dist/_dts/sdk/src/client/types.d.ts +2 -2
- package/dist/_dts/sdk/src/config/content-types.d.ts +7 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +5 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +19 -2
- package/dist/_dts/sdk/src/next/index.d.ts +1 -1
- package/dist/_dts/sdk/src/next/revalidate.d.ts +26 -5
- package/dist/_dts/sdk/src/next/static-params.d.ts +28 -3
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/verify.d.ts +6 -102
- package/dist/_dts/site-commands/src/commands.d.ts +6 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +3 -3
- package/dist/_dts/theme-core/src/schema.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -4
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -0
- package/dist/_dts/ui/src/combobox.d.ts +1 -0
- package/dist/{altcha-B5XGSXP5.mjs → altcha-EKUEQ4RP.mjs} +1 -1
- package/dist/{chunk-F7RTCZYN.mjs → chunk-4HCW7FHJ.mjs} +504 -63
- package/dist/{chunk-SXOLGNMX.mjs → chunk-A3HHFKVT.mjs} +1 -1
- package/dist/{chunk-TXDES5P2.mjs → chunk-GP555I66.mjs} +180 -10
- package/dist/{chunk-SVMMM2NA.mjs → chunk-K2IIF34C.mjs} +79 -5
- package/dist/{chunk-NIDXI46P.mjs → chunk-LCY32PXF.mjs} +1 -1
- package/dist/{chunk-XGB3TDIC.mjs → chunk-R7POPVJR.mjs} +2 -8
- package/dist/{chunk-OECWLDHN.mjs → chunk-V47ZU33I.mjs} +2762 -732
- package/dist/cli/index.mjs +1799 -345
- package/dist/cli/init-docs/content/cli-reference.md +3 -2
- package/dist/cli/init-docs/content/content-management.md +2 -2
- package/dist/cli/init-docs/content/workflow-editor-workflows.md +2 -0
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +138 -0
- package/dist/cli/init-docs/content/workflow-preview-mode.md +68 -2
- package/dist/client/{accordion-EVDEOUPR.mjs → accordion-QLA7KBYO.mjs} +2 -2
- package/dist/client/analytics.mjs +1 -1
- package/dist/client/{bookingForm-DIHBLC64.mjs → bookingForm-PYZIPA5G.mjs} +55 -48
- package/dist/client/bookings.mjs +172 -57
- package/dist/client/{carousel-FEBQHIWI.mjs → carousel-5EIULWBI.mjs} +3 -3
- package/dist/client/{cart-7CKSXAE4.mjs → cart-DOP3FNI4.mjs} +7 -7
- package/dist/client/{checkout-WKYCANLV.mjs → checkout-BVMF6FBV.mjs} +7 -7
- package/dist/client/{chunk-GUK2FPXQ.mjs → chunk-44K2U3QI.mjs} +37 -15
- package/dist/client/{chunk-IVNCUVAV.mjs → chunk-AUJ5DBZJ.mjs} +18 -18
- package/dist/client/{chunk-VPPMNXCF.mjs → chunk-CCNTDRCF.mjs} +2 -2
- package/dist/client/{chunk-36WJCERQ.mjs → chunk-CE7IBGVW.mjs} +3 -1
- package/dist/client/{chunk-2SAVKN2M.mjs → chunk-GG4M2NP6.mjs} +2 -2
- package/dist/client/{chunk-65F47D7Y.mjs → chunk-R5ESWNKX.mjs} +49 -39
- package/dist/client/{chunk-RZDWX7QW.mjs → chunk-TYONZMST.mjs} +1 -1
- package/dist/client/{chunk-OFMSCGNY.mjs → chunk-UDS3NTWA.mjs} +2 -2
- package/dist/client/{chunk-YDSEG6GZ.mjs → chunk-V6M5FCR5.mjs} +2 -2
- package/dist/client/{chunk-F7LHOKEH.mjs → chunk-XSV6KW4D.mjs} +1 -1
- package/dist/client/{chunk-RV6FX7UH.mjs → chunk-YLDYVRZL.mjs} +9 -9
- package/dist/client/{chunk-PD6NBCEY.mjs → chunk-ZFHRN6W2.mjs} +1 -1
- package/dist/client/client.mjs +21501 -19812
- package/dist/client/{courseRegistration-5QF2PHKM.mjs → courseRegistration-E6EAA6NL.mjs} +10 -10
- package/dist/client/{eventCalendar-4ZOSETDU.mjs → eventCalendar-HBG3HAK6.mjs} +9 -9
- package/dist/client/{eventCombined-WQGU7JUX.mjs → eventCombined-6K5ZZWAK.mjs} +9 -9
- package/dist/client/{eventDetails-AYWVUJ5Y.mjs → eventDetails-Q75ICXLT.mjs} +9 -9
- package/dist/client/{eventListing-NT7C6UT5.mjs → eventListing-27P5F7DZ.mjs} +9 -9
- package/dist/client/{eventRegistration-OH24F4ZJ.mjs → eventRegistration-IQ7AMASR.mjs} +9 -9
- package/dist/client/{form-7L42SRBB.mjs → form-JRTD65FN.mjs} +6 -3
- package/dist/client/{headerSection-OZRZNZ52.mjs → headerSection-7FPSSZHS.mjs} +3 -3
- package/dist/client/hooks.mjs +428 -83
- package/dist/client/{locationMap-ZBXRPQ7C.mjs → locationMap-7NGFNYBH.mjs} +3 -3
- package/dist/client/{newsletterForm-SNAGFF2I.mjs → newsletterForm-F3BADCI2.mjs} +2 -2
- package/dist/client/{productDetail-I46BOFGV.mjs → productDetail-V3HP7ITJ.mjs} +7 -7
- package/dist/client/{productList-BOYHTYI6.mjs → productList-L3EGJUF2.mjs} +7 -7
- package/dist/client/rendering/client.mjs +2886 -1513
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2244 -564
- package/dist/client/{shop-XTXPZTKR.mjs → shop-DQUB5E2C.mjs} +7 -7
- package/dist/preview-next/before-render.mjs +65 -1
- package/dist/preview-next/client/runtime.mjs +6 -6
- package/dist/preview-next/middleware.mjs +65 -1
- package/dist/preview-next/tailwind-sources.css +1 -0
- package/dist/sdk-runtime-AF6KXJU4.mjs +8 -0
- package/dist/server/components.mjs +2270 -835
- package/dist/server/config-template-validation.mjs +221 -15
- package/dist/server/config-validation.mjs +426 -77
- package/dist/server/config.mjs +426 -77
- package/dist/server/data.mjs +427 -82
- package/dist/server/index.mjs +94 -10
- package/dist/server/next/revalidate.mjs +229 -34
- package/dist/server/next.mjs +2439 -888
- package/dist/server/page-converter.mjs +335 -74
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2281 -846
- package/dist/server/rendering.mjs +2298 -860
- package/dist/server/routing.mjs +860 -113
- package/dist/server/server.mjs +452 -92
- package/dist/server/theme-bridge.mjs +164 -2
- package/dist/server/theme.mjs +2 -2
- package/dist/server/webhooks.mjs +129 -25
- package/dist/styles/index.css +55 -0
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +0 -8
- package/dist/sdk-runtime-ZJLKC6DR.mjs +0 -8
package/README.md
CHANGED
|
@@ -2653,11 +2653,11 @@ import {
|
|
|
2653
2653
|
|
|
2654
2654
|
## Content Configuration (SDK Content Scaffolding)
|
|
2655
2655
|
|
|
2656
|
-
Define content type schema
|
|
2656
|
+
Define content type schema and SDK-managed configuration in code. File-based documents such as pages, entries, navigation, and settings live in `content/**` and sync with explicit `riverbankcms push` scopes; `push-config` syncs schema/config surfaces only.
|
|
2657
2657
|
|
|
2658
2658
|
### Quick Start
|
|
2659
2659
|
|
|
2660
|
-
Create a `content.config.ts` file alongside your `riverbank.config.ts
|
|
2660
|
+
Create a `content.config.ts` file alongside your `riverbank.config.ts` for schema/config surfaces:
|
|
2661
2661
|
|
|
2662
2662
|
```typescript
|
|
2663
2663
|
// content.config.ts
|
|
@@ -2676,50 +2676,48 @@ export const contentConfig = defineContentConfig({
|
|
|
2676
2676
|
],
|
|
2677
2677
|
},
|
|
2678
2678
|
],
|
|
2679
|
+
});
|
|
2680
|
+
```
|
|
2679
2681
|
|
|
2680
|
-
|
|
2681
|
-
pages: [
|
|
2682
|
-
{
|
|
2683
|
-
identifier: 'home',
|
|
2684
|
-
path: '/',
|
|
2685
|
-
title: 'Home',
|
|
2686
|
-
status: 'published',
|
|
2687
|
-
},
|
|
2688
|
-
],
|
|
2682
|
+
Put mutable documents in `content/**` instead:
|
|
2689
2683
|
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
},
|
|
2700
|
-
},
|
|
2701
|
-
],
|
|
2684
|
+
```jsonc
|
|
2685
|
+
// content/pages/home.json
|
|
2686
|
+
{
|
|
2687
|
+
"identifier": "home",
|
|
2688
|
+
"path": "/",
|
|
2689
|
+
"title": "Home",
|
|
2690
|
+
"status": "published"
|
|
2691
|
+
}
|
|
2692
|
+
```
|
|
2702
2693
|
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
],
|
|
2694
|
+
```jsonc
|
|
2695
|
+
// content/entries/testimonial/testimonial-1.json
|
|
2696
|
+
{
|
|
2697
|
+
"identifier": "testimonial-1",
|
|
2698
|
+
"status": "published",
|
|
2699
|
+
"data": {
|
|
2700
|
+
"quote": "<p>Great product!</p>",
|
|
2701
|
+
"author": "Jane Doe"
|
|
2702
|
+
}
|
|
2703
|
+
}
|
|
2704
|
+
```
|
|
2715
2705
|
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2706
|
+
```jsonc
|
|
2707
|
+
// content/navigation.json
|
|
2708
|
+
{
|
|
2709
|
+
"menus": [
|
|
2710
|
+
{
|
|
2711
|
+
"identifier": "main",
|
|
2712
|
+
"name": "Main Navigation",
|
|
2713
|
+
"isPrimary": true,
|
|
2714
|
+
"items": [
|
|
2715
|
+
{ "label": "Home", "link": { "kind": "page", "identifier": "home" } },
|
|
2716
|
+
{ "label": "Get Started", "link": { "kind": "url", "href": "/signup" }, "isCta": true }
|
|
2717
|
+
]
|
|
2718
|
+
}
|
|
2719
|
+
]
|
|
2720
|
+
}
|
|
2723
2721
|
```
|
|
2724
2722
|
|
|
2725
2723
|
Then import it in your main config:
|
|
@@ -3155,6 +3153,7 @@ npx riverbankcms push [scope] [type] [identifier]
|
|
|
3155
3153
|
| `entries` | Push all entries, a content type, or a single entry |
|
|
3156
3154
|
| `pages` | Push all pages or a single page with blocks |
|
|
3157
3155
|
| `navigation` | Push navigation menus |
|
|
3156
|
+
| `settings` | Push `content/settings.json` only |
|
|
3158
3157
|
| `forms` | Push form definitions |
|
|
3159
3158
|
|
|
3160
3159
|
**Options:**
|
|
@@ -3182,6 +3181,9 @@ npx riverbankcms push
|
|
|
3182
3181
|
# Push only forms
|
|
3183
3182
|
npx riverbankcms push forms
|
|
3184
3183
|
|
|
3184
|
+
# Push only site settings / branding
|
|
3185
|
+
npx riverbankcms push settings
|
|
3186
|
+
|
|
3185
3187
|
# Push to production with confirmation bypass
|
|
3186
3188
|
npx riverbankcms push --env=remote --yes
|
|
3187
3189
|
|
|
@@ -3218,7 +3220,7 @@ npx riverbankcms push --dry-run --json-diff=summary
|
|
|
3218
3220
|
```
|
|
3219
3221
|
|
|
3220
3222
|
- Keep branding files in `content/media/<identifier>.<ext>`
|
|
3221
|
-
- Run `npx riverbankcms push` to upload missing files and assign the site logo/favicon
|
|
3223
|
+
- Run `npx riverbankcms push settings` to upload missing branding files and assign the site logo/favicon without pushing unrelated content
|
|
3222
3224
|
- Run `npx riverbankcms pull settings` to round-trip the current identifier-based branding state
|
|
3223
3225
|
- If the current CMS logo/favicon asset has no media identifier yet, pull warns and omits that field instead of writing a destructive clear
|
|
3224
3226
|
- Dashboard branding edits and CLI pushes both write the same site settings columns, so pull before pushing if someone may have changed branding in the dashboard
|
|
@@ -3257,6 +3259,86 @@ export default Page;
|
|
|
3257
3259
|
export { generateMetadata };
|
|
3258
3260
|
```
|
|
3259
3261
|
|
|
3262
|
+
### Production ISR Setup
|
|
3263
|
+
|
|
3264
|
+
For production SDK sites, wire the catch-all route to Next ISR and let Riverbank discover published routes at build time. Preview deployments should set `RIVERBANK_PREVIEW_MODE=true`; `getISRConfig()` then returns `revalidate: 0` so draft previews stay dynamic.
|
|
3265
|
+
|
|
3266
|
+
```tsx
|
|
3267
|
+
// src/app/[[...slug]]/page.tsx
|
|
3268
|
+
import {
|
|
3269
|
+
createCatchAllPage,
|
|
3270
|
+
generateAllStaticParams,
|
|
3271
|
+
getISRConfig,
|
|
3272
|
+
} from '@riverbankcms/sdk/next';
|
|
3273
|
+
|
|
3274
|
+
import config from '@/riverbank.config';
|
|
3275
|
+
import { blockOverrides } from '@/lib/block-overrides';
|
|
3276
|
+
import { getRiverbankClient } from '@/lib/riverbank-client';
|
|
3277
|
+
|
|
3278
|
+
export const revalidate = getISRConfig().revalidate;
|
|
3279
|
+
export const dynamicParams = true;
|
|
3280
|
+
export { generateAllStaticParams as generateStaticParams };
|
|
3281
|
+
|
|
3282
|
+
const { Page, generateMetadata } = createCatchAllPage({
|
|
3283
|
+
getClient: getRiverbankClient,
|
|
3284
|
+
config,
|
|
3285
|
+
blockOverrides,
|
|
3286
|
+
});
|
|
3287
|
+
|
|
3288
|
+
export default Page;
|
|
3289
|
+
export { generateMetadata };
|
|
3290
|
+
```
|
|
3291
|
+
|
|
3292
|
+
`generateAllStaticParams()` reads `RIVERBANK_API_KEY`, `RIVERBANK_SITE_ID`, and `NEXT_PUBLIC_DASHBOARD_URL`. By default it falls back to the homepage when route discovery fails, which keeps deploys from publishing an empty static route set silently. For strict production CI, fail the build instead:
|
|
3293
|
+
|
|
3294
|
+
```tsx
|
|
3295
|
+
import { generateAllStaticParams } from '@riverbankcms/sdk/next';
|
|
3296
|
+
|
|
3297
|
+
export function generateStaticParams() {
|
|
3298
|
+
return generateAllStaticParams({ failureMode: 'throw' });
|
|
3299
|
+
}
|
|
3300
|
+
```
|
|
3301
|
+
|
|
3302
|
+
If your site already has a configured client helper, use `createGenerateStaticParams()` so the route discovery client is explicit:
|
|
3303
|
+
|
|
3304
|
+
```tsx
|
|
3305
|
+
import { createGenerateStaticParams } from '@riverbankcms/sdk/next';
|
|
3306
|
+
|
|
3307
|
+
import config from '@/riverbank.config';
|
|
3308
|
+
import { getRiverbankClient } from '@/lib/riverbank-client';
|
|
3309
|
+
|
|
3310
|
+
export const generateStaticParams = createGenerateStaticParams({
|
|
3311
|
+
getClient: getRiverbankClient,
|
|
3312
|
+
siteId: config.siteId,
|
|
3313
|
+
failureMode: 'throw',
|
|
3314
|
+
});
|
|
3315
|
+
```
|
|
3316
|
+
|
|
3317
|
+
Add a signed revalidation route so CMS publish events can refresh affected ISR paths immediately:
|
|
3318
|
+
|
|
3319
|
+
```ts
|
|
3320
|
+
// src/app/api/revalidate/route.ts
|
|
3321
|
+
import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate';
|
|
3322
|
+
|
|
3323
|
+
export const POST = createRevalidateHandler();
|
|
3324
|
+
```
|
|
3325
|
+
|
|
3326
|
+
Set `RIVERBANK_WEBHOOK_SECRET` in the deployed site and configure the matching Riverbank webhook endpoint to post to `/api/revalidate`. Revalidation requests are signed with `X-Riverbank-Signature: sha256=<hex HMAC-SHA256 digest>` over the raw JSON body. The SDK handler rejects missing prefixes, malformed digests, bad signatures, and invalid payloads; valid payloads can revalidate one or more top-level `paths` and `tags`, with malformed path entries skipped and reported in the response metadata.
|
|
3327
|
+
|
|
3328
|
+
The CMS includes a `dispatchId` in signed payloads and sends matching `X-Riverbank-Dispatch-Id` / `X-Riverbank-Correlation-Id` headers. Use the optional callback metadata to join CMS delivery logs with consumer deployment logs without logging secrets:
|
|
3329
|
+
|
|
3330
|
+
```ts
|
|
3331
|
+
export const POST = createRevalidateHandler({
|
|
3332
|
+
onRevalidate: (_payload, _items, metadata) => {
|
|
3333
|
+
console.info('Riverbank ISR revalidated', metadata);
|
|
3334
|
+
},
|
|
3335
|
+
});
|
|
3336
|
+
```
|
|
3337
|
+
|
|
3338
|
+
SDK-site revalidation webhook events cover publish, unpublish, delete, and public path-change events for pages and entries, plus navigation, theme, and site settings updates. Global render changes are sent as tags-only payloads, and very large explicit path sets degrade to tags-only delivery so sites do not receive unbounded path arrays. Existing webhook endpoints may need their subscribed event list updated to receive the newer unpublish, delete, and path-change events.
|
|
3339
|
+
|
|
3340
|
+
For troubleshooting, inspect the endpoint's delivery logs in Riverbank. Each delivery stores minimized payload diagnostics with `dispatchId`, `siteId`, event, `pathCount`, `tagCount`, status, response time, and a minimized failure body. Secrets, signature headers, cookies, authorization headers, and raw sensitive fields are not written to delivery logs.
|
|
3341
|
+
|
|
3260
3342
|
### Upstream content-load failures
|
|
3261
3343
|
|
|
3262
3344
|
`createCatchAllPage()` only calls `notFound()` for confirmed content misses, such as an API 404 for an absent page. Timeout, network, 5xx, auth, and circuit-open failures from the CMS are surfaced as `RiverbankContentLoadError` by default so monitors and crawlers do not mistake a transient upstream problem for missing content. `SdkContentLoadError` remains available as a compatibility alias for the same error class.
|