## Summary This PR adds two important improvements to ensure data integrity: 1. **Adds server name format validation at the API layer** to match the database constraint from migration 008 2. **Includes migration 008 to clean up invalid data** before applying strict constraints in migration 009 ## Changes ### Server Name Validation - Enforces validation at the API layer matching the database constraint - **Namespace pattern**: `[a-zA-Z0-9][a-zA-Z0-9.-]*[a-zA-Z0-9]` - Must start and end with alphanumeric characters - Can contain dots and hyphens in the middle - **Name pattern**: `[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]` - Must start and end with alphanumeric characters - Can contain dots, underscores, and hyphens in the middle - Provides clear, user-friendly error messages indicating which part is invalid - Uses DRY approach with composed regex patterns ### Migration 008: Data Cleanup - Removes servers with invalid names or empty versions (5 servers affected in production) - Fixes invalid status values by setting them to 'active' (1 server affected) - Removes duplicate name+version combinations - Includes comprehensive safety checks to prevent accidental data loss - Must run before migration 009 which adds strict constraints ## Testing - All validator tests pass - Migration includes safety checks that match production data - CI verification included --------- Co-authored-by: Claude <noreply@anthropic.com>
52 lines
2 KiB
Modula-2
52 lines
2 KiB
Modula-2
module github.com/modelcontextprotocol/registry
|
|
|
|
go 1.25
|
|
|
|
require (
|
|
github.com/caarlos0/env/v11 v11.3.1
|
|
github.com/coreos/go-oidc/v3 v3.15.0
|
|
github.com/danielgtaylor/huma/v2 v2.34.1
|
|
github.com/golang-jwt/jwt/v5 v5.3.0
|
|
github.com/google/uuid v1.6.0
|
|
github.com/jackc/pgx/v5 v5.7.6
|
|
github.com/prometheus/client_golang v1.23.2
|
|
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
|
|
github.com/stretchr/testify v1.11.1
|
|
go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0
|
|
go.opentelemetry.io/otel v1.38.0
|
|
go.opentelemetry.io/otel/exporters/prometheus v0.60.0
|
|
go.opentelemetry.io/otel/metric v1.38.0
|
|
go.opentelemetry.io/otel/sdk v1.38.0
|
|
go.opentelemetry.io/otel/sdk/metric v1.38.0
|
|
golang.org/x/mod v0.28.0
|
|
)
|
|
|
|
require (
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/go-jose/go-jose/v4 v4.0.5 // indirect
|
|
github.com/go-logr/logr v1.4.3 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
|
github.com/jackc/puddle/v2 v2.2.2 // indirect
|
|
github.com/lib/pq v1.10.9 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/common v0.66.1 // indirect
|
|
github.com/prometheus/otlptranslator v0.0.2 // indirect
|
|
github.com/prometheus/procfs v0.17.0 // indirect
|
|
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.38.0 // indirect
|
|
go.yaml.in/yaml/v2 v2.4.2 // indirect
|
|
golang.org/x/crypto v0.41.0 // indirect
|
|
golang.org/x/oauth2 v0.31.0 // indirect
|
|
golang.org/x/sync v0.16.0 // indirect
|
|
golang.org/x/sys v0.35.0 // indirect
|
|
golang.org/x/text v0.28.0 // indirect
|
|
google.golang.org/protobuf v1.36.8 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
)
|