Skip to content

Remove the deprecated API usage acknowledged in the staticcheck rollout #1782

Description

@AmanGIT07

PR #1781 annotated every remaining use of a deprecated API with //nolint:staticcheck. Each annotation is deliberate, but all of them are debt. This issue tracks removing them. The sites, grouped by what unblocks each:

Actionable now

  • New Relic go-agent v2 → v3pkg/db/db.go and internal/store/spicedb/relation_repository.go import the deprecated v2 package. Migrating means the v3 import path and the reworked transaction/segment APIs at every telemetry call site.
  • e2e billing teststest/e2e/regression/billing_test.go uses the deprecated UpdateBillingAccountLimits RPC as a setup tool. UpdateBillingAccountDetails sets the same credit_min (note it also writes due_in_days).

Blocked on the API dropping the deprecated request fields

Handler fallbacks that must stay while old clients send the old shapes:

  • internal/api/v1beta1connect/billing_usage.gosince (superseded by start_range)
  • internal/api/v1beta1connect/billing_subscription.go — flat plan/immediate (superseded by plan_change)
  • internal/api/v1beta1connect/permission.gonamespace/name body fields (superseded by key)
  • internal/api/v1beta1connect/permission_check.go — split object fields (superseded by resource)
  • cmd/serve.go — the FullyConsistent config flag (superseded by consistency)
  • cmd/seed.go — seed data sends the deprecated permission body shape

Blocked on a lossless replacement for the deprecated response fields

internal/reconcile/permission_reconciler.go, cmd/permission.go, and the assertions in test/e2e/regression/service_registration_test.go read the deprecated namespace/name response fields. The replacement key round-trips lossily today: a namespace without a slash gains a /default suffix through SplitNamespaceResource, and names containing dots fail to split. These readers can migrate once key (or another field) carries the exact values.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions