-
v0.4.0 Stable
released this
2026-10-05 11:38:37 +00:00 | 14 commits to main since this releaseAdded
NatsAccount.spec.limits.jetstream.tierssets an account's JetStream limits by tier,R1toR5after the replica count of a stream, in place of limits for the account as a whole.NatsAccount.spec.limits.jetstream, and each of its tiers, takesmaxAckPending,memoryMaxStreamBytes,diskMaxStreamBytesandmaxBytesRequired.- An import of a
NatsAccountnames theNatsSystemAccountof itsNatsOperatorunderaccountRef, takingaccount-monitoring-servicesoraccount-monitoring-streamswith the account's own public key in the subject. - An import of a
NatsAccountnames its exporter bypublicKeyin place ofaccountRef, with the export'ssubjectandtype, and for a private exportactivation.secretKeyRefselecting the activation token the exporter issued;status.imports[].activationthen readsSupplied. - An import of a
NatsAccounttakesshareon a Service import andallowTraceon a Stream import. NatsAccount.spec.adoption.droppedClaimsandNatsSystemAccount.spec.adoption.droppedClaims,Refusewhen omitted orAccept, say whether the first signing of an account the servers already hold a JWT for goes ahead where it would drop claims that JWT carries.- A signing key under
keys.signingof aNatsAccountor aNatsSystemAccounttakesscope, which makes it a scoped signing key: arole, and thepermissions,connectionTypesandlimits(subscriptions,payload) that the servers hold every user it signs to. NatsUser.spec.rolesigns the user with the account's scoped signing key of that role; it excludespermissions,connectionTypesandpreset. A scoped signing key signs no other user and no activation token.
Changed
- Each release's images and chart are signed with the certificate identity
https://github.com/mikluko/nats-operator/.github/workflows/release-roll.yaml@refs/tags/v<version>, and their build provenance attestations name the signer workflowrelease-roll.yamland the source refrefs/tags/v<version>;SECURITY.mdhas the commands for these and for releases 0.1.0 through 0.3.1. - A
NatsAccountimporting from aNatsAccountthat has no public key yet is not signed until it has one; meanwhile itsReadyandReferencesResolvedconditions are False with the reasonExporterPending. - The
auth-controlleruser preset may publish$SYS.REQ.SERVER.PING.VARZ. - A
NatsAccountorNatsSystemAccountadopting an account made elsewhere is not signed while the JWT the servers hold carries a claim the JWT signed from spec would not, a claim no field expresses or one the spec omits alike; it has the conditionReadyFalse with the reasonAdoptionDropsClaimsnaming each such claim by its JWT field path, aNatsSystemAccount'sNatsOperatortoo, and the servers keep their JWT. A claim the spec sets to another value does not hold the signing. A JWT holding JetStream limits for a tier named other thanR1toR5is never adopted; the reason is thenTierInexpressible.
Fixed
- A
NatsAccountsigned while a server does not answer for the JWT it holds is not pushed until every server has answered; meanwhileRevocationsUnrecoveredis True andDistributedis False with the reasonUnreachable. A server that misses three roster polls in a row is not waited for. - A
NatsAccountthat adopts an account with no signing key keeps the revocations of the JWT the servers hold. A revocation read from the servers lists the account's identity key among itsissuers, and is kept when the account's signing keys rotate. - A
NatsSystemAccountadopting a system account made elsewhere keeps the revocations of the JWT the servers hold, and every system account JWT carries the exportsaccount-monitoring-servicesandaccount-monitoring-streamsthatnscgives one. While the servers cannot be asked at its first signing, itsNatsOperatorhas the conditionRevocationsUnrecoveredTrue and the system account JWT is not pushed. - An account JWT signed by a NATS operator key that no server lists in the NATS operator JWT it runs under is not pushed, and
status.distributiondoes not count a server that does not list the key; theNatsAccountorNatsSystemAccountthen has the conditionDistributedFalse with the reasonUntrustedSigner. - A
NatsAccountthat adopts an account revoking every user, with the key*, is signed with that revocation and records it instatus.revocationsunder thepublicKey*. - Adding
authto a runningNatsClusterrolls out one server at a time.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads