Skip to content

Conversation

@stijnmoreels
Copy link
Member

Adds the initial proposal for the migration guide to be included in the v2.1 release so that migration from deprecated members/types to the new ones happen more smoothly before the actual v3 breaking change release.

@stijnmoreels stijnmoreels added the documentation All issues related to documentation label Dec 17, 2025
@netlify
Copy link

netlify bot commented Dec 17, 2025

Deploy Preview for arcus-security ready!

Name Link
🔨 Latest commit f391cad
🔍 Latest deploy log https://app.netlify.com/projects/arcus-security/deploys/6943936f5ffbb4000873f5c4
😎 Deploy Preview https://deploy-preview-501--arcus-security.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Member

@fgheysels fgheysels left a comment

Choose a reason for hiding this comment

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

Thanks for this.
I have some suggestions/remarks though :)

* 🗑️ .NET 6 support is removed. All Arcus.Security.* packages support .NET 8 and stop supporting .NET 6. (.NET 10 support starts from v2.1.)
* 🗑️ Transient GuardNET dependency is replaced by built-in argument checking.
* 🗑️ Transient Arcus.Observability dependency for auditing is removed.
* ✏️ The new main core types are now under the `Arcus.Security` namespace, instead of previously the `Arcus.Security.Core` namespace. Following types in the old namespace are removed:
Copy link
Member

Choose a reason for hiding this comment

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

I think it would be more clear if we explicitly state (repeat) the name of the namespace instead of saying (... in the old namespace are removed).

Copy link
Member Author

Choose a reason for hiding this comment

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

Done in f391cad

* `MutatedSecretNameCachedSecretProvider`

## 🎯 Use `ISecretStore` instead of `ISecretProvider` as the secret store's main point of contact
Starting from v3, accessing the secret store now happens via the `Arcus.Security.ISecretStore` interface (in new namespace), instead of previously using the same `Arcus.Security.Core.ISecretProvider` interface as for the external secret provider implementations.
Copy link
Member

Choose a reason for hiding this comment

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

The namespace is mentioned in the typename, so is it necessary to add the '(in new namespace)' here ?
Hmm, maybe to emphasize that the change is in deed in the namespacename.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, would be in favor of a full namespace here to show the different location.

```csharp
string secretValue = await store.GetSecretAsync("<name>");
```
Just be aware that in case of a failure, an exception will still be thrown.
Copy link
Member

Choose a reason for hiding this comment

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

Maybe we should've implemented that in such a way that we return null instead of throwing an exception ?

Copy link
Member Author

Choose a reason for hiding this comment

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

Might be better communicated to users that it is only there if there is a result, otherwise we could have succes with null or not found being rather similar.
Also following the built in result type in F# here as well.

```

:::info
The `SecretsResult` acts the same way as the `SecretResult`, only for a collection of secrets (implements `IEnumerable<SecretResult>`).
Copy link
Member

Choose a reason for hiding this comment

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

Now that I read this, maybe we should've named it SecretResultCollection instead of SecretsResult ?

Copy link
Member Author

@stijnmoreels stijnmoreels Dec 17, 2025

Choose a reason for hiding this comment

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

It is more a result than a collection of results, though. It's a folded/aggregated result.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation All issues related to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants