Skip to content

Create initial Axlis sample project for Sitecore Headless GraphQL ORM integration#17

Merged
marioarce merged 34 commits into
mainfrom
develop
Jul 8, 2026
Merged

Create initial Axlis sample project for Sitecore Headless GraphQL ORM integration#17
marioarce merged 34 commits into
mainfrom
develop

Conversation

@marioarce

Copy link
Copy Markdown
Owner

This PR creates the very first version of the Axlis sample project, demonstrating how to work with Axlis and Sitecore content within a Clean Architecture context. The solution is based on the Clean Architecture sample project template.

Key changes:

  • Added Axlis and Axlis.GraphQL NuGet packages to the WebApi project
  • Configured Axlis service registration with GraphQL endpoint, API key, batch size, and timeout settings
  • Added Axlis configuration sections in appsettings.json (CacheTtl, EnableDiagnostics, Endpoint, BatchSize, TimeoutSeconds)
  • Wired ambient lazy-loader for ExtendedItem.Axes traversal at runtime
  • Added UserSecretsId to WebApi project for development configuration
  • Updated PowerCSharp packages (Feature.Cache.BitFaster, Feature.Cache.Disk, Features, BuiltInFeatures) to latest versions
  • Updated coverlet.collector test package across test projects
  • Enabled Samples feature in appsettings.json
  • Skipped PowerCSharp sample endpoint cache tests as they are not relevant to the Axlis sample project

dependabot Bot and others added 30 commits July 2, 2026 00:38
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
---
updated-dependencies:
- dependency-name: coverlet.collector
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: coverlet.collector
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: coverlet.collector
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps FluentValidation from 11.9.2 to 12.1.1
Bumps FluentValidation.DependencyInjectionExtensions from 11.9.2 to 12.1.1

---
updated-dependencies:
- dependency-name: FluentValidation
  dependency-version: 12.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: FluentValidation.DependencyInjectionExtensions
  dependency-version: 12.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps MediatR from 12.3.0 to 14.1.0
Bumps Microsoft.Extensions.Logging.Abstractions from 8.0.3 to 10.0.0

---
updated-dependencies:
- dependency-name: MediatR
  dependency-version: 14.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Microsoft.Extensions.Logging.Abstractions
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
- Add dev-only ProjectReferences to Axlis.Core, Axlis, Axlis.GraphQL (fixme)
- Add Axlis and AxlisGraphQL config sections to appsettings.json
- Register AddAxlis and AddAxlisGraphQL in Program.cs
- Wire UseAxlis after app.Build() for ambient lazy-loader
- Set user-secrets for Endpoint and ApiKey (fixme)
- Enable Samples feature flag for showcase endpoint access
- Add Disclaimer template with TextField Heading/Description
- Add HomePage template with ImageField MetaThumbnail + MultilistField HeadCssLinks
- Add PresentationAssetLink template with TextField Link
- Add DictionaryRoot template with ItemReferenceField FallbackDomain
- Add Style template for typed Axes traversal predicates
- All templates use placeholder GUIDs (fixme for real IDs)
- Add GetSitecoreShowcaseQuery with RootPath parameter
- Add GetSitecoreShowcaseResponse with six pivot DTOs
- Add GetSitecoreShowcaseQueryHandler exercising Axlis facade
- Pivot 1: TextField (Disclaimer Heading/Description)
- Pivot 2: ImageField + MultilistField (HomePage MetaThumbnail + HeadCssLinks)
- Pivot 3: ItemReferenceField (Dictionary FallbackDomain)
- Pivot 4: Axes traversal (Parent, Children, Grandparent, Siblings, typed GetChildren)
- Pivot 5: GetDescendants typed traversal
- Pivot 6: WithResult rich API (value, metadata, diagnostics)
- Add SitecoreController with /v1/sitecore/showcase endpoint
- Gated behind Samples feature flag
- Replace PowerCSharp template content with Axlis-specific documentation
- Document Axlis DI wiring, user-secrets configuration
- Document Sitecore template POCOs and field types
- Document CQRS showcase endpoint and six API pivots
- Add Dev-Only References section with NuGet swap instructions
- Add Template POCO GUIDs section with fixme reminders
- Update Quick Start with user-secrets setup steps
…efinitions

- Replace placeholder template files (Disclaimer, HomePage, DictionaryRoot, PresentationAssetLink, Style) with real Sitecore templates
- Add Sample/SampleItem template with Title and Text fields
- Add System template namespace with Language, MainSection, Node, and PublishingTarget templates
- Update GetSitecoreShowcaseQueryHandler to use new template types (Node, Language) instead of placeholder templates
- Simplify GetSitecoreShowcaseResponse by removing Disclaimer and Dictionary pivots
- Change default root path in GetSitecoreShowcaseQuery from "/sitecore/content/home" to "/sitecore/content"
- Update HomePivot to use SampleItem fields (Title, Text) instead of HomePage fields

Refs #6
- Add None remove entries for Sitecore\Templates\System and Sitecore\Templates\Sample
- Add Folder include entries for Sitecore\Templates\System and Sitecore\Templates\Sample

Refs #6
…hitecture.Tests.Shared/multi-24e82da74b

Bump coverlet.collector from 6.0.0 to 10.0.1
…tecture.Presentation/multi-51ca29a864

Bump MediatR and Microsoft.Extensions.Logging.Abstractions
…tecture.Application/multi-5bcc1699ab

Bump FluentValidation and FluentValidation.DependencyInjectionExtensions
…s/checkout-7

build(deps): bump actions/checkout from 4 to 7
Bumps Ardalis.Result from 9.1.0 to 10.1.0
Bumps Ardalis.Result.FluentValidation from 9.1.0 to 10.1.0

---
updated-dependencies:
- dependency-name: Ardalis.Result
  dependency-version: 10.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Ardalis.Result.FluentValidation
  dependency-version: 10.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps Ardalis.Result from 9.1.0 to 10.1.0
Bumps Ardalis.Result.AspNetCore from 9.1.0 to 10.1.0

---
updated-dependencies:
- dependency-name: Ardalis.Result
  dependency-version: 10.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Ardalis.Result.AspNetCore
  dependency-version: 10.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 4 to 5.
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-dotnet
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…s/setup-dotnet-5

build(deps): bump actions/setup-dotnet from 4 to 5
- Replace Axlis.Core ProjectReference with PackageReference version 0.1.0 in CleanArchitecture.Application
- Replace Axlis and Axlis.GraphQL ProjectReferences with PackageReferences version 0.1.0 in CleanArchitecture.WebApi
- Remove fixme comments about dev-only references

Refs #3
- Upgrade PowerCSharp.Feature.Cache packages from 1.3.1 to 1.3.2 in CleanArchitecture.Application and CleanArchitecture.WebApi
- Upgrade PowerCSharp.Features.Abstractions from 1.0.1 to 1.0.2 in CleanArchitecture.Presentation
- Upgrade PowerCSharp.Features and PowerCSharp.BuiltInFeatures from 1.0.1 to 1.0.2 in CleanArchitecture.WebApi

Refs #3
…ecture.Sample into dependabot/nuget/src/CleanArchitecture.Application/multi-596cf4cc68
…tecture.Application/multi-596cf4cc68

Bump Ardalis.Result and Ardalis.Result.FluentValidation
…ecture.Sample into dependabot/nuget/src/CleanArchitecture.Presentation/multi-46b189b257
…tecture.Presentation/multi-46b189b257

Bump Ardalis.Result and Ardalis.Result.AspNetCore
….0.0

- Upgrade MediatR from 12.3.0 to 14.1.0 in CleanArchitecture.Application
- Upgrade Microsoft.Extensions.Configuration.Abstractions from 8.0.0 to 10.0.0 in CleanArchitecture.Application
- Upgrade Microsoft.Extensions.DependencyInjection.Abstractions from 8.0.2 to 10.0.0 in CleanArchitecture.Application and CleanArchitecture.Infrastructure
- Upgrade Microsoft.Extensions.Logging.Abstractions from 8.0.2 to 10.0.0 in CleanArchitecture.Application and CleanArchitecture.Infrastructure
- Upgrade Microsoft.Extensions.Http from 8.0.1 to 10.0.0 in CleanArchitecture.Infrastructure
- Upgrade Microsoft.Extensions.Options from 8.0.2 to 10.0.0 in CleanArchitecture.Infrastructure

Refs #3
- Enhance XML documentation comments for SampleItem template with detailed description
- Enhance XML documentation comments for Language template with detailed description
- Add remarks section to MainSection template documentation
- Add remarks section to Node template documentation
- Enhance XML documentation comments for PublishingTarget template with detailed description
- Update field documentation to use "Gets the..." format for consistency

Refs #4
- Replace hardcoded home path with configurable RootPath parameter in GetSitecoreShowcaseQueryHandler
- Update pivot scenario count from five to six in query documentation
- Fix typo "PAxes" to "Axes" in GetSitecoreShowcaseResponse
- Enhance XML documentation for all pivot classes with detailed summaries
- Add "Gets the..." format to all property documentation comments
- Update RootPath documentation to be more specific about default behavior
- Update example path from "/sitecore/system" to "/sitecore/content"

Refs #4
- Add DevNote for Axes traversal explaining lazy-loading behavior and performance considerations
- Add DevNote for GetDescendants with guidance on batch operations and efficient queries
- Add DevNote for GetItemByPathWithResultAsync Rich API flavor usage and diagnostics
- Add DevNote for Caching architecture and configuration options

Refs #6
- Add SECURITY.AXLIS.md with comprehensive security policy covering vulnerability reporting, Axlis integration security considerations, and sample endpoint security
- Enhance README.md with lazy loading behavior documentation
- Add caching architecture and configuration documentation to README
- Add field types documentation to README
- Add documentation files section to README

Refs #6
marioarce and others added 4 commits July 8, 2026 14:51
- Remove GitHub release workflow for NuGet package publishing
- Remove .NET template configuration file
- Remove template project file for NuGet packaging

Refs #3
- Update README project description to remove template references
- Remove original template files from documentation section
- Update SitecoreController comment from fixme to professional note
- Update Program.cs comment to remove NuGet PackageReference reference

Refs #6
- Skip Cache_Sample_Misses_Then_Hits test as PowerCSharp endpoints not relevant to Axlis sample
- Skip Status_Shows_Keys_And_Delete_Clears_Cache test as PowerCSharp endpoints not relevant to Axlis sample
- Skip Gate_Hides_Endpoint_When_Feature_Disabled test as PowerCSharp endpoints not relevant to Axlis sample

Refs #6
feat: add Sitecore showcase endpoint with CQRS pattern and enhance documentation
@marioarce marioarce added this to the v0.1.0 milestone Jul 8, 2026
@marioarce marioarce self-assigned this Jul 8, 2026
@marioarce marioarce added the epic Tracking epic label Jul 8, 2026
@marioarce marioarce linked an issue Jul 8, 2026 that may be closed by this pull request
5 tasks
@marioarce
marioarce merged commit 79a9110 into main Jul 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

epic Tracking epic

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Epic: Axlis sample showcase

1 participant