OpsFusion.IdentitySync
9.0.0
dotnet add package OpsFusion.IdentitySync --version 9.0.0
NuGet\Install-Package OpsFusion.IdentitySync -Version 9.0.0
<PackageReference Include="OpsFusion.IdentitySync" Version="9.0.0" />
<PackageVersion Include="OpsFusion.IdentitySync" Version="9.0.0" />
<PackageReference Include="OpsFusion.IdentitySync" />
paket add OpsFusion.IdentitySync --version 9.0.0
#r "nuget: OpsFusion.IdentitySync, 9.0.0"
#:package OpsFusion.IdentitySync@9.0.0
#addin nuget:?package=OpsFusion.IdentitySync&version=9.0.0
#tool nuget:?package=OpsFusion.IdentitySync&version=9.0.0
OpsFusion.IdentitySync
Reusable identity permissions/screens sync package for ASP.NET Core APIs.
What this package gives you
- Permission + screen sync orchestration
- HTTP sync client to Identity Platform
- File-based manifest reader
- Background recycle sync hosted service
- Startup force-sync helper
- Reusable sync API endpoint:
POST api/v1/identity-sync
1. Install package
If using project reference:
- Reference
OpsFusion.IdentitySyncproject/package in your API.
If using NuGet package:
dotnet add package OpsFusion.IdentitySync --version 9.0.0
2. Register services (one line)
In Program.cs:
using OpsFusion.IdentitySync;
builder.Services.AddControllers();
builder.Services.AddOpsFusionIdentitySync(builder.Configuration);
3. Add required authorization policy
The built-in controller uses policy: OpsFusion.IdentitySync.Execute.
You must define this policy in your auth setup. Example:
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("OpsFusion.IdentitySync.Execute", policy =>
policy.RequireAuthenticatedUser()
.RequireClaim("permission", "OpsFusion.IdentitySync.Execute"));
});
If your permission claim type is different, update RequireClaim(...) accordingly.
4. Required appsettings configuration
Add this section in your appsettings.json:
{
"IdentitySync": {
"Enabled": true,
"BaseUrl": "https://your-identity-platform/",
"PermissionsSyncPath": "api/v1/permissions/sync",
"ScreensSyncPath": "api/v1/permissions/screens/sync",
"PermissionsManifestPath": "Resources/opsfusion-permissions.json",
"ScreensManifestPath": "Resources/opsfusion-screens.json",
"RecycleIntervalMinutes": 60,
"ForceSyncOnStartup": true,
"FailStartupIfInitialSyncFails": false
}
}
5. Manifest files
Ensure these files exist in your API output (copy to output/publish):
Resources/opsfusion-permissions.jsonResources/opsfusion-screens.json
FileIdentityManifestReader resolves paths from:
- absolute path (if provided)
AppContext.BaseDirectory- app content root
6. Trigger sync API
Endpoint exposed by package controller:
POST /api/v1/identity-sync
Requires authenticated user with permission policy OpsFusion.IdentitySync.Execute.
7. Optional startup force-sync
If you want initial sync on startup:
var app = builder.Build();
await app.ForceIdentityManifestSyncAsync();
Minimal integration checklist
- Add package reference
- Call
AddOpsFusionIdentitySync(configuration) - Add policy
OpsFusion.IdentitySync.Execute - Add
IdentitySyncconfig section - Ensure manifest JSON files exist
Notes
- Default route is
api/v1/identity-sync. - Default success response body:
{ "success": true, "message": "Permissions and screens synced successfully." }
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Http (>= 9.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 9.0.0 | 93 | 5/2/2026 |