[codex] Add package manifest metadata for extensions#144
Conversation
There was a problem hiding this comment.
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/ShellFeaturemetadata to Quartz, Hangfire, Kafka, Azure Service Bus, and MassTransit (Azure Service Bus / RabbitMQ) shell features. - Add
elsa-package.overrides.jsoninfrastructure manifests for each affected module. - Wire up the
Elsa.PackageManifest.Generatorpackage (version pinned inDirectory.Packages.props, conditionally referenced insrc/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 SummaryThis PR adds
Confidence Score: 5/5Safe 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.
|
| 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
| 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"; |
Summary
Validation
All listed builds passed. Existing warnings remain for Snappier NU1903 and obsolete API usage in the touched module dependency graph.