Skip to content

Commit 456bb59

Browse files
committed
chore: update .dockerignore and Zendesk MCP docs
Added new files to .dockerignore for privacy and cleanliness. Enhanced documentation by including details about the new Zendesk MCP server, its architecture, configuration, and usage.
1 parent 49c7f0f commit 456bb59

84 files changed

Lines changed: 7006 additions & 111 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
**/node_modules
2020
**/npm-debug.log
2121
**/obj
22+
**/appsettings.Development.json
23+
**/appsettings.*.local.json
24+
.artifacts
2225
**/secrets.dev.yaml
2326
**/values.dev.yaml
2427
LICENSE

CLAUDE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ registration, health checks, OpenTelemetry) and follows a fixed shape — study
8484
A newer Zendesk vertical spans the layers: `ES.FX.Zendesk` (typed Zendesk API client,
8585
[`docs/libraries/zendesk-client.md`](docs/libraries/zendesk-client.md)), `ES.FX.Ignite.Zendesk` (its Spark,
8686
[`docs/ignite/sparks/zendesk.md`](docs/ignite/sparks/zendesk.md)), and `ES.FX.Zendesk.MCP.Host` (the
87-
deployable MCP server app noted above; its MCP wiring is host-inline — there is no MCP Spark package).
87+
deployable MCP server app exposing the client as 168 read/write MCP tools,
88+
[`docs/libraries/zendesk-mcp-server.md`](docs/libraries/zendesk-mcp-server.md); its MCP wiring is
89+
host-inline — there is no MCP Spark package).
8890

8991
## Conventions & Build Configuration
9092

docs/development/hosting.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,20 @@ Everything lives in the `ES.FX.Hosting.Lifetime` namespace.
6767

6868
## Exit codes
6969

70-
`RunAsync` maps three outcomes onto the returned exit code:
70+
`RunAsync` maps these outcomes onto the returned exit code:
7171

7272
| Outcome | Returned code | Logged as |
7373
| --- | --- | --- |
7474
| Delegate returns normally | the value your delegate returns | `Debug` — "Program completed with exit code …" |
7575
| Delegate throws `ControlledExitException` | `ex.ExitCode` | `Debug` — "Program exited controlled …" |
76+
| Delegate throws `HostAbortedException` | *(rethrown, no code)* | not logged — see below |
7677
| Delegate throws any other exception | `1` | `Critical` — "Program terminated unexpectedly" (with the exception) |
7778

79+
`HostAbortedException` is deliberately **not** swallowed: design-time tooling (the EF Core tools) and test
80+
hosts (`WebApplicationFactory`) abort the host on purpose and require the exception to propagate out of `Main`
81+
to take over the captured host. Treating it as a crash would break `dotnet ef` and integration tests against
82+
hosts built on `ProgramEntry`.
83+
7884
Because you return the exit code from the delegate, wire it straight into the process exit code by returning the result of `RunAsync` from your top-level statements (as in the examples on this page).
7985

8086
## Controlled exit

docs/ignite/sparks/zendesk.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ the status code on failure. Response bodies are never logged.
275275
## See also
276276

277277
- [Zendesk API client](../../libraries/zendesk-client.md) — the client surface, OAuth model, and error handling.
278+
- [Zendesk MCP server](../../libraries/zendesk-mcp-server.md) — a deployable MCP host built on this Spark.
278279
- [Ignite overview](../index.md)
279280
- [Sparks catalog](./index.md)
280281
- [Azure Key Vault Secrets Spark](./azure-keyvault-secrets.md) — for the OAuth client secret.

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ For the full walkthrough, see the [Quickstart](./getting-started/quickstart.md)
6868
| Add a helper for a specific third-party library | [Additions catalog](./additions/index.md) |
6969
| Use the core error-handling and primitive types | [Results & Problems](./development/results-and-problems.md), [Primitives](./development/primitives.md) |
7070
| Use a standalone feature library | [Transactional Outbox](./libraries/transactional-outbox.md), [Migrations](./libraries/migrations.md), [Zendesk client](./libraries/zendesk-client.md) |
71+
| Expose Zendesk to an AI agent (MCP server) | [Zendesk MCP server](./libraries/zendesk-mcp-server.md) |
7172
| Build, test, or contribute to the framework | [Development guide](./development/index.md) |
7273

7374
## See also

docs/libraries/index.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ into Ignite when you want it to.
1616
| [**Migrations**](./migrations.md) | `ES.FX.Migrations` (+ `ES.FX.Ignite.Migrations`) | A DI-driven migration runner: implement `IMigrationsTask`, register it, and a hosted service applies every task at startup. |
1717
| [**Zendesk API client**](./zendesk-client.md) | `ES.FX.Zendesk` (+ `ES.FX.Ignite.Zendesk` Spark) | A typed, OAuth-authenticated client for the Zendesk Support REST API — resource-grouped operations, typed errors with `Retry-After`, and OpenTelemetry tracing. |
1818

19-
Both libraries are independently consumable. Each has its own page below with the full end-to-end walkthrough.
19+
Each library is independently consumable and has its own page below with the full end-to-end walkthrough.
2020

2121
---
2222

@@ -70,6 +70,11 @@ multi-tenant instances, the resource areas, configuration and secret hygiene, th
7070
handling and rate limits, and observability. The [Zendesk Spark](../ignite/sparks/zendesk.md) page
7171
covers the Ignite integration (config binding, startup validation, live health check, tracing).
7272

73+
For exposing Zendesk to an AI agent, the [Zendesk MCP server](./zendesk-mcp-server.md) is a deployable
74+
[Model Context Protocol](https://modelcontextprotocol.io) host — built on this client and Ignite — that
75+
publishes the full client surface as 168 read and write MCP tools, with execution-mode gating and Origin
76+
validation. It is an application, not a package.
77+
7378
---
7479

7580
## See also
@@ -78,6 +83,7 @@ covers the Ignite integration (config binding, startup validation, live health c
7883
- [Migrations](./migrations.md)
7984
- [Zendesk API client](./zendesk-client.md)
8085
- [Zendesk Spark](../ignite/sparks/zendesk.md)
86+
- [Zendesk MCP server](./zendesk-mcp-server.md)
8187
- [Transactional Outbox — EF Core additions](../additions/entity-framework-core.md)
8288
- [MassTransit additions](../additions/masstransit.md)
8389
- [Entity Framework Core Spark](../ignite/sparks/entity-framework-core.md)

docs/libraries/zendesk-client.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ counts and durations for the underlying `HttpClient`.
378378
## See also
379379

380380
- [Zendesk Spark](../ignite/sparks/zendesk.md) — the Ignite integration: config binding, health check, tracing.
381+
- [Zendesk MCP server](./zendesk-mcp-server.md) — a deployable MCP host exposing this client as 168 agent tools.
381382
- [Framework libraries](./index.md)
382383
- [Ignite overview](../ignite/index.md)
383384
- [Zendesk API reference](https://developer.zendesk.com/api-reference/)

0 commit comments

Comments
 (0)