Skip to content

Docs for Storage/Spaces/IdentityServer/User Management preview.6 releases - #1268

Merged
StuFrankish merged 2 commits into
mainfrom
ev/session-3158b4d7
Oct 23, 2026
Merged

StuFrankish merged 2 commits into
mainfrom
ev/session-3158b4d7

Conversation

@Erwinvandervalk

Copy link
Copy Markdown
Contributor

Updates the docs for the preview release published to nuget.org on October 16, 2026:

  • Duende Storage 2.0.0-preview.6 (replaces 2.0.0-preview.5)
  • Duende Spaces 1.0.0-preview.6
  • Duende IdentityServer 8.1.0-preview.6
  • Duende User Management 2.0.0-preview.6

Every change was checked against the code and PublicApi snapshots in products-private: storage-2.0.0-preview.3..storage-2.0.0-preview.6, spaces-1.0.0-preview.3..spaces-1.0.0-preview.6, is-8.1.0-preview.4..360f647a (the released is-8.1.0-preview.6 commit), and um-2.0.0-preview.3..um-2.0.0-preview.6.

Spaces

  • spaces/getting-started.md: Spaces is now added with AddSpaces(options => ...) on IIdentityServerBuilder, replacing services.AddSpaces() and Configure<SpacesOptions>. Adds a caution that using Spaces with the Entity Framework stores fails at startup with OptionsValidationException. Explains that Data Protection is partitioned per space (SpacesOptions.PartitionDataProtection, GetUnpartitioned()), and covers the keyed HybridCache under SpacesServiceProviderKeys.SpacesCache: Spaces no longer registers the app's default HybridCache.
  • spaces/index.mdx: The "What Spaces Does Not Isolate" section now says that Data Protection and space-aware HybridCache entries are isolated by default, and that IdentityServer signing keys stay global.

Storage

  • duende-storage/getting-started.md: duende storage migrate now supports --provider oracle, so the old "no Oracle in the CLI" caveat is removed. Also notes that the purge service follows the registered TimeProvider.
  • duende-storage/schemas.md: New "List Schemas" section. ISchemaAdmin.QueryAsync returns real schema ids. Schemas from earlier previews are upgraded the first time they're read by id, and until then they're reported as unknown.
  • duende-storage/multiple-storage-instances.md: Fixed the sample to call .AddSpaces(...) on the IdentityServer builder.
  • diagnostics/otel.md: Documents the Duende.Storage meter (duende.storage.operation.count and duende.storage.operation.duration, with their tags) and the Duende.Storage activity source.

IdentityServer

  • data/providers/entityframework-core.md: Adds a caution that the EF stores can't be combined with Spaces as of 8.1.0-preview.6.
  • The EnableJwtRequestUri SSRF link and the per-instance purge/outbox behavior were already documented in reference/v8/options.md, tokens/jar.mdx and multiple-storage-instances.md.

User Management

  • authentication/passkeys.mdx: New sections on custom signature verifiers (ISignatureVerifier, AddPasskeySignatureVerifier<T>()) and custom attestation format validators (IAttestationFormatValidator, AttestationContext, AttestationValidationResult, AddAttestationFormatValidator<T>()). Also notes that a ChallengeSize below 16 fails at startup.
  • reference/configuration.md: ChallengeSize now says it fails options validation at startup instead of throwing ArgumentOutOfRangeException.

Not changed

  • AttributeSchema and AttributeSchemaFactory: AttributeSchema was already internal, no page referenced it, and AttributeSchemaFactory is in the Duende.Storage.EntityAttributeValue.Internal namespace, so the docs don't cover it.
  • No page pins a package version; the install commands use --prerelease.

Verified with a local npx astro build, which succeeded.

@maartenba maartenba left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Erwinvandervalk ! Left some comments.

Comment thread astro/src/content/docs/identityserver/data/providers/duende-storage/schemas.md Outdated
Comment thread astro/src/content/docs/identityserver/spaces/getting-started.md
Comment thread astro/src/content/docs/identityserver/spaces/getting-started.md Outdated
Comment thread astro/src/content/docs/identityserver/spaces/index.mdx
:::

When IdentityServer, User Management or Spaces data is stored in [Duende Storage](/identityserver/data/providers/duende-storage/index.mdx),
Duende Storage emits its own metrics from the meter named `Duende.Storage`. Collect them with `AddMeter("Duende.Storage")`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need a constant for that meter?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as above, Preview.6 doesn’t expose a public constant for the meter name, so the docs use the string. Whether to add a constant is an SDK decision.

@maartenba maartenba added the documentation Improvements or additions to documentation label Oct 19, 2026
@maartenba

Copy link
Copy Markdown
Member

@Erwinvandervalk Can you rebase onto main and consider using the versioning support to have switches between vCurrent (8.0) and vNew (8.1)?

…or preview.6

- Document Duende Storage metrics and traces in OpenTelemetry, gated to IdentityServer 8.1
- Document Oracle support in the Duende CLI storage migrate command across Storage and User Management pages
- Document storage purge TimeProvider behavior and schema listing
- Document Spaces registration on IIdentityServerBuilder, Data Protection partitioning and keyed HybridCache
- Add Entity Framework and Spaces incompatibility caution, gated to IdentityServer 8.1
- Add AttestationValidationError values to the passkey attestation format validator docs
Copilot AI balanced review requested due to automatic review settings October 23, 2026 08:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Security-isolation behavior and preview API contracts require human confirmation against the private release sources unavailable during review.

No open issues 🎉

What changed in this PR

Updates IdentityServer documentation for the preview.6 releases of Storage, Spaces, IdentityServer, and User Management.

Changes:

  • Updates Spaces registration examples and documents Data Protection, cache isolation, and Entity Framework incompatibility.
  • Documents Oracle CLI migrations, schema listing behavior, purge scheduling, and Storage telemetry.
  • Adds the passkey attestation validation error reference.
File Description
astro/​src/​content/​docs/​identityserver/​spaces/​index.mdx Clarifies space isolation and global signing-key protection.
astro/​src/​content/​docs/​identityserver/​spaces/​getting-started.md Updates registration and explains storage, protection, and caching requirements.
astro/​src/​content/​docs/​identityserver/​identity/​user-management/​fundamentals/​storage.mdx Adds Oracle to CLI migration guidance.
astro/​src/​content/​docs/​identityserver/​identity/​user-management/​authentication/​passkeys.mdx Lists attestation validation errors.
astro/​src/​content/​docs/​identityserver/​diagnostics/​otel.mdx Documents Storage metrics and traces.
astro/​src/​content/​docs/​identityserver/​data/​providers/​entityframework-core.mdx Warns against combining EF stores with Spaces.
astro/​src/​content/​docs/​identityserver/​data/​providers/​duende-storage/​schemas.md Explains schema listing and legacy schema ID upgrades.
astro/​src/​content/​docs/​identityserver/​data/​providers/​duende-storage/​multiple-storage-instances.md Moves Spaces registration onto the IdentityServer builder.
astro/​src/​content/​docs/​identityserver/​data/​providers/​duende-storage/​getting-started.md Explains purge clock behavior and Oracle migration support.
astro/​src/​content/​docs/​identityserver/​data/​providers/​duende-storage/​duende-cli.md Adds Oracle options and migration examples.
astro/​src/​content/​docs/​identityserver/​data/​providers/​duende-storage/​databases/​oracle.md Adds CLI migration instructions alongside code-based alternatives.
astro/​src/​content/​docs/​identityserver/​data/​providers/​duende-storage/​databases/​index.mdx Marks Oracle CLI migrations as supported.

Review effort: Balanced

- Explain how the purge service uses TimeProvider for scheduling
- Remove preview-specific wording from schema id upgrade note
- Move Spaces caution above the setup introduction
- Rephrase Entity Framework and Spaces caution wording
- Document when to disable PartitionDataProtection
- Drop "no longer does this for you" from HybridCache guidance
- Add keyed HybridCache injection example to Spaces overview
Copilot AI balanced review requested due to automatic review settings October 23, 2026 09:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Release-specific API details and security-isolation guarantees remain unverified against the referenced private product source and need human confirmation.

No open issues 🎉

2 previously missed issues

In code that hasn't changed since last review

Low severity Add Password= attribute to Oracle connection string

astro/​src/​content/​docs/​identityserver/​data/​providers/​duende-storage/​databases/​oracle.md:157

This Oracle connection string also needs the Password= attribute name. The bare ****** segment remains invalid even after substituting a password, preventing the documented migration from connecting. Keep the attribute name and use a placeholder only for its value.

Low severity Add Password= attribute to Oracle connection string

astro/​src/​content/​docs/​identityserver/​data/​providers/​duende-storage/​duende-cli.md:112

The Oracle connection string has a bare ****** segment instead of a Password=... attribute. Replacing only the asterisks with a password still leaves an invalid connection string, so the migration commands cannot connect. Include Password= and replace only its value with the deployment credential.

Review effort: Balanced

@StuFrankish
StuFrankish requested a review from maartenba October 23, 2026 09:42
@StuFrankish
StuFrankish marked this pull request as ready for review October 23, 2026 09:43
@StuFrankish
StuFrankish merged commit 696cb3d into main Oct 23, 2026
7 checks passed
@StuFrankish
StuFrankish deleted the ev/session-3158b4d7 branch October 23, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants