Skip to content

feat(logs): WriteLogsAsync and GetLogAsync - #104

Merged
Domantas merged 3 commits into
mainfrom
feat/logs-stage-a
Oct 21, 2026
Merged

Domantas merged 3 commits into
mainfrom
feat/logs-stage-a

Conversation

@Domantas

Copy link
Copy Markdown
Contributor

Logs Stage A for the .NET SDK.

  • DTOs regenerated from gateway audit/logging (7afc82b57): Logs.WriteLogsAsync on the Api client (POST /{version}/logs, 1–100 entries, answers Accepted) and Logs.GetLogAsync on the Hub client (GET /{version}/logs/{Id}); AWS CloudWatch logging integration types; Origin on log entries.
  • Breaking: SaveLogSettings flags are now bool? (not sent = unchanged).
  • Tests: LogsEndpointTests (Api: body + Accepted, 429 CM-ERRORS-LOGGING-003), HubLogsEndpointTests (GetLog, TestLoggingIntegration); coverage snapshots Api.Logs (new), Hub.Logs, Hub.Internal accepted against the endpoint manifest. dotnet test Norbix.Sdk.sln -p:NuGetAudit=false: 365 passed, 0 failed (103 Sdk + 260 Hub + 2 Coexistence).
  • README: Api logs row; Hub logs row says to run TestLoggingIntegrationAsync after saving an integration.

Expected release: v3.10.0 (minor).

🤖 Generated with Claude Code

Domantas and others added 3 commits October 21, 2026 21:15
…nerated off gateway audit/logging 7afc82b57

The client methods are source-generated from the DTOs, so the regeneration
is the feature:
Api: WriteLogs / WriteLogEntry / WriteLogsResponse (POST /{version}/logs)
  -> Logs.WriteLogsAsync.
Hub: GetLog / GetLogResponse (GET /{version}/logs/{Id}) -> Logs.GetLogAsync;
  the AWS CloudWatch logging integration request and dto; Origin on
  TenantLogEntryDto.

Breaking: SaveLogSettings.SkipCloudDashboardLogs, SkipHttpBodyMeta and
AiChatLoggingEnabled are now bool? (not sent = unchanged) instead of bool.
Setting them still compiles; code that reads them as bool needs a cast.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
LogsEndpointTests (Api): the entries travel in the body, Accepted comes back,
a 429 quota refusal throws with CM-ERRORS-LOGGING-003.
HubLogsEndpointTests: the log id lands in the path; the integration test
posts the integration id.
Coverage snapshots accepted: Api.Logs (new), Hub.Logs (+GetLog) — every
endpoint matches the gateway manifest; Hub.Internal only gains the two
AWS CloudWatch typegen anchor properties.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hub row names GetLogAsync and says to call TestLoggingIntegrationAsync after
saving an integration — nothing is delivered until its last test passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🚀 Release preview

Next version on merge to main: none

semantic-release dry-run output
[6:16:08 PM] [semantic-release] › ℹ  Running semantic-release version 25.0.9
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/github"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "verifyRelease" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/github"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/github"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/github"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/exec"
[6:16:09 PM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/github"
[6:16:11 PM] [semantic-release] › ℹ  This test run was triggered on the branch refs/pull/104/merge, while semantic-release is configured to only publish from main, therefore a new version won’t be published.

If next_version is none, your commits don't trigger a release. Use feat: for minor (breaking changes too, until launch), fix: / perf: for patch.

@Domantas
Domantas merged commit 3b65a6d into main Oct 21, 2026
7 checks passed
@Domantas
Domantas deleted the feat/logs-stage-a branch October 21, 2026 18:17
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 3.27.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant