{{ message }}
Repository navigation
Tags: micro/go-micro
Tags
fix(gateway): enforce administrative and transport security boundaries ( #4964) * fix(gateway): enforce administrative and transport security boundaries * fix(gateway): reject browser-controlled hosts on loopback sockets * fix(mcp): expose trusted browser origins in CLI entrypoints
ci(release): roll CHANGELOG [Unreleased] into the version on tag (#4904) * ci(release): roll CHANGELOG [Unreleased] into the version on tag The changelog once drifted five releases behind the tags, with everything piled under [Unreleased] (reconstructed in #4898), because releases are cut automatically but the rollup was manual. Mechanize it: when the release workflow cuts vX.Y.Z and [Unreleased] has entries, it rewrites the header into an empty [Unreleased] plus a dated [X.Y.Z] section carrying those entries, commits, pushes to master with the release PAT, and tags the rolled commit. If the push is rejected (branch protection), it warns and tags the current HEAD — a release is never blocked on the docs commit. With no entries there is nothing to roll and the step is skipped. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
refactor(cmd): move plugin linkage behind cmd/defaults registration (#… …4897) * refactor(cmd): move plugin linkage behind cmd/defaults registration go-micro.dev/v6/cmd imported 10 plugin packages (NATS broker/registry/ store/transport, Consul, etcd, RabbitMQ, Redis, Postgres, MySQL) so that --registry=etcd-style flags could resolve them. Because service constructs a Cmd unconditionally, every library binary linked all of it — a downstream measured 78 go-micro packages reachable from a minimal service, 41 of them plugin machinery for infrastructure the process never runs — along with their third-party clients and init() side effects. Move the plugin linkage behind registration: - cmd keeps only the zero-dependency in-core entries (memory/http broker, memory/mdns registry, memory store) in its Default* maps. - New cmd/defaults registers every plugin into those maps from init(); the micro CLI blank-imports it, so CLI flag selection is unchanged. - service/profile keeps the Profile type and LocalProfile, and gains Register/Load; the NATS profile moves to service/profile/natsprofile, which self-registers (linked via cmd/defaults or a direct import). - Flag lookups that miss now say the plugin "is not linked into this binary: import go-micro.dev/v6/cmd/defaults" instead of a bare not-found. A minimal service binary now links 53 go-micro packages with zero plugin machinery and no NATS/Consul/etcd/Redis/SQL client deps (bbolt remains for the in-core file store). BREAKING: a library binary that relies on service.Init() resolving --registry/--broker/--store/--transport/--profile flag values to external plugins must add: import _ "go-micro.dev/v6/cmd/defaults". profile.NatsProfile moved to the natsprofile package. Reported by a downstream user (finding 2); finding 1 landed separately. * refactor(profile): guard the registry, clarify Load error, fix typo Review feedback: guard the profile map with a sync.RWMutex and reject empty names / nil constructors in Register (panic — the useful failure for init-time registration); make the unregistered-profile error cover the mistyped-name case as well as the missing-import case; rename splitNatsAdressList -> splitNatsAddressList. --------- Co-authored-by: Claude <noreply@anthropic.com>
PreviousNext
