Skip to content

Releases: forgekeep/nebula-mesh

v0.3.8

04 Jun 10:05
7cb01ba

Choose a tag to compare

nebula-mesh v0.3.8

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.8_<os>_<arch>.tar.gz or docker pull ghcr.io/forgekeep/nebula-mgmt:0.3.8
  • Agent: nebula-agent_0.3.8_<os>_<arch>.tar.gz or docker pull ghcr.io/forgekeep/nebula-agent:0.3.8

Changelog

Bug fixes

  • 3077efa: fix(api): require target group selector and bound its length in firewall rules (#200) (@juev)
  • 4358d7a: fix(api): scope agent-poll blocklist to the host's CA (#206) (@juev)
  • 60a512c: fix(cli): add request timeout to CLI HTTP client (#220) (@juev)
  • c60ab50: fix(cli): check discarded io.ReadAll errors on response bodies (#218) (@juev)
  • 0b8b74c: fix(cli): validate --server URL before issuing requests (#219) (@juev)
  • 34d2e64: fix(config): create parent dir in SaveServerConfig before CreateTemp (#221) (@juev)
  • c452237: fix(configgen): round-trip operator strings in generated YAML (#176) (#177) (@juev)
  • d5010ef: fix(keystore): zeroize decoded master-key bytes in NewMasterFromBase64 (#201) (@juev)
  • 7396708: fix(store): make ConsumeToken UPDATE conditional on used=0 and check RowsAffected (#202) (@juev)
  • d7cf570: fix(web): invalidate operator sessions on admin password reset (#205) (@juev)

Others


Full changelog: v0.3.7...v0.3.8

v0.3.7

02 Jun 07:30
01e9fae

Choose a tag to compare

nebula-mesh v0.3.7

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.7_<os>_<arch>.tar.gz or docker pull ghcr.io/forgekeep/nebula-mgmt:0.3.7
  • Agent: nebula-agent_0.3.7_<os>_<arch>.tar.gz or docker pull ghcr.io/forgekeep/nebula-agent:0.3.7

Changelog

Features

  • 4ca1440: feat(serve): refuse plaintext HTTP on routable address unless opted in (#179) (#182) (@juev)

Bug fixes

Others

  • 01e9fae: Merge commit from fork (@juev)
  • b933a90: chore(gosec): drop orphan #nosec G120 on the CSRF ParseForm (#174) (@ak2k)
  • 15ea357: chore(lint): drop stale govet printf.funcs entry (#168) (@juev)
  • 92db29c: ci: add scheduled slow lane for generative fuzzing (ADR 0009) (#171) (@ak2k)
  • 74c8a3f: docs(adr): 0009 review follow-ups (clock-seam status, migration 018, ADR index) (#169) (@ak2k)
  • 975b475: test(simtest): Tier-2 fleet-simulation harness + clock seam (ADR 0009) (#170) (@ak2k)

Full changelog: v0.3.6...v0.3.7

v0.3.6

26 May 08:15
01fdc54

Choose a tag to compare

nebula-mesh v0.3.6

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.6_<os>_<arch>.tar.gz or docker pull ghcr.io/forgekeep/nebula-mgmt:0.3.6
  • Agent: nebula-agent_0.3.6_<os>_<arch>.tar.gz or docker pull ghcr.io/forgekeep/nebula-agent:0.3.6

Changelog

Features

Bug fixes

  • 01fdc54: fix(ci): complete forgekeep migration in release/config refs (#167) (@juev)
  • 552b162: fix(store): DeleteCA refuses while any ca_id-carrying table references the CA (#153) (@ak2k)
  • 6b88878: fix(web): scope accessible hosts to owned CAs in SQL (#162) (@juev)
  • 6842652: fix(web): unify host-ownership anchor on host.CAID across edit/update/mobile-bundle (#161) (@juev)

Others

  • d777354: docs(adr): 0009 scale, concurrency, and fuzz testing (PR-gate vs scheduled boundary) (#163) (@ak2k)
  • 7b20a00: docs(release): bump install examples to VERSION=0.3.6 (#166) (@juev)
  • ce2558b: test(web): assert owner-allowed path in host update and mobile-bundle scope tests (#164) (@juev)

Full changelog: v0.3.5...v0.3.6

v0.3.5

25 May 08:02
fb35f97

Choose a tag to compare

nebula-mesh v0.3.5

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.5_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-mgmt:0.3.5
  • Agent: nebula-agent_0.3.5_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-agent:0.3.5

Changelog

Bug fixes

  • eface39: fix(api): consume enrollment token atomically with host enroll (#150) (@ak2k)
  • 9886e92: fix(api): scope ListHosts to owned CAs in SQL so the row cap can't undercount (#154) (@ak2k)
  • 6472dce: fix(configgen): round-trippable YAML for non-literal-safe inline PEM (GHSA-7hp6) (#155) (@ak2k)
  • e17bdd3: fix(store): enforce network-scoped overlay-IP uniqueness (migration 018) (#149) (@ak2k)

Others

  • 6bd5ce8: Merge commit from fork (@ak2k)
  • fb35f97: docs(release): bump install examples to VERSION=0.3.5 (@juev)
  • 7f6cecc: test(api): pin multi-tenant read-side scoping (property harness + boundary battery) (#151) (@ak2k)
  • 5a2684d: test(pki): cover CA key decryption, destruction, and signer boundaries (#152) (@ak2k)

Full changelog: v0.3.4...v0.3.5

v0.3.4

24 May 13:46
b84f5ce

Choose a tag to compare

nebula-mesh v0.3.4

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.4_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-mgmt:0.3.4
  • Agent: nebula-agent_0.3.4_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-agent:0.3.4

Changelog

Bug fixes

Others

  • b84f5ce: docs(release): bump install examples to VERSION=0.3.4 (@juev)

Full changelog: v0.3.3...v0.3.4

v0.3.3

22 May 13:21
2b5ef31

Choose a tag to compare

nebula-mesh v0.3.3

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.3_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-mgmt:0.3.3
  • Agent: nebula-agent_0.3.3_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-agent:0.3.3

Changelog

Bug fixes

Others

  • 47fa414: chore(gosec): drop orphan #nosec G117 on yaml.Marshal(cfg) (#141) (@ak2k)
  • 2b5ef31: docs(release): bump install examples to VERSION=0.3.3 (@juev)
  • 59e73c8: test(store): atomic CAS coverage for ConsumeToken (GHSA-v2jf, enrollment side) (#143) (@ak2k)

Full changelog: v0.3.2...v0.3.3

v0.3.2

21 May 09:48
bda2703

Choose a tag to compare

nebula-mesh v0.3.2

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.2_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-mgmt:0.3.2
  • Agent: nebula-agent_0.3.2_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-agent:0.3.2

Changelog

Features

Bug fixes

  • 32ab968: fix(api): audit mobile-bundle authz decisions (closes #119) (#128) (@ak2k)
  • 68ae5fe: fix(bootstrap): close SeedAdminOperator check-then-write race (#133) (@ak2k)
  • b8a8ac0: fix(lint): clean up linter issues introduced by #135 (#137) (@juev)
  • ffdd67d: fix(oidc): harden operator login path + add httptest mock IdP scaffolding (#135) (@ak2k)
  • e63187a: fix(tests): add explicit return after t.Fatal for SA5011 false-positives (sweep) (#132) (@ak2k)
  • 2571bdd: fix(tests): add explicit return after t.Fatal in remaining SA5011 hits (@juev)
  • 2995b98: fix(tests): add explicit return after t.Fatal in web session-cookie test (#131) (@ak2k)
  • 7489d03: fix(tests): return after t.Fatal in web_test.go (SA5011) (#129) (@ak2k)

Others

  • c13d5b2: Merge commit from fork (@juev)
  • 8baaace: Merge commit from fork (@juev)
  • ef65582: Merge commit from fork (@juev)
  • c490de4: Merge commit from fork (@juev)
  • 74ca1b4: Remove cfg.APIKey field; add CLI recovery for admin key (#127) (#138) (@juev)
  • 8f495a8: build: pin golangci-lint version and add make ci target (@juev)
  • 1315ff4: chore(gosec): suppress 27 baseline gosec findings with inline justifications (#134) (@ak2k)
  • ccd7dbd: chore(lint): adopt opinionated golangci-lint v2 config and migrate to context-aware DB/HTTP calls (#136) (@juev)
  • ba0db80: ci: bump actions to versions running on Node.js 24 (@juev)
  • bda2703: docs(release): bump install examples to VERSION=0.3.2 (@juev)
  • 56c07b7: refactor(auth): remove legacy config-file API key fallback (@juev)
  • da2f3cd: refactor(auth): simplify CA handler auth checks (@juev)

Full changelog: v0.3.1...v0.3.2

v0.3.1

20 May 09:46
ba059e1

Choose a tag to compare

nebula-mesh v0.3.1

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.1_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-mgmt:0.3.1
  • Agent: nebula-agent_0.3.1_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-agent:0.3.1

Changelog

Bug fixes

  • d838cad: fix(docker): bump GO_VERSION to 1.26.3 to match go.mod toolchain (@juev)
  • b45fda5: fix(http): add security response headers middleware (#125) (@juev)
  • 1b38aa4: fix(oidc): refuse start when default_role would silently grant admin (#122) (@ak2k)
  • e8f2c75: fix(tests): add explicit return after t.Fatal in remaining SA5011 hits (@juev)
  • a379099: fix(tests): add explicit return after t.Fatal to satisfy SA5011 (@juev)

Others

  • c674617: chore(go): bump toolchain from 1.26.1 to 1.26.3 (#123) (@ak2k)
  • ba059e1: docs(release): bump install examples to VERSION=0.3.1 (@juev)

Full changelog: v0.3.0...v0.3.1

v0.3.0

15 May 13:49
071db75

Choose a tag to compare

nebula-mesh v0.3.0

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.3.0_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-mgmt:0.3.0
  • Agent: nebula-agent_0.3.0_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-agent:0.3.0

Changelog

Features

Bug fixes

  • f495600: fix(hosts): reject lighthouse/relay without public_ip+listen_port (#95) (@juev)
  • a58b938: fix(web): gate network/host creation on operator-owned CA (#98) (@juev)
  • e0ebd31: fix(web): render inline form errors on host/network create (#96) (@juev)
  • 30ade25: fix(web): stats partial leak + Cache-Control: no-store on /ui/* (#90) (@juev)
  • 2ba44d5: fix(web,api): constrain Nebula IP input + friendly IP/CIDR errors (#100) (#109) (@juev)
  • 6759fa0: fix: add server.local.yaml and local-data to gitignore (@juev)

Others

  • 411c02f: docs(adr): 0005 pre-auth keys — reusable/ephemeral/tag-bound tokens (#99) (@juev)
  • 881d140: docs(adr): ADR 0003 — CA key encryption model (#68) (#73) (@juev)
  • 1cf02dc: docs(adr): ADR 0004 — agent authorization model (#70) (#74) (@juev)
  • ce3abaf: docs(adr): ADR 0004 — separate Ed25519 signing key for poll PoP (#77) (@juev)
  • c4eec52: docs(agent): document ADR 0004 signed polls + new endpoints (#75) (#85) (@juev)
  • 21c46b8: docs(readme): align with ADR 0004 protocol + systemd enrollment flow (#86) (@juev)
  • 071db75: docs(readme): bump install examples to VERSION=0.3.0 (@juev)
  • 01ffd10: docs(readme): collapse only large sections, drop duplicates (@juev)
  • c30bd2a: docs(readme): defer agent enrollment details to docs/agent.md (#87) (@juev)
  • b435342: docs(readme): document agent install from deb/rpm package manager (#50) (@juev)
  • 3540cf0: docs(readme): fold long sections behind
    (#53) (#59) (@juev)
  • de58879: docs(readme): simplify install steps, drop stale Roadmap (@juev)
  • 00eee8e: refactor(ca): consolidate CA-mint helper and remove legacy on-disk CA stack (#114) (#115) (@juev)
  • a085c0e: test(ca): auto-provision default CA for admin-role operators (#116) (@juev)
  • 80cc180: test(web): add settings form structure and flash message assertions (@juev)

Full changelog: v0.2.0...v0.3.0

v0.2.0

12 May 14:19
0e34833

Choose a tag to compare

nebula-mesh v0.2.0

Install — see README for the full snippets.

  • Server: nebula-mgmt_0.2.0_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-mgmt:0.2.0
  • Agent: nebula-agent_0.2.0_<os>_<arch>.tar.gz or docker pull ghcr.io/juev/nebula-agent:0.2.0

Changelog

Features

  • 3f46685: feat(auth): add OIDC operator login (Keycloak/Authentik/Okta/...) (#24) (@juev)
  • 824328a: feat(auth): add TOTP 2FA with recovery codes for operators (#23) (@juev)
  • af34cf3: feat(auth): add configurable self-registration flow with admin-only operator API (#32) (@juev)
  • f5d835a: feat(auth): support multiple operator users (foundation) (#22) (@juev)
  • cfea47b: feat(cli): add host delete, block, and unblock subcommands (#21) (@juev)
  • 4eb3c6e: feat(hosts): support advanced per-host config overrides (#30) (@juev)
  • 7c69877: feat(pki): per-operator CAs with envelope-encrypted in-DB key storage (#35) (@juev)
  • 30b015c: feat(ui): add profile page and move logout out of the main navigation (#33) (@juev)
  • ec81320: feat(web): add SVG favicon and /favicon.ico route (#20) (@juev)

Bug fixes

  • c74a2fe: fix(hosts): validate IP belongs to network CIDR, is unique, and is not reserved (#29) (@juev)
  • 8f0267e: fix(store): apply each migration once and split multi-statement scripts (#38) (@juev)
  • b9fb288: fix(web): show network name instead of UUID in dashboard and hosts list (#19) (@juev)

Others

  • 1272820: build(release): expand nebula-agent target matrix to Nebula-aligned platforms (#27) (@juev)
  • 8733bb8: build(release): produce .deb and .rpm packages for nebula-agent (#28) (@juev)
  • 96283a9: docs(adr): record ADR 0002 — per-operator CAs with in-DB encrypted storage (#34) (@juev)
  • c99e014: docs(adr): record decision to keep CA key on the filesystem (#25) (@juev)
  • 21aa498: docs(agent): add comprehensive nebula-agent operations guide (#26) (@juev)
  • 0e34833: docs(readme): hoist badges, dedup auth sections, refresh Features/Security/Roadmap (#44) (@juev)

Full changelog: v0.1.2...v0.2.0