Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
c4d8dbc
upgrade skate park
sc-nipunaabeywickrama Mar 26, 2026
7c5e4ee
upgrade sync and alaris sites
sc-nipunaabeywickrama Mar 26, 2026
b3bef9c
upgrade solterra and empty site
sc-nipunaabeywickrama Mar 26, 2026
952c6e2
refactor: remove default static parameters in Next.js page generation
sc-nipunaabeywickrama Mar 26, 2026
e41f37a
refactor: streamline page components by removing unused headers and d…
sc-nipunaabeywickrama Mar 26, 2026
133d347
update basic pages router to csdk 2
sc-nipunaabeywickrama Mar 27, 2026
7264d37
refactor: add error handling for NotFound page in Next.js examples
sc-nipunaabeywickrama Mar 27, 2026
aaa4c27
chore: update eslint-config-next to version 16.1.1 and @next/bundle-a…
sc-nipunaabeywickrama Mar 27, 2026
75a8074
upgrade solterra to csdk 2.0.2
sc-nipunaabeywickrama Apr 8, 2026
78d9bd8
upgrade alaris site to csdk 2.0.2
sc-nipunaabeywickrama Apr 8, 2026
e9e08fb
upgrade basic pages router site to csdk 2.0.2
sc-nipunaabeywickrama Apr 8, 2026
f9b4840
update sitecore edge url
sc-nipunaabeywickrama Apr 8, 2026
31fe780
Merge pull request #16 from sc-nipunaabeywickrama/scb-820-csdk-2.0-de…
sc-nipunaabeywickrama Apr 9, 2026
3366f56
Merge pull request #437 from sc-nipunaabeywickrama/scb-820-csdk-2.0-dev
sc-nipunaabeywickrama Apr 9, 2026
0759a5e
Scb 820 csdk 2.0 dev (#25)
sc-naveenhedallaarachchi Apr 8, 2026
aac2843
upgrade skatepark to csdk 2.0.2
sc-naveenhedallaarachchi Apr 8, 2026
e614a7b
upgrade sync to csdk 2.0.2
sc-naveenhedallaarachchi Apr 8, 2026
a230186
upgrade basic-nextjs to csdk 2.0.2
sc-naveenhedallaarachchi Apr 8, 2026
75a4254
update event imports to use browser-specific module
sc-naveenhedallaarachchi Apr 9, 2026
bb29c44
Merge pull request #439 from sc-naveenhedallaarachchi/csdk.2.0.2-dev-…
sc-nipunaabeywickrama Apr 9, 2026
cf39876
update package lock files
sc-nipunaabeywickrama Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 10 additions & 12 deletions .github/workflows/dmz-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ jobs:
CREDENTIALS_OK=true

# Check required secrets
if [ -z "${{ secrets.SITECORE_EDGE_URL }}" ]; then
echo "❌ SITECORE_EDGE_URL is missing"
MISSING_CREDENTIALS="$MISSING_CREDENTIALS SITECORE_EDGE_URL"
if [ -z "${{ secrets.NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME }}" ]; then
echo "❌ NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME is missing"
MISSING_CREDENTIALS="$MISSING_CREDENTIALS NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME"
CREDENTIALS_OK=false
else
echo "✅ SITECORE_EDGE_URL is set"
echo "✅ NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME is set"
fi

if [ -z "${{ secrets.SITECORE_EDGE_CONTEXT_ID }}" ]; then
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
echo " Settings > Secrets and variables > Actions > Secrets"
echo ""
echo "Required secrets:"
echo " - SITECORE_EDGE_URL"
echo " - NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME"
echo " - SITECORE_EDGE_CONTEXT_ID"
echo " - NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID"
echo " - SITECORE_EDITING_SECRET"
Expand Down Expand Up @@ -346,7 +346,7 @@ jobs:
if: steps.credential-check.outputs.credentials-valid == 'true'
env:
# Sitecore Edge API Configuration
SITECORE_EDGE_URL: ${{ secrets.SITECORE_EDGE_URL }}
NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME: ${{ secrets.NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME }}
SITECORE_EDGE_CONTEXT_ID: ${{ secrets.SITECORE_EDGE_CONTEXT_ID }}
NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID: ${{ secrets.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID }}

Expand All @@ -355,7 +355,6 @@ jobs:
SITECORE_EDITING_SECRET: ${{ secrets.SITECORE_EDITING_SECRET }}

# Additional Sitecore Environment Variables
NEXT_PUBLIC_SITECORE_EDGE_URL: ${{ secrets.SITECORE_EDGE_URL }}
NEXT_PUBLIC_SITECORE_API_KEY: ${{ secrets.NEXT_PUBLIC_SITECORE_API_KEY }}
NEXT_PUBLIC_SITECORE_API_HOST: ${{ secrets.NEXT_PUBLIC_SITECORE_API_HOST }}
NEXT_PUBLIC_DEFAULT_LANGUAGE: ${{ vars.NEXT_PUBLIC_DEFAULT_LANGUAGE || 'en' }}
Expand All @@ -368,7 +367,7 @@ jobs:
echo "=========================================="
echo ""
echo "Sitecore Environment Variables Status:"
echo " SITECORE_EDGE_URL: ${SITECORE_EDGE_URL:+✅ [SET]}${SITECORE_EDGE_URL:-❌ [NOT SET]}"
echo " NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME: ${NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME:+✅ [SET]}${NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME:-❌ [NOT SET]}"
echo " SITECORE_EDGE_CONTEXT_ID: ${SITECORE_EDGE_CONTEXT_ID:+✅ [SET]}${SITECORE_EDGE_CONTEXT_ID:-❌ [NOT SET]}"
echo " NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID: ${NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID:+✅ [SET]}${NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID:-❌ [NOT SET]}"
echo " NEXT_PUBLIC_DEFAULT_SITE_NAME: ${NEXT_PUBLIC_DEFAULT_SITE_NAME}"
Expand Down Expand Up @@ -520,7 +519,7 @@ jobs:
echo ""
echo " 1. Go to: Settings > Secrets and variables > Actions > Secrets"
echo " 2. Add the following required secrets:"
echo " - SITECORE_EDGE_URL"
echo " - NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME"
echo " - SITECORE_EDGE_CONTEXT_ID"
echo " - NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID"
echo " - SITECORE_EDITING_SECRET"
Expand Down Expand Up @@ -570,12 +569,11 @@ jobs:
- name: Run GEO endpoint tests (with server)
id: run-geo-tests
env:
SITECORE_EDGE_URL: ${{ secrets.SITECORE_EDGE_URL }}
NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME: ${{ secrets.NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME }}
SITECORE_EDGE_CONTEXT_ID: ${{ secrets.SITECORE_EDGE_CONTEXT_ID }}
NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID: ${{ secrets.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID }}
NEXT_PUBLIC_DEFAULT_SITE_NAME: ${{ vars.NEXT_PUBLIC_DEFAULT_SITE_NAME || 'basic' }}
SITECORE_EDITING_SECRET: ${{ secrets.SITECORE_EDITING_SECRET }}
NEXT_PUBLIC_SITECORE_EDGE_URL: ${{ secrets.SITECORE_EDGE_URL }}
NEXT_PUBLIC_SITECORE_API_KEY: ${{ secrets.NEXT_PUBLIC_SITECORE_API_KEY }}
NEXT_PUBLIC_SITECORE_API_HOST: ${{ secrets.NEXT_PUBLIC_SITECORE_API_HOST }}
NEXT_PUBLIC_DEFAULT_LANGUAGE: ${{ vars.NEXT_PUBLIC_DEFAULT_LANGUAGE || 'en' }}
Expand Down Expand Up @@ -731,7 +729,7 @@ jobs:
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Solution:** An upstream repository administrator must configure secrets:" >> $GITHUB_STEP_SUMMARY
echo "1. Go to: Settings > Secrets and variables > Actions > Secrets" >> $GITHUB_STEP_SUMMARY
echo "2. Add required secrets: SITECORE_EDGE_URL, SITECORE_EDGE_CONTEXT_ID, NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID, SITECORE_EDITING_SECRET" >> $GITHUB_STEP_SUMMARY
echo "2. Add required secrets: NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME, SITECORE_EDGE_CONTEXT_ID, NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID, SITECORE_EDITING_SECRET" >> $GITHUB_STEP_SUMMARY
echo "3. This is NOT a code issue - it's a repository configuration issue" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Next Steps:**" >> $GITHUB_STEP_SUMMARY
Expand Down
8 changes: 3 additions & 5 deletions .github/workflows/pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ jobs:
if: steps.repo-check.outputs.is-upstream == 'true'
env:
# Sitecore Edge API Configuration
SITECORE_EDGE_URL: ${{ secrets.SITECORE_EDGE_URL }}
NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME: ${{ secrets.NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME }}
SITECORE_EDGE_CONTEXT_ID: ${{ secrets.SITECORE_EDGE_CONTEXT_ID }}
NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID: ${{ secrets.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID }}

Expand All @@ -275,7 +275,6 @@ jobs:
SITECORE_EDITING_SECRET: ${{ secrets.SITECORE_EDITING_SECRET }}

# Additional Sitecore Environment Variables
NEXT_PUBLIC_SITECORE_EDGE_URL: ${{ secrets.SITECORE_EDGE_URL }}
NEXT_PUBLIC_SITECORE_API_KEY: ${{ secrets.NEXT_PUBLIC_SITECORE_API_KEY }}
NEXT_PUBLIC_SITECORE_API_HOST: ${{ secrets.NEXT_PUBLIC_SITECORE_API_HOST }}
NEXT_PUBLIC_DEFAULT_LANGUAGE: ${{ vars.NEXT_PUBLIC_DEFAULT_LANGUAGE || 'en' }}
Expand All @@ -285,7 +284,7 @@ jobs:
set -e # Exit immediately if any command fails
echo "Building all starters with full Sitecore integration..."
echo "Sitecore Environment Variables:"
echo " SITECORE_EDGE_URL: ${SITECORE_EDGE_URL:+[SET]}"
echo " NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME: ${NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME:+[SET]}"
echo " SITECORE_EDGE_CONTEXT_ID: ${SITECORE_EDGE_CONTEXT_ID:+[SET]}"
echo " NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID: ${NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID:+[SET]}"
echo " NEXT_PUBLIC_DEFAULT_SITE_NAME: ${NEXT_PUBLIC_DEFAULT_SITE_NAME}"
Expand Down Expand Up @@ -357,8 +356,7 @@ jobs:
# Provide mock values for tests (in case they need Sitecore config)
SITECORE_EDGE_CONTEXT_ID: "mock-context-id-for-ci-tests"
NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID: "mock-context-id-for-ci-tests"
SITECORE_EDGE_URL: "https://edge.sitecorecloud.io"
NEXT_PUBLIC_SITECORE_EDGE_URL: "https://edge.sitecorecloud.io"
NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME: "https://edge.sitecorecloud.io"
NEXT_PUBLIC_DEFAULT_SITE_NAME: "basic"
NEXT_PUBLIC_DEFAULT_LANGUAGE: "en"
SITECORE_EDITING_SECRET: "mock-editing-secret-for-ci-tests"
Expand Down
2 changes: 1 addition & 1 deletion Agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ Run these from **inside a starter directory** (e.g. `examples/kit-nextjs-skate-p
### Required Environment Variables

All starters require these environment variables:
- `SITECORE_EDGE_URL` - XM Cloud Edge URL
- `NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME` - XM Cloud Edge URL
- `SITECORE_EDGE_CONTEXT_ID` - XM Cloud Edge Context ID
- `NEXT_PUBLIC_DEFAULT_SITE_NAME` - Default site name
- `NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID` - Public Edge Context ID
Expand Down
2 changes: 1 addition & 1 deletion examples/basic-nextjs-pages-router/.gitattributes
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Line endings for this repository
# See: https://help.github.com/en/articles/configuring-git-to-handle-line-endings
# This should line up with the expectations from .eslintrc
# This should line up with the expectations from eslint.config.mjs

# Set the default behavior, in case people don't have core.autocrlf set.
* text=crlf
Expand Down
8 changes: 3 additions & 5 deletions examples/basic-nextjs-pages-router/.sitecore/component-map.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
// Below are built-in components that are available in the app, it's recommended to keep them as is

import { BYOCWrapper, NextjsContentSdkComponent, FEaaSWrapper } from '@sitecore-content-sdk/nextjs';
import { Form } from '@sitecore-content-sdk/nextjs';
// end of built-in components

// Components imported from the app itself
// end of built-in components
import * as PartialDesignDynamicPlaceholder from 'src/components/partial-design-dynamic-placeholder/PartialDesignDynamicPlaceholder';


// Components must be registered within the map to match the string key with component name in Sitecore
export const componentMap = new Map<string, NextjsContentSdkComponent>([
['BYOCWrapper', BYOCWrapper],
['FEaaSWrapper', FEaaSWrapper],
['Form', Form],
['PartialDesignDynamicPlaceholder', PartialDesignDynamicPlaceholder],
['PartialDesignDynamicPlaceholder', { ...PartialDesignDynamicPlaceholder }],
]);

export default componentMap;
28 changes: 19 additions & 9 deletions examples/basic-nextjs-pages-router/.sitecore/import-map.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@
// This file is auto-generated by the Sitecore Content SDK.
// Below are built-in Content SDK imports neccessary for the import map
import { combineImportEntries, defaultImportEntries } from '@sitecore-content-sdk/nextjs/codegen';
import {
combineImportEntries,
defaultImportEntries,
ImportEntry,
} from '@sitecore-content-sdk/nextjs/codegen';
// end of built-in imports

import { useEffect } from 'react';
import React from 'react';
import { jsx, Fragment } from 'react/jsx-runtime';
import { Placeholder, CdpHelper, useSitecore } from '@sitecore-content-sdk/nextjs';
import Head from 'next/head';
import client from 'lib/sitecore-client';
import Image from 'next/image';
import * as FEAAS from '@sitecore-feaas/clientside/react';
import nextConfig from 'next.config';
import { pageView } from '@sitecore-cloudsdk/events/browser';
import { useEffect } from 'react';
import { pageView } from '@sitecore-content-sdk/events';
import config from 'sitecore.config';

const importMap = [
{
module: 'react',
module: 'react/jsx-runtime',
exports: [
{ name: 'useEffect', value: useEffect },
{ name: 'default', value: React },
{ name: 'jsx', value: jsx },
{ name: 'Fragment', value: Fragment },
]
},
{
Expand Down Expand Up @@ -61,7 +65,13 @@ const importMap = [
]
},
{
module: '@sitecore-cloudsdk/events/browser',
module: 'react',
exports: [
{ name: 'useEffect', value: useEffect },
]
},
{
module: '@sitecore-content-sdk/events',
exports: [
{ name: 'pageView', value: pageView },
]
Expand All @@ -72,6 +82,6 @@ const importMap = [
{ name: 'default', value: config },
]
}
];
] as ImportEntry[];

export default combineImportEntries(defaultImportEntries, importMap);
2 changes: 1 addition & 1 deletion examples/basic-nextjs-pages-router/next-env.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />
import "./.next/types/routes.d.ts";

// NOTE: This file should not be edited
// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information.
19 changes: 10 additions & 9 deletions examples/basic-nextjs-pages-router/next.config.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
const path = require('path');
const SassAlias = require('sass-alias');

/**
* @type {import('next').NextConfig}
* Next.js 16 defaults to Turbopack; this app relies on custom webpack (Content SDK
* component-props-loader, FEAAS externals). Scripts use `next * --webpack`; see next:build/next:dev.
*/
const nextConfig = {
// Allow specifying a distinct distDir when concurrently running app in a container
Expand Down Expand Up @@ -111,15 +112,15 @@ const nextConfig = {
return config;
},

// Add sass settings for SXA themes and styles
// Sass: dart-sass 1.80+ / Next 16 use the modern compiler API; legacy importers
// (e.g. sass-alias getImporter()) are invalid. Use includePaths for theme imports if needed.
sassOptions: {
importer: new SassAlias({
'@globals': path.join(process.cwd(), './src/assets', 'globals'),
'@fontawesome': path.join(process.cwd(), './node_modules', 'font-awesome'),
}).getImporter(),
// temporary measure until new versions of bootstrap and font-awesome released
quietDeps: true,
silenceDeprecations: ["import", "legacy-js-api"],
includePaths: [
path.join(process.cwd(), 'node_modules'),
path.join(process.cwd(), 'src', 'assets', 'globals'),
],
quietDeps: true,
silenceDeprecations: ['import', 'legacy-js-api'],
},
};

Expand Down
Loading
Loading