keycloak-administratio…
Keycloak identity and access management (IAM) administration guidance — realm management, client configuration, authentication flows, authorization policies,…
Orchestrates Aspire distributed applications using the Aspire CLI for running, debugging, and managing distributed apps. USE FOR: aspire start, aspire stop, start aspire app, aspire describe, list aspire integrations, debug aspire issues, view aspire logs, add aspire resource,
$ npx -y skills add NikiforovAll/keycloak-authorization-services-dotnet --skill aspire --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/aspireContext preview
The summary Claude sees to decide when to auto-load this skill.
Orchestrates Aspire distributed applications using the Aspire CLI for running, debugging, and managing distributed apps. USE FOR: aspire start, aspire stop, start aspire app, aspire describe, list aspire integrations, debug aspire issues, view aspire logs, add aspire resource,
name: aspire description: "Orchestrates Aspire distributed applications using the Aspire CLI for running, debugging, and managing distributed apps. USE FOR: aspire start, aspire stop, start aspire app, aspire describe, list aspire integrations, debug aspire issues, view aspire logs, add aspire resource, aspire dashboard, update aspire apphost. DO NOT USE FOR: non-Aspire .NET apps (use dotnet CLI), container-only deployments (use docker/podman), Azure deployment after local testing (use azure-deploy skill). INVOKES: Aspire CLI commands (aspire start, aspire describe, aspire otel logs, aspire docs search, aspire add), bash. FOR SINGLE OPERATIONS: Use Aspire CLI commands directly for quick resource status or doc lookups."
This repository uses Aspire to orchestrate its distributed application. Resources are defined in the AppHost project (`apphost.cs` or `apphost.ts`).
| Task | Command | |---|---| | Start the app | `aspire start` | | Start isolated (worktrees) | `aspire start --isolated` | | Restart the app | `aspire start` (stops previous automatically) | | Wait for resource healthy | `aspire wait <resource>` | | Stop the app | `aspire stop` | | List resources | `aspire describe` or `aspire resources` | | Run resource command | `aspire resource <resource> <command>` | | Start/stop/restart resource | `aspire resource <resource> start|stop|restart` | | Rebuild a .NET project resource | `aspire resource <resource> rebuild` | | View console logs | `aspire logs [resource]` | | View structured logs | `aspire otel logs [resource]` | | View traces | `aspire otel traces [resource]` | | Logs for a trace | `aspire otel logs --trace-id <id>` | | Add an integration | `aspire add` | | List running AppHosts | `aspire ps` | | Update AppHost packages | `aspire update` | | Search docs | `aspire docs search <query>` | | Get doc page | `aspire docs get <slug>` | | List doc pages | `aspire docs list` | | Environment diagnostics | `aspire doctor` | | List resource MCP tools | `aspire mcp tools` | | Call resource MCP tool | `aspire mcp call <resource> <tool> --input <json>` |
Most commands support `--format Json` for machine-readable output. Use `--apphost <path>` to target a specific AppHost.
Use `aspire start` to run the AppHost in the background. When working in a git worktree, use `--isolated` to avoid port conflicts and to prevent sharing user secrets or other local state with other running instances:
aspire start --isolated
Use `aspire wait <resource>` to block until a resource is healthy before interacting with it:
aspire start --isolated aspire wait myapi
Choose the right action based on what changed:
| What changed | Action | Why | |---|---|---| | AppHost project (`apphost.cs`/`apphost.ts`) | `aspire start` | Resource graph changed; full restart required | | Compiled .NET project resource | `aspire resource <name> rebuild` | Rebuilds and restarts only that resource | | Interpreted resource (JavaScript, Python) | Typically nothing — most run with file watchers | Restart the resource if no watch mode is configured |
**Never restart the entire AppHost just because a single resource changed.** Use `aspire resource <name> rebuild` for .NET project resources — it coordinates stop, build, and restart for just that resource. Use `aspire describe --format Json` to check which commands a resource supports.
Before making code changes, inspect the app state:
1. `aspire describe` — check resource status 2. `aspire otel logs <resource>` — view structured logs 3. `aspire logs <resource>` — view console output 4. `aspire otel traces <resource>` — view distributed traces
Use `aspire docs search` to find integration documentation, then `aspire docs get` to read the full guide. Use `aspire add` to add the integration package to the AppHost.
After adding an integration, restart the app with `aspire start` for the new resource to take effect.
Some resources expose MCP tools (e.g. `WithPostgresMcp()` adds SQL query tools). Discover and call them via CLI:
aspire mcp tools # list available tools
aspire mcp tools --format Json # includes input schemas
aspire mcp call <resource> <tool> --input '{"key":"value"}' # invoke a toolIf configured, use Playwright CLI for functional testing of resources. Get endpoints via `aspire describe`. Run `playwright-cli --help` for available commands.
🔐 Easy Authentication and Authorization with Keycloak in .NET.
Keycloak identity and access management (IAM) administration guidance — realm management, client configuration, authentication flows, authorization policies,…
Implementation guide for Keycloak.AuthServices .NET library — authentication (JWT Bearer, OIDC, RFC 8414), authorization (RBAC, resource protection,…