Event type
Tailscale node key expiry update
Documented NODE key-expiry update with registry actor/node identities, fresh operation group ID and derived future expiry.
Overview
What this event covers
First logs[] member of the documented v1.1 configuration-log response. Uses schema-standard registry fields plus generated vendor-specific IDs. Works with the default MELTr entity sample.yaml; example configuration: configs/tailscale/tailnet/configuration-audit.yaml. Tested with MELTr rc3 commit 1e14e5defb66f6ac24decbe59c1c4f4e64877618. Entity fixtures must be selected per source; generic registry preview entities are not sufficient.
When generated
- ›A node key expiry time is updated.
Security relevance
InformationalFrequency notes
One event/second local test rate; five-event burst. Independent operation snapshots retaining zero-time old/deferredAt values.
Resources
Docs and tools
Generation
Configuration
- Base frequency
- 3600 events/hour
- Business hours
- 1.0x
- Night hours
- 1.0x
- Weekend
- 1.0x
Schema
Field definitions
Field reference for this event type — types, requirements, examples, and allowed values.
action
Fixed `UPDATE`.
Source: Fixed `UPDATE`.
UPDATEactor
Exactly the four fields below.
Source: Exactly the four fields below.
{"displayName":"Ben Rivera","id":"123457CNTRL","loginName":"ben.rivera@example.com","type":"USER"}actor.displayName
Selected registry user's `full_name`.
Source: Selected registry user's `full_name`.
Ben Riveraactor.id
Same user's stable custom `tailscale_id`.
Source: Same user's stable custom `tailscale_id`.
123457CNTRLactor.loginName
Same user's `email`.
Source: Same user's `email`.
ben.rivera@example.comactor.type
Fixed `USER`.
Source: Fixed `USER`.
USERdeferredAt
Fixed `0001-01-01T00:00:00Z` sentinel.
Source: Fixed `0001-01-01T00:00:00Z` sentinel.
0001-01-01T00:00:00ZeventGroupID
Faker `fake.pyint(min_value=1000000000, max_value=2000000000)` converted with Jinja `string`; a fresh synthetic operation ID.
Source: Faker `fake.pyint(min_value=1000000000, max_value=2000000000)` converted with Jinja `string`; a fresh synthetic operation ID.
1528213800eventTime
One `now()` value through `iso8601_utc`, UTC with microsecond precision.
Source: One `now()` value through `iso8601_utc`, UTC with microsecond precision.
2026-10-01T22:48:20.162495Znew
Same clock plus `tailscale_expiry_days * 86400` using MELTr DateTimeWrapper addition, then `iso8601_utc`. Always later in the validated profile.
Source: Same clock plus `tailscale_expiry_days * 86400` using MELTr DateTimeWrapper addition, then `iso8601_utc`. Always later in the validated profile.
2027-03-30T22:48:20.162495Zold
Fixed `0001-01-01T00:00:00Z` sentinel.
Source: Fixed `0001-01-01T00:00:00Z` sentinel.
0001-01-01T00:00:00Zorigin
Fixed `NODE`.
Source: Fixed `NODE`.
NODEtarget
Exactly the four fields below.
Source: Exactly the four fields below.
{"id":"654322CNTRL","name":"workstation-02.example.ts.net","property":"KEY_EXPIRY_TIME","type":"NODE"}target.id
Mapped device's stable custom `tailscale_id`.
Source: Mapped device's stable custom `tailscale_id`.
654322CNTRLtarget.name
Same device's `fqdn`.
Source: Same device's `fqdn`.
workstation-02.example.ts.nettarget.property
Fixed `KEY_EXPIRY_TIME`.
Source: Fixed `KEY_EXPIRY_TIME`.
KEY_EXPIRY_TIMEtarget.type
Fixed `NODE`.
Source: Fixed `NODE`.
NODEtype
Fixed `CONFIG`.
Source: Fixed `CONFIG`.
CONFIG