Class: Smplkit::Audit::AuditEvent
- Inherits:
-
Struct
- Object
- Struct
- Smplkit::Audit::AuditEvent
- Defined in:
- lib/smplkit/audit/models.rb
Overview
A single audit event as returned by the audit service.
Instance Attribute Summary collapse
-
#actor_id ⇒ String?
Customer-supplied free-form actor identifier —
nilwhen not provided. -
#actor_label ⇒ String?
Customer-supplied display label for the actor — typically a name or email.
-
#actor_type ⇒ String?
Customer-supplied free-form actor type string —
nilwhen not provided. -
#category ⇒ String?
Free-form bucket label for the event — e.g.
-
#created_at ⇒ String
ISO-8601 timestamp of when the audit service first ingested this event.
-
#data ⇒ Hash{String => Object}
Free-form per-event payload defined by the customer.
-
#do_not_forward ⇒ Boolean
When
true, skip SIEM forwarder delivery regardless of any matching filter. -
#environment ⇒ String?
The environment the event was recorded in.
-
#event_type ⇒ String
Event type slug — e.g.
-
#id ⇒ String
Server-assigned UUID for this event.
-
#idempotency_key ⇒ String?
Customer-supplied dedupe key,
nilif not provided. -
#occurred_at ⇒ String
ISO-8601 timestamp of when the event happened, as reported by the source.
-
#resource_id ⇒ String
Customer-facing id of the resource the event operated on.
-
#resource_type ⇒ String
Type of resource the event operated on — e.g.
Class Method Summary collapse
Instance Attribute Details
#actor_id ⇒ String?
Returns Customer-supplied free-form actor identifier — nil when not provided.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#actor_label ⇒ String?
Returns Customer-supplied display label for the actor — typically a name or email.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#actor_type ⇒ String?
Returns Customer-supplied free-form actor type string — nil when not provided.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#category ⇒ String?
Returns Free-form bucket label for the event — e.g. “auth”, “billing”, “config-change”. Stored exactly as supplied; drives the audit log’s category filter and the categories discovery listing (Smplkit::Audit::AuditClient#categories). nil when not supplied.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#created_at ⇒ String
Returns ISO-8601 timestamp of when the audit service first ingested this event.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#data ⇒ Hash{String => Object}
Returns Free-form per-event payload defined by the customer.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#do_not_forward ⇒ Boolean
Returns When true, skip SIEM forwarder delivery regardless of any matching filter.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#environment ⇒ String?
Returns The environment the event was recorded in. Read-only and always present on reads — the audit service resolves it when the event is recorded (from a single-environment credential, or from the runtime SDK’s configured environment, which the SDK sends on the recording request body).
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#event_type ⇒ String
Returns Event type slug — e.g. “user.created”, “invoice.paid”.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#id ⇒ String
Returns Server-assigned UUID for this event.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#idempotency_key ⇒ String?
Returns Customer-supplied dedupe key, nil if not provided.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#occurred_at ⇒ String
Returns ISO-8601 timestamp of when the event happened, as reported by the source.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#resource_id ⇒ String
Returns Customer-facing id of the resource the event operated on.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
#resource_type ⇒ String
Returns Type of resource the event operated on — e.g. “invoice”.
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
# File 'lib/smplkit/audit/models.rb', line 230 AuditEvent = Struct.new( :id, :event_type, :resource_type, :resource_id, :occurred_at, :created_at, :actor_type, :actor_id, :actor_label, :category, :data, :idempotency_key, :do_not_forward, :environment, keyword_init: true ) do def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end end |
Class Method Details
.from_resource(resource) ⇒ Object
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 |
# File 'lib/smplkit/audit/models.rb', line 237 def self.from_resource(resource) attrs = resource.attributes new( id: resource.id, event_type: attrs.event_type, resource_type: attrs.resource_type, resource_id: attrs.resource_id, occurred_at: attrs.occurred_at, created_at: attrs.created_at, actor_type: attrs.actor_type, actor_id: attrs.actor_id, actor_label: attrs.actor_label, category: attrs.category, data: Smplkit::Helpers.deep_stringify_keys(attrs.data || {}), idempotency_key: attrs.idempotency_key, do_not_forward: attrs.do_not_forward || false, environment: attrs.environment ) end |