Skip to content

[codex] Add package manifest metadata for extensions#144

Merged
sfmskywalker merged 3 commits into
mainfrom
codex/package-manifest-feature-metadata
May 18, 2026
Merged

[codex] Add package manifest metadata for extensions#144
sfmskywalker merged 3 commits into
mainfrom
codex/package-manifest-feature-metadata

Conversation

@sfmskywalker
Copy link
Copy Markdown
Member

Summary

  • Adds manifest hint metadata to scheduling and service bus CShell feature classes.
  • Adds infrastructure override metadata for Quartz EF Core stores and service bus providers.
  • Adds Elsa.PackageManifest.Generator 0.0.1-preview.41 and enables generation for shell-feature modules across target frameworks.

Validation

  • dotnet build src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/Elsa.ServiceBus.AzureServiceBus.csproj
  • dotnet build src/modules/servicebus/Elsa.ServiceBus.MassTransit.RabbitMq/Elsa.ServiceBus.MassTransit.RabbitMq.csproj
  • dotnet build src/modules/scheduling/Elsa.Scheduling.Quartz/Elsa.Scheduling.Quartz.csproj
  • dotnet build src/modules/scheduling/Elsa.Scheduling.Quartz.EFCore.Sqlite/Elsa.Scheduling.Quartz.EFCore.Sqlite.csproj

All listed builds passed. Existing warnings remain for Snappier NU1903 and obsolete API usage in the touched module dependency graph.

@sfmskywalker sfmskywalker marked this pull request as ready for review May 18, 2026 01:14
@sfmskywalker sfmskywalker requested a review from Copilot May 18, 2026 01:14
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds Elsa.PackageManifest.Generator integration and supporting manifest metadata across scheduling and service bus shell features. CShell features are decorated with ManifestSetting attributes describing their settings (display name, category, secret/required/restart flags), and new elsa-package.overrides.json files declare infrastructure providers/configuration keys for each module. The generator package is added centrally and conditionally referenced for any project that contains a ShellFeatures directory.

Changes:

  • Add ManifestSetting/ShellFeature metadata to Quartz, Hangfire, Kafka, Azure Service Bus, and MassTransit (Azure Service Bus / RabbitMQ) shell features.
  • Add elsa-package.overrides.json infrastructure manifests for each affected module.
  • Wire up the Elsa.PackageManifest.Generator package (version pinned in Directory.Packages.props, conditionally referenced in src/modules/Directory.Build.props).

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Directory.Packages.props Pins Elsa.PackageManifest.Generator 0.0.1-preview.41.
src/modules/Directory.Build.props Conditionally references the generator for modules containing a ShellFeatures folder.
src/modules/scheduling/Elsa.Scheduling.Hangfire/ShellFeatures/HangfireShellFeature.cs Adds ManifestSetting attributes for storage/workers/scheduling options.
src/modules/scheduling/Elsa.Scheduling.Quartz/ShellFeatures/QuartzFeature.cs Annotates scheduler settings with manifest metadata.
src/modules/scheduling/Elsa.Scheduling.Quartz/ShellFeatures/QuartzSchedulerFeature.cs Adds DisplayName/Description to ShellFeature attribute.
src/modules/scheduling/Elsa.Scheduling.Quartz.EFCore.{MySql,PostgreSql,Sqlite,SqlServer}/ShellFeatures/*.cs Annotates persistence settings; marks connection string as Secret/Required.
src/modules/scheduling/Elsa.Scheduling.Quartz.EFCore.{MySql,PostgreSql,Sqlite,SqlServer}/elsa-package.overrides.json Declares per-provider database infrastructure metadata.
src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/ShellFeatures/AzureServiceBusShellFeature.cs Annotates connection-string setting.
src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/elsa-package.overrides.json Declares Azure Service Bus infrastructure metadata.
src/modules/servicebus/Elsa.ServiceBus.Kafka/ShellFeatures/KafkaShellFeature.cs Annotates header-key setting.
src/modules/servicebus/Elsa.ServiceBus.Kafka/elsa-package.overrides.json Declares Kafka broker infrastructure metadata.
src/modules/servicebus/Elsa.ServiceBus.MassTransit.AzureServiceBus/ShellFeatures/MassTransitAzureServiceBusFeature.cs Annotates subscription cleanup flag.
src/modules/servicebus/Elsa.ServiceBus.MassTransit.AzureServiceBus/elsa-package.overrides.json Declares MassTransit Azure Service Bus infrastructure metadata.
src/modules/servicebus/Elsa.ServiceBus.MassTransit.RabbitMq/elsa-package.overrides.json Declares MassTransit RabbitMQ infrastructure metadata.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 18, 2026

Greptile Summary

This PR adds [ManifestSetting] and [ManifestInfrastructure] hint attributes to shell feature classes across the scheduling and service-bus modules, and wires up the Elsa.PackageManifest.Generator build-time source generator for every project that contains a ShellFeatures directory.

  • Directory.Packages.props pins the generator at 0.0.1-preview.41, and src/modules/Directory.Build.props conditionally pulls it in with PrivateAssets=\"all\" so it is a build-only dependency.
  • Connection-string settings on all EFCore Quartz stores and on the Azure Service Bus features are correctly marked Secret = true, Required = true; the previous bugs (wrong Kafka header default, wrong RabbitMQ config key) are confirmed fixed.
  • QuartzSchedulerFeature gains DisplayName/Description on its [ShellFeature] attribute, which was the only shell feature missing those human-readable labels.

Confidence Score: 5/5

Safe to merge — changes are additive metadata attributes and a build-time generator reference with no runtime logic touched.

All changed files add declarative hint attributes and an MSBuild conditional package reference. No service registration logic, no runtime behaviour, and no data paths are modified. The two previously identified bugs are confirmed fixed. Connection-string secrets are correctly flagged, and the build-only generator is properly scoped with PrivateAssets=all.

No files require special attention.

Important Files Changed

Filename Overview
Directory.Packages.props Adds Elsa.PackageManifest.Generator 0.0.1-preview.41 to the central package version list; no logic changes.
src/modules/Directory.Build.props Conditionally adds the generator as a PrivateAssets build-only reference for any project containing a ShellFeatures directory.
src/modules/servicebus/Elsa.ServiceBus.Kafka/ShellFeatures/KafkaShellFeature.cs Fixes the header-key default from localhost:9092 to x-workflow-instance-id and adds ManifestSetting/ManifestInfrastructure metadata.
src/modules/servicebus/Elsa.ServiceBus.MassTransit.RabbitMq/ShellFeatures/MassTransitRabbitMqFeature.cs Adds ManifestInfrastructure with ConfigurationKeys = MassTransitRabbitMq, matching the actual GetSection call in ConfigureServices.
src/modules/servicebus/Elsa.ServiceBus.AzureServiceBus/ShellFeatures/AzureServiceBusShellFeature.cs Adds ManifestInfrastructure and ManifestSetting for the connection string property; marks it Secret/Required correctly.
src/modules/servicebus/Elsa.ServiceBus.MassTransit.AzureServiceBus/ShellFeatures/MassTransitAzureServiceBusFeature.cs Adds ManifestInfrastructure; ConfigurationKeys accurately reflect the two GetSection calls used in ConfigureServices.
src/modules/scheduling/Elsa.Scheduling.Quartz.EFCore.Sqlite/ShellFeatures/QuartzSqliteFeature.cs Adds ManifestInfrastructure and ManifestSetting attributes; UseClustering is correctly marked Advanced given SQLite's lack of true multi-node clustering support.
src/modules/scheduling/Elsa.Scheduling.Quartz/ShellFeatures/QuartzSchedulerFeature.cs Adds DisplayName and Description to the ShellFeature attribute — the only feature previously missing human-readable labels.

Reviews (3): Last reviewed commit: "Use infrastructure attributes in manifes..." | Re-trigger Greptile

Comment thread src/modules/servicebus/Elsa.ServiceBus.Kafka/ShellFeatures/KafkaShellFeature.cs Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated 1 comment.

Description = "The Kafka message header key used to carry the workflow instance ID.",
Category = "Headers",
RestartRequired = true)]
public string WorkflowInstanceIdHeaderKey { get; set; } = "x-workflow-instance-id";
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated no new comments.

@sfmskywalker sfmskywalker merged commit 1731597 into main May 18, 2026
8 checks passed
@sfmskywalker sfmskywalker deleted the codex/package-manifest-feature-metadata branch May 18, 2026 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants