Skip to content

Add the six notifications commands - #3443

Open
Alexander Fayad (alexfayad) wants to merge 9 commits into
mainfrom
onboard-notifications-integration
Open

Add the six notifications commands#3443
Alexander Fayad (alexfayad) wants to merge 9 commits into
mainfrom
onboard-notifications-integration

Conversation

@alexfayad

@alexfayad Alexander Fayad (alexfayad) commented Aug 13, 2026

Copy link
Copy Markdown

Release Notes

New Features

  • Add confluent notifications commands for managing notification integrations, subscriptions, resource preferences, resource subscriptions, notification types, and in-app user notifications.

Checklist

  • I have successfully built and used a custom CLI binary, without linter issues from this PR.
  • I have clearly specified in the What section below whether this PR applies to Confluent Cloud, Confluent Platform, or both.
  • I have verified this PR in Confluent Cloud pre-prod or production environment, if applicable.
  • I have verified this PR in Confluent Platform on-premises environment, if applicable.
  • I have attached manual CLI verification results or screenshots in the Test & Review section below.
  • I have added appropriate CLI integration or unit tests for any new or updated commands and functionality.
  • I confirm that this PR introduces no breaking changes or backward compatibility issues.
  • I have indicated the potential customer impact if something goes wrong in the Blast Radius section below.
  • I have put checkmarks below confirming that the feature associated with this PR is enabled in:
    • Confluent Cloud prod
    • Confluent Cloud stag
    • Confluent Platform
    • Check this box if the feature is enabled for certain organizations only

What

Onboards Confluent Cloud Notifications to the CLI. Adds six command groups under confluent notifications: integration, subscription, resource-preference, resource-subscription, notification-type, and user-notification.

The code is generated by cli-terraform-generator from the notifications OpenAPI spec and Go SDK. The commands, the pkg/ccloudv2 wrapper, the test-server handlers, the integration tests, the live tests, and the goldens all come from the generator.

One API-specific workaround is baked in. The related and resource_name sub-fields of the shared GlobalObjectReference are marked required, readOnly, and format: uri in the spec, and the SDK serializes them unconditionally. A create that carried only id sent an empty string for both and Confluent Cloud rejected it with 400 Bad Request. The generated subscription and resource-subscription commands now fill both fields with a placeholder URI on create and update, matching the workaround the published confluent_ksql_cluster Terraform resource already uses.

Confluent Cloud only.

Blast Radius

New commands only. No existing command changes, and nothing outside internal/notifications shares this code. If a notifications command misbehaves, only customers running confluent notifications ... are affected.

References

Test & Review

Built a custom binary and ran the notifications commands against a real Confluent Cloud org. Verified create / describe / list / delete for integration, and create / describe / update / delete for subscription and resource-subscription with a multi-element integrations value, all without the prior 400. Generated integration and live tests are included.

CLI create against real Confluent Cloud (before/after the fix)

Before the fix, related/resource_name went out as a non-URI placeholder and Confluent Cloud rejected the create against the spec's format: uri on /integrations/0/related:

POST /notifications/v1/subscriptions
{"current_state":"ENABLED","integrations":[{"id":"i-59wqM","related":"_","resource_name":"_"}],"notification_type":{"id":"nt-9KD1p","related":"_","resource_name":"_"}}

HTTP/2.0 400 Bad Request
{"errors":[{"status":"400","code":"1101","title":"Invalid request body","detail":"Invalid Json: Invalid request body","source":{"pointer":"/integrations/0/related"}}]}
Error: Invalid Json: Invalid request body

The shipped command fills both fields with a placeholder URI and the create succeeds:

$ confluent notifications subscription create --notification-type nt-9KD1p --integrations i-59wqM --current-state ENABLED -o json

POST /notifications/v1/subscriptions
{"current_state":"ENABLED","integrations":[{"id":"i-59wqM","related":"https://confluent.cloud/_","resource_name":"https://confluent.cloud/_"}],"notification_type":{"id":"nt-9KD1p","related":"https://confluent.cloud/_","resource_name":"https://confluent.cloud/_"}}

HTTP/2.0 201 Created

{
  "id": "s-gAXVpd",
  "notification_type": "nt-9KD1p",
  "current_state": "ENABLED"
}

🤖 Generated with Claude Code

Generated by cli-terraform-generator merge mode from the notifications v1
OpenAPI spec: integration, subscription, resource-preference,
resource-subscription, notification-type, and user-notification, plus their
ccloudv2 wrappers, test-server handlers, integration tests, input fixtures,
output goldens, and live tests.

The integration command's target is a oneOf. Update leaves --kind optional so
an update touching only display-name or description is accepted, and rejects a
variant flag supplied without --kind rather than silently dropping it.

Verified with go build ./..., go vet, and
go test ./test/ -run 'TestCLI/TestNotifications'.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 13, 2026 18:00
@alexfayad
Alexander Fayad (alexfayad) requested a review from a team as a code owner August 13, 2026 18:00
@confluent-cla-assistant

confluent-cla-assistant Bot commented Aug 13, 2026

Copy link
Copy Markdown

🎉 All Contributor License Agreements have been signed. Ready to merge.
Please push an empty commit if you would like to re-run the checks to verify CLA status for all contributors.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This pull request introduces a new top-level notifications command group backed by the Notifications v1 CCloud SDK, adds the corresponding test-server endpoints, and wires in integration/live tests plus golden fixtures to validate CLI behavior.

Changes:

  • Add Notifications v1 API client bootstrap + CRUD/list wrappers in pkg/ccloudv2, and register the client on the shared ccloudv2.Client.
  • Add internal/notifications Cobra command tree (integrations, notification-types, resource-preferences, resource-subscriptions, subscriptions, user-notifications) and register it under the root command.
  • Extend the test server router + handlers, add integration/live tests, and add input/output fixtures + goldens for the new commands.

Reviewed changes

Copilot reviewed 185 out of 211 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
test/test-server/notifications_user_notification_handler.go Adds test-server handlers for user-notifications list/get/patch.
test/test-server/notifications_subscription_handler.go Adds test-server handlers for subscriptions list/create/get/update/delete.
test/test-server/notifications_resource_subscription_handler.go Adds test-server handlers for resource-subscriptions create/get/update/delete.
test/test-server/notifications_resource_preference_handler.go Adds test-server handlers for resource-preferences create/get/update/delete.
test/test-server/notifications_notification_type_handler.go Adds test-server handlers for notification-types list/get.
test/test-server/notifications_integration_handler.go Adds test-server handlers for integrations list/create/get/update/delete.
test/test-server/ccloudv2_router.go Registers Notifications v1 routes in the test-server router.
test/notifications_user_notification_test.go Adds integration tests for user-notification describe/list/update + autocomplete.
test/notifications_subscription_test.go Adds integration tests for subscription CRUD + autocomplete.
test/notifications_resource_subscription_test.go Adds integration tests for resource-subscription CRUD.
test/notifications_resource_preference_test.go Adds integration tests for resource-preference CRUD.
test/notifications_notification_type_test.go Adds integration tests for notification-type describe/list + autocomplete.
test/notifications_integration_test.go Adds integration tests for integration CRUD + autocomplete.
test/live/notifications_user_notification_live_test.go Adds live CRUD coverage for user-notifications.
test/live/notifications_subscription_live_test.go Adds live CRUD coverage for subscriptions (env-var gated).
test/live/notifications_resource_subscription_live_test.go Adds live CRUD coverage for resource-subscriptions (env-var gated).
test/live/notifications_resource_preference_live_test.go Adds live CRUD coverage for resource-preferences.
test/live/notifications_notification_type_live_test.go Adds live coverage for notification-type list/describe.
test/fixtures/output/notifications/user-notification/update/update-read.golden Adds golden output for user-notification update (human).
test/fixtures/output/notifications/user-notification/update/update-invalid.golden Adds golden output for user-notification update (404).
test/fixtures/output/notifications/user-notification/update-help.golden Adds golden help for user-notification update.
test/fixtures/output/notifications/user-notification/list/list.golden Adds golden output for user-notification list (human).
test/fixtures/output/notifications/user-notification/list/list-yaml.golden Adds golden output for user-notification list (yaml).
test/fixtures/output/notifications/user-notification/list/list-type.golden Adds golden output for user-notification list filtered by type.
test/fixtures/output/notifications/user-notification/list/list-time-range.golden Adds golden output for user-notification list filtered by time range.
test/fixtures/output/notifications/user-notification/list/list-sort.golden Adds golden output for user-notification list sorted.
test/fixtures/output/notifications/user-notification/list/list-severity.golden Adds golden output for user-notification list filtered by severity.
test/fixtures/output/notifications/user-notification/list/list-search.golden Adds golden output for user-notification list filtered by search.
test/fixtures/output/notifications/user-notification/list/list-read.golden Adds golden output for user-notification list filtered by read.
test/fixtures/output/notifications/user-notification/list/list-json.golden Adds golden output for user-notification list (json).
test/fixtures/output/notifications/user-notification/list/list-include.golden Adds golden output for user-notification list with include fields.
test/fixtures/output/notifications/user-notification/list/list-crn.golden Adds golden output for user-notification list filtered by CRN.
test/fixtures/output/notifications/user-notification/list-help.golden Adds golden help for user-notification list.
test/fixtures/output/notifications/user-notification/help.golden Adds golden help for user-notification command group.
test/fixtures/output/notifications/user-notification/describe/describe.golden Adds golden output for user-notification describe (human).
test/fixtures/output/notifications/user-notification/describe/describe-yaml.golden Adds golden output for user-notification describe (yaml).
test/fixtures/output/notifications/user-notification/describe/describe-json.golden Adds golden output for user-notification describe (json).
test/fixtures/output/notifications/user-notification/describe/describe-invalid.golden Adds golden output for user-notification describe (404).
test/fixtures/output/notifications/user-notification/describe/describe-autocomplete.golden Adds golden output for user-notification autocomplete.
test/fixtures/output/notifications/user-notification/describe-help.golden Adds golden help for user-notification describe.
test/fixtures/output/notifications/subscription/update/update-invalid.golden Adds golden output for subscription update (404).
test/fixtures/output/notifications/subscription/update/update-integrations.golden Adds golden output for subscription update integrations (human).
test/fixtures/output/notifications/subscription/update/update-current-state.golden Adds golden output for subscription update current-state (human).
test/fixtures/output/notifications/subscription/update-help.golden Adds golden help for subscription update.
test/fixtures/output/notifications/subscription/list/list.golden Adds golden output for subscription list (human).
test/fixtures/output/notifications/subscription/list/list-yaml.golden Adds golden output for subscription list (yaml).
test/fixtures/output/notifications/subscription/list/list-json.golden Adds golden output for subscription list (json).
test/fixtures/output/notifications/subscription/list-help.golden Adds golden help for subscription list.
test/fixtures/output/notifications/subscription/help.golden Adds golden help for subscription command group.
test/fixtures/output/notifications/subscription/describe/describe.golden Adds golden output for subscription describe (human).
test/fixtures/output/notifications/subscription/describe/describe-yaml.golden Adds golden output for subscription describe (yaml).
test/fixtures/output/notifications/subscription/describe/describe-json.golden Adds golden output for subscription describe (json).
test/fixtures/output/notifications/subscription/describe/describe-invalid.golden Adds golden output for subscription describe (404).
test/fixtures/output/notifications/subscription/describe/describe-autocomplete.golden Adds golden output for subscription describe autocomplete.
test/fixtures/output/notifications/subscription/describe-help.golden Adds golden help for subscription describe.
test/fixtures/output/notifications/subscription/delete/delete.golden Adds golden output for subscription delete (force).
test/fixtures/output/notifications/subscription/delete/delete-no-force.golden Adds golden output for subscription delete (prompt).
test/fixtures/output/notifications/subscription/delete/delete-multiple.golden Adds golden output for multi-delete subscriptions.
test/fixtures/output/notifications/subscription/delete/delete-invalid.golden Adds golden output for subscription delete invalid + suggestions.
test/fixtures/output/notifications/subscription/delete/delete-autocomplete.golden Adds golden output for subscription delete autocomplete.
test/fixtures/output/notifications/subscription/delete-help.golden Adds golden help for subscription delete.
test/fixtures/output/notifications/subscription/create/create.golden Adds golden output for subscription create (human).
test/fixtures/output/notifications/subscription/create/create-current-state.golden Adds golden output for subscription create with current-state.
test/fixtures/output/notifications/subscription/create-help.golden Adds golden help for subscription create.
test/fixtures/output/notifications/resource-subscription/update/update-resource.golden Adds golden output for resource-subscription update resource.
test/fixtures/output/notifications/resource-subscription/update/update-resource-type.golden Adds golden output for resource-subscription update resource-type.
test/fixtures/output/notifications/resource-subscription/update/update-invalid.golden Adds golden output for resource-subscription update (404).
test/fixtures/output/notifications/resource-subscription/update/update-integrations.golden Adds golden output for resource-subscription update integrations.
test/fixtures/output/notifications/resource-subscription/update/update-current-state.golden Adds golden output for resource-subscription update current-state.
test/fixtures/output/notifications/resource-subscription/update-help.golden Adds golden help for resource-subscription update.
test/fixtures/output/notifications/resource-subscription/help.golden Adds golden help for resource-subscription command group.
test/fixtures/output/notifications/resource-subscription/describe/describe.golden Adds golden output for resource-subscription describe (human).
test/fixtures/output/notifications/resource-subscription/describe/describe-yaml.golden Adds golden output for resource-subscription describe (yaml).
test/fixtures/output/notifications/resource-subscription/describe/describe-json.golden Adds golden output for resource-subscription describe (json).
test/fixtures/output/notifications/resource-subscription/describe/describe-invalid.golden Adds golden output for resource-subscription describe (404).
test/fixtures/output/notifications/resource-subscription/describe-help.golden Adds golden help for resource-subscription describe.
test/fixtures/output/notifications/resource-subscription/delete/delete.golden Adds golden output for resource-subscription delete (force).
test/fixtures/output/notifications/resource-subscription/delete/delete-no-force.golden Adds golden output for resource-subscription delete (prompt).
test/fixtures/output/notifications/resource-subscription/delete/delete-multiple.golden Adds golden output for multi-delete resource-subscriptions.
test/fixtures/output/notifications/resource-subscription/delete/delete-invalid.golden Adds golden output for resource-subscription delete invalid + suggestions.
test/fixtures/output/notifications/resource-subscription/delete-help.golden Adds golden help for resource-subscription delete.
test/fixtures/output/notifications/resource-subscription/create/create.golden Adds golden output for resource-subscription create (human).
test/fixtures/output/notifications/resource-subscription/create/create-current-state.golden Adds golden output for resource-subscription create with current-state.
test/fixtures/output/notifications/resource-subscription/create-help.golden Adds golden help for resource-subscription create.
test/fixtures/output/notifications/resource-preference/update/update-resource.golden Adds golden output for resource-preference update resource.
test/fixtures/output/notifications/resource-preference/update/update-resource-type.golden Adds golden output for resource-preference update resource-type.
test/fixtures/output/notifications/resource-preference/update/update-invalid.golden Adds golden output for resource-preference update (404).
test/fixtures/output/notifications/resource-preference/update/update-current-state.golden Adds golden output for resource-preference update current-state.
test/fixtures/output/notifications/resource-preference/update-help.golden Adds golden help for resource-preference update.
test/fixtures/output/notifications/resource-preference/help.golden Adds golden help for resource-preference command group.
test/fixtures/output/notifications/resource-preference/describe/describe.golden Adds golden output for resource-preference describe (human).
test/fixtures/output/notifications/resource-preference/describe/describe-yaml.golden Adds golden output for resource-preference describe (yaml).
test/fixtures/output/notifications/resource-preference/describe/describe-json.golden Adds golden output for resource-preference describe (json).
test/fixtures/output/notifications/resource-preference/describe/describe-invalid.golden Adds golden output for resource-preference describe (404).
test/fixtures/output/notifications/resource-preference/describe-help.golden Adds golden help for resource-preference describe.
test/fixtures/output/notifications/resource-preference/delete/delete.golden Adds golden output for resource-preference delete (force).
test/fixtures/output/notifications/resource-preference/delete/delete-no-force.golden Adds golden output for resource-preference delete (prompt).
test/fixtures/output/notifications/resource-preference/delete/delete-multiple.golden Adds golden output for multi-delete resource-preferences.
test/fixtures/output/notifications/resource-preference/delete/delete-invalid.golden Adds golden output for resource-preference delete invalid + suggestions.
test/fixtures/output/notifications/resource-preference/delete-help.golden Adds golden help for resource-preference delete.
test/fixtures/output/notifications/resource-preference/create/create.golden Adds golden output for resource-preference create (human).
test/fixtures/output/notifications/resource-preference/create/create-current-state.golden Adds golden output for resource-preference create with current-state.
test/fixtures/output/notifications/resource-preference/create-help.golden Adds golden help for resource-preference create.
test/fixtures/output/notifications/notification-type/list/list.golden Adds golden output for notification-type list (human).
test/fixtures/output/notifications/notification-type/list/list-yaml.golden Adds golden output for notification-type list (yaml).
test/fixtures/output/notifications/notification-type/list/list-resource-type.golden Adds golden output for notification-type list filtered by resource-type.
test/fixtures/output/notifications/notification-type/list/list-json.golden Adds golden output for notification-type list (json).
test/fixtures/output/notifications/notification-type/list-help.golden Adds golden help for notification-type list.
test/fixtures/output/notifications/notification-type/help.golden Adds golden help for notification-type command group.
test/fixtures/output/notifications/notification-type/describe/describe.golden Adds golden output for notification-type describe (human).
test/fixtures/output/notifications/notification-type/describe/describe-yaml.golden Adds golden output for notification-type describe (yaml).
test/fixtures/output/notifications/notification-type/describe/describe-json.golden Adds golden output for notification-type describe (json).
test/fixtures/output/notifications/notification-type/describe/describe-invalid.golden Adds golden output for notification-type describe (404).
test/fixtures/output/notifications/notification-type/describe/describe-autocomplete.golden Adds golden output for notification-type autocomplete.
test/fixtures/output/notifications/notification-type/describe-help.golden Adds golden help for notification-type describe.
test/fixtures/output/notifications/integration/update/update-webhook-target.golden Adds golden output for integration update webhook target.
test/fixtures/output/notifications/integration/update/update-slack-target.golden Adds golden output for integration update slack target.
test/fixtures/output/notifications/integration/update/update-ms-teams-target.golden Adds golden output for integration update MsTeams target.
test/fixtures/output/notifications/integration/update/update-invalid.golden Adds golden output for integration update (404).
test/fixtures/output/notifications/integration/update/update-display-name.golden Adds golden output for integration update display-name.
test/fixtures/output/notifications/integration/update/update-description.golden Adds golden output for integration update description.
test/fixtures/output/notifications/integration/update-help.golden Adds golden help for integration update.
test/fixtures/output/notifications/integration/list/list.golden Adds golden output for integration list (human).
test/fixtures/output/notifications/integration/list/list-yaml.golden Adds golden output for integration list (yaml).
test/fixtures/output/notifications/integration/list/list-json.golden Adds golden output for integration list (json).
test/fixtures/output/notifications/integration/list-help.golden Adds golden help for integration list.
test/fixtures/output/notifications/integration/help.golden Adds golden help for integration command group.
test/fixtures/output/notifications/integration/describe/describe-yaml.golden Adds golden output for integration describe (yaml).
test/fixtures/output/notifications/integration/describe/describe-webhook-target.golden Adds golden output for integration describe webhook target.
test/fixtures/output/notifications/integration/describe/describe-user-email-target.golden Adds golden output for integration describe user-email target.
test/fixtures/output/notifications/integration/describe/describe-slack-target.golden Adds golden output for integration describe slack target.
test/fixtures/output/notifications/integration/describe/describe-role-email-target.golden Adds golden output for integration describe role-email target.
test/fixtures/output/notifications/integration/describe/describe-ms-teams-target.golden Adds golden output for integration describe MsTeams target.
test/fixtures/output/notifications/integration/describe/describe-json.golden Adds golden output for integration describe (json).
test/fixtures/output/notifications/integration/describe/describe-invalid.golden Adds golden output for integration describe (404).
test/fixtures/output/notifications/integration/describe/describe-in-app-target.golden Adds golden output for integration describe in-app target.
test/fixtures/output/notifications/integration/describe/describe-autocomplete.golden Adds golden output for integration autocomplete.
test/fixtures/output/notifications/integration/describe-help.golden Adds golden help for integration describe.
test/fixtures/output/notifications/integration/delete/delete.golden Adds golden output for integration delete (force).
test/fixtures/output/notifications/integration/delete/delete-no-force.golden Adds golden output for integration delete (prompt).
test/fixtures/output/notifications/integration/delete/delete-multiple.golden Adds golden output for multi-delete integrations.
test/fixtures/output/notifications/integration/delete/delete-invalid.golden Adds golden output for integration delete invalid + suggestions.
test/fixtures/output/notifications/integration/delete/delete-autocomplete.golden Adds golden output for integration delete autocomplete.
test/fixtures/output/notifications/integration/delete-help.golden Adds golden help for integration delete.
test/fixtures/output/notifications/integration/create/create-webhook-target.golden Adds golden output for integration create webhook target.
test/fixtures/output/notifications/integration/create/create-slack-target.golden Adds golden output for integration create slack target.
test/fixtures/output/notifications/integration/create/create-ms-teams-target.golden Adds golden output for integration create MsTeams target.
test/fixtures/output/notifications/integration/create/create-description.golden Adds golden output for integration create with description.
test/fixtures/output/notifications/integration/create-help.golden Adds golden help for integration create.
test/fixtures/output/notifications/help.golden Adds golden help for top-level notifications command group.
test/fixtures/output/help.golden Adds the notifications entry to root help golden.
test/fixtures/input/notifications/user-notification/read_created_user_notification.json Adds fixture payload for reading user-notifications.
test/fixtures/input/notifications/user-notification/create_user_notification.json Adds fixture payload for creating user-notifications.
test/fixtures/input/notifications/subscription/read_created_subscription.json Adds fixture payload for reading subscriptions.
test/fixtures/input/notifications/subscription/create_subscription.json Adds fixture payload for creating subscriptions.
test/fixtures/input/notifications/resource-subscription/read_created_resource_subscription.json Adds fixture payload for reading resource-subscriptions.
test/fixtures/input/notifications/resource-subscription/create_resource_subscription.json Adds fixture payload for creating resource-subscriptions.
test/fixtures/input/notifications/resource-preference/read_created_resource_preference.json Adds fixture payload for reading resource-preferences.
test/fixtures/input/notifications/resource-preference/create_resource_preference.json Adds fixture payload for creating resource-preferences.
test/fixtures/input/notifications/notification-type/read_created_notification_type.json Adds fixture payload for reading notification-types.
test/fixtures/input/notifications/notification-type/create_notification_type.json Adds fixture payload for creating notification-types.
test/fixtures/input/notifications/integration/read_created_webhook_target.json Adds fixture payload for reading webhook integration targets.
test/fixtures/input/notifications/integration/read_created_user_email_target.json Adds fixture payload for reading user-email integration targets.
test/fixtures/input/notifications/integration/read_created_slack_target.json Adds fixture payload for reading slack integration targets.
test/fixtures/input/notifications/integration/read_created_role_email_target.json Adds fixture payload for reading role-email integration targets.
test/fixtures/input/notifications/integration/read_created_ms_teams_target.json Adds fixture payload for reading MsTeams integration targets.
test/fixtures/input/notifications/integration/read_created_in_app_target.json Adds fixture payload for reading in-app integration targets.
test/fixtures/input/notifications/integration/create_webhook_target.json Adds fixture payload for creating webhook integration targets.
test/fixtures/input/notifications/integration/create_user_email_target.json Adds fixture payload for creating user-email integration targets.
test/fixtures/input/notifications/integration/create_slack_target.json Adds fixture payload for creating slack integration targets.
test/fixtures/input/notifications/integration/create_role_email_target.json Adds fixture payload for creating role-email integration targets.
test/fixtures/input/notifications/integration/create_ms_teams_target.json Adds fixture payload for creating MsTeams integration targets.
test/fixtures/input/notifications/integration/create_in_app_target.json Adds fixture payload for creating in-app integration targets.
pkg/ccloudv2/notifications.go Adds Notifications v1 client + wrapper methods for CRUD/list operations.
pkg/ccloudv2/client.go Registers NotificationsClient on the shared CCloud v2 client.
internal/notifications/command.go Adds the top-level notifications command and subcommand registration.
internal/notifications/command_user_notification.go Adds user-notification command group, output formatting, and autocomplete.
internal/notifications/command_user_notification_update.go Adds user-notification update command + --read support.
internal/notifications/command_user_notification_list.go Adds user-notification list command + filtering flags.
internal/notifications/command_user_notification_describe.go Adds user-notification describe command.
internal/notifications/command_subscription.go Adds subscription command group, output formatting, and autocomplete.
internal/notifications/command_subscription_update.go Adds subscription update command + flags.
internal/notifications/command_subscription_list.go Adds subscription list command.
internal/notifications/command_subscription_describe.go Adds subscription describe command.
internal/notifications/command_subscription_delete.go Adds subscription delete (multi-delete) using shared deletion helpers.
internal/notifications/command_subscription_create.go Adds subscription create command + flags.
internal/notifications/command_resource_subscription.go Adds resource-subscription command group + output formatting.
internal/notifications/command_resource_subscription_update.go Adds resource-subscription update command + flags.
internal/notifications/command_resource_subscription_describe.go Adds resource-subscription describe command.
internal/notifications/command_resource_subscription_delete.go Adds resource-subscription delete (multi-delete) using deletion helpers.
internal/notifications/command_resource_subscription_create.go Adds resource-subscription create command + flags.
internal/notifications/command_resource_preference.go Adds resource-preference command group + output formatting.
internal/notifications/command_resource_preference_update.go Adds resource-preference update command + flags.
internal/notifications/command_resource_preference_describe.go Adds resource-preference describe command.
internal/notifications/command_resource_preference_delete.go Adds resource-preference delete (multi-delete) using deletion helpers.
internal/notifications/command_resource_preference_create.go Adds resource-preference create command + flags.
internal/notifications/command_notification_type.go Adds notification-type command group + output formatting + autocomplete.
internal/notifications/command_notification_type_list.go Adds notification-type list command + filter flag.
internal/notifications/command_notification_type_describe.go Adds notification-type describe command.
internal/notifications/command_integration.go Adds integration command group + output formatting + autocomplete.
internal/notifications/command_integration_update.go Adds integration update command + target-kind handling.
internal/notifications/command_integration_list.go Adds integration list command.
internal/notifications/command_integration_describe.go Adds integration describe command.
internal/notifications/command_integration_delete.go Adds integration delete (multi-delete) using deletion helpers.
internal/notifications/command_integration_create.go Adds integration create command + target-kind handling.
internal/command.go Registers notifications under the root command.
go.sum Adds checksums for the notifications internal SDK module.
go.mod Adds dependency on github.com/confluentinc/ccloud-sdk-go-v2-internal/notifications.
cmd/lint/main.go Extends spellcheck vocabulary for new notifications-related terms.
.cli-generation-checksum Updates generator checksum to reflect regenerated sources.
Files not reviewed (25)
  • internal/notifications/command.go: Generated file
  • internal/notifications/command_integration.go: Generated file
  • internal/notifications/command_integration_create.go: Generated file
  • internal/notifications/command_integration_delete.go: Generated file
  • internal/notifications/command_integration_describe.go: Generated file
  • internal/notifications/command_integration_list.go: Generated file
  • internal/notifications/command_integration_update.go: Generated file
  • internal/notifications/command_notification_type.go: Generated file
  • internal/notifications/command_notification_type_describe.go: Generated file
  • internal/notifications/command_notification_type_list.go: Generated file
  • internal/notifications/command_resource_preference.go: Generated file
  • internal/notifications/command_resource_preference_create.go: Generated file
  • internal/notifications/command_resource_preference_delete.go: Generated file
  • internal/notifications/command_resource_preference_describe.go: Generated file
  • internal/notifications/command_resource_preference_update.go: Generated file
  • internal/notifications/command_resource_subscription.go: Generated file
  • internal/notifications/command_resource_subscription_create.go: Generated file
  • internal/notifications/command_resource_subscription_delete.go: Generated file
  • internal/notifications/command_resource_subscription_describe.go: Generated file
  • internal/notifications/command_resource_subscription_update.go: Generated file
  • internal/notifications/command_subscription.go: Generated file
  • internal/notifications/command_subscription_create.go: Generated file
  • internal/notifications/command_subscription_delete.go: Generated file
  • internal/notifications/command_subscription_describe.go: Generated file
  • internal/notifications/command_subscription_list.go: Generated file

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread internal/notifications/command_subscription_create.go Outdated
Comment thread internal/notifications/command_subscription_update.go Outdated
Comment thread internal/notifications/command_integration_create.go
Comment thread internal/notifications/command_integration_update.go
Comment thread internal/notifications/command_resource_subscription_create.go Outdated
Comment thread cmd/lint/main.go Outdated
Comment thread internal/notifications/command_resource_subscription_update.go Outdated
Two files conflicted.

test/fixtures/output/help.golden: main renamed `unified-stream-manager` to
`usm`, which shortened cobra's longest command name and re-padded every line in
the Available Commands block. Took main's block and regenerated the golden with
`go test ./test -run TestCLI/TestHelp -update`, which re-added the
notifications line at the new padding.

.cli-generation-checksum: main carries the flink region suite's value, this
branch carries notifications'. Kept this branch's. The file records the
last-generated suite only and drives PR labeling, so neither value is a drift
signal.

go build ./... and go test ./test -run TestCLI/TestNotifications both pass on
the merge result.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Picks up cli-terraform-generator's allow-list remedy fix. Eight stringSlice
flags now carry the CLI's own comma-separated-list wording instead of the
spec's HTTP-shape prose, the notifications parent command's Short registers
"Cloud Notifications", and one capitalized common noun is fixed in the spec.

Removes "Integrations" from properNouns: it was registered by an earlier merge
to satisfy one flag's help text, and RequireCapitalizeProperNouns then mandated
that capitalization across the whole CLI, failing three descriptions in
`confluent provider-integration`. "recieve" goes with the spec typo it covered.

`make lint-cli` passes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@airlock-confluentinc
airlock-confluentinc Bot force-pushed the onboard-notifications-integration branch from 8d059d9 to ccc3483 Compare August 14, 2026 16:26
ccloud-sdk-go-v2/notifications v0.1.0 is published, so the six commands and
their test-server handlers import it instead of the -internal path. The Alpine
docker build runs go build in a container with no GitHub credentials and the
repo carries no vendor/, so a private module cannot resolve there.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sonarqube-confluent

Copy link
Copy Markdown

A list command's -o json output is a JSON array, not an object, so
Unmarshal into a map failed and fell through to the table-fallback
path, which grabbed the ASCII separator row as a fake id. Try an
array first and pull the id from its first element; fall back to a
plain object for describe-style output. Drop the table-parsing path
entirely — every CaptureID call site pairs with -o json now.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…r fixes

The last merge predated several generator-side fixes: the zeroCheck
replacement for optional StringSlice query params (a []string flag
never reads as a literal nil, so severity/resource-type/resource-crn/
sort filters were always sent even when unset), the switch from a
literal {id} placeholder to the spec's own example values in create/
update test args, and the List-before-Describe reordering plus -o
json request on every live-test List step used for ID capture.

Regenerated command/wrapper/test-server/fixture/golden files for
Integration, Subscription, ResourcePreference, ResourceSubscription,
NotificationType, and UserNotification.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…nds to pick up objectref_write_placeholders

An array-valued ObjectReference field (integrations) built each element
as {Id: id} only, leaving the SDK's required related/resource_name
fields as empty strings on the wire. The real API rejects that with a
400. cli.objectref_write_placeholders already covered the scalar
notification_type case; this regeneration picks up the generator-side
fix that ported the same placeholder injection into the array-building
loops of create and update.

Regenerated Subscription and ResourceSubscription via cli-tfgen
--official-sdk to avoid a local SDK replace directive in go.mod.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@sonarqube-confluent

Copy link
Copy Markdown

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants