Class: SDM::Query
- Inherits:
-
Object
- Object
- SDM::Query
- Defined in:
- lib/models/porcelain.rb
Overview
A Query is a record of a single client request to a resource, such as a SQL query. Longer-running queries including long-running SSH commands and SSH, RDP, or Kubernetes interactive sessions will return two Query records with the same identifier, one record at the start of the query and a second record upon the completion of the query with additional detail.
Instance Attribute Summary collapse
-
#account_email ⇒ Object
The email of the account performing this query, at the time the query was executed.
-
#account_first_name ⇒ Object
The given name of the account performing this query, at the time the query was executed.
-
#account_id ⇒ Object
Unique identifier of the Account that performed the Query.
-
#account_last_name ⇒ Object
The family name of the account performing this query, at the time the query was executed.
-
#account_tags ⇒ Object
The tags of the account accessed, at the time the query was executed.
-
#authzjson ⇒ Object
Authorization metadata associated with this query.
-
#capture ⇒ Object
For queries against SSH, Kubernetes, and RDP resources, this contains additional information about the captured query.
-
#client_ip ⇒ Object
The IP address the Query was performed from, as detected at the StrongDM control plane.
-
#completed_at ⇒ Object
The time at which the Query was completed.
-
#duration ⇒ Object
The duration of the Query.
-
#egress_node_id ⇒ Object
The unique ID of the node through which the Resource was accessed.
-
#encrypted ⇒ Object
Indicates that the body of the Query is encrypted.
-
#id ⇒ Object
Unique identifier of the Query.
-
#identity_alias_username ⇒ Object
The username of the IdentityAlias used to access the Resource.
-
#metadata_json ⇒ Object
Driver specific metadata associated with this query.
-
#query_body ⇒ Object
The captured content of the Query.
-
#query_category ⇒ Object
The general category of Resource against which Query was performed, e.g.
-
#query_hash ⇒ Object
The hash of the body of the Query.
-
#query_key ⇒ Object
The symmetric key used to encrypt the body of this Query and its replay if replayable.
-
#record_count ⇒ Object
The number of records returned by the Query, for a database Resource.
-
#remote_identity_username ⇒ Object
The username of the RemoteIdentity used to access the Resource.
-
#replayable ⇒ Object
Indicates that the Query is replayable, e.g.
-
#resource_id ⇒ Object
Unique identifier of the Resource against which the Query was performed.
-
#resource_name ⇒ Object
The name of the resource accessed, at the time the query was executed.
-
#resource_tags ⇒ Object
The tags of the resource accessed, at the time the query was executed.
-
#resource_type ⇒ Object
The specific type of Resource against which the Query was performed, e.g.
-
#source_ip ⇒ Object
The IP address the Query was performed from, as detected at the ingress gateway.
-
#target ⇒ Object
The target destination of the query, in host:port format.
-
#timestamp ⇒ Object
The time at which the Query was started.
Instance Method Summary collapse
-
#initialize(account_email: nil, account_first_name: nil, account_id: nil, account_last_name: nil, account_tags: nil, authzjson: nil, capture: nil, client_ip: nil, completed_at: nil, duration: nil, egress_node_id: nil, encrypted: nil, id: nil, identity_alias_username: nil, metadata_json: nil, query_body: nil, query_category: nil, query_hash: nil, query_key: nil, record_count: nil, remote_identity_username: nil, replayable: nil, resource_id: nil, resource_name: nil, resource_tags: nil, resource_type: nil, source_ip: nil, target: nil, timestamp: nil) ⇒ Query
constructor
A new instance of Query.
- #to_json(options = {}) ⇒ Object
Constructor Details
#initialize(account_email: nil, account_first_name: nil, account_id: nil, account_last_name: nil, account_tags: nil, authzjson: nil, capture: nil, client_ip: nil, completed_at: nil, duration: nil, egress_node_id: nil, encrypted: nil, id: nil, identity_alias_username: nil, metadata_json: nil, query_body: nil, query_category: nil, query_hash: nil, query_key: nil, record_count: nil, remote_identity_username: nil, replayable: nil, resource_id: nil, resource_name: nil, resource_tags: nil, resource_type: nil, source_ip: nil, target: nil, timestamp: nil) ⇒ Query
Returns a new instance of Query.
14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 |
# File 'lib/models/porcelain.rb', line 14352 def initialize( account_email: nil, account_first_name: nil, account_id: nil, account_last_name: nil, account_tags: nil, authzjson: nil, capture: nil, client_ip: nil, completed_at: nil, duration: nil, egress_node_id: nil, encrypted: nil, id: nil, identity_alias_username: nil, metadata_json: nil, query_body: nil, query_category: nil, query_hash: nil, query_key: nil, record_count: nil, remote_identity_username: nil, replayable: nil, resource_id: nil, resource_name: nil, resource_tags: nil, resource_type: nil, source_ip: nil, target: nil, timestamp: nil ) @account_email = account_email == nil ? "" : account_email @account_first_name = account_first_name == nil ? "" : account_first_name @account_id = account_id == nil ? "" : account_id @account_last_name = account_last_name == nil ? "" : account_last_name @account_tags = == nil ? SDM::() : @authzjson = authzjson == nil ? "" : authzjson @capture = capture == nil ? nil : capture @client_ip = client_ip == nil ? "" : client_ip @completed_at = completed_at == nil ? nil : completed_at @duration = duration == nil ? nil : duration @egress_node_id = egress_node_id == nil ? "" : egress_node_id @encrypted = encrypted == nil ? false : encrypted @id = id == nil ? "" : id @identity_alias_username = identity_alias_username == nil ? "" : identity_alias_username @metadata_json = == nil ? "" : @query_body = query_body == nil ? "" : query_body @query_category = query_category == nil ? "" : query_category @query_hash = query_hash == nil ? "" : query_hash @query_key = query_key == nil ? "" : query_key @record_count = record_count == nil ? 0 : record_count @remote_identity_username = remote_identity_username == nil ? "" : remote_identity_username @replayable = replayable == nil ? false : replayable @resource_id = resource_id == nil ? "" : resource_id @resource_name = resource_name == nil ? "" : resource_name @resource_tags = == nil ? SDM::() : @resource_type = resource_type == nil ? "" : resource_type @source_ip = source_ip == nil ? "" : source_ip @target = target == nil ? "" : target @timestamp = == nil ? nil : end |
Instance Attribute Details
#account_email ⇒ Object
The email of the account performing this query, at the time the query was executed. If the account email is later changed, that change will not be reflected via this field.
14283 14284 14285 |
# File 'lib/models/porcelain.rb', line 14283 def account_email @account_email end |
#account_first_name ⇒ Object
The given name of the account performing this query, at the time the query was executed. If the account is later renamed, that change will not be reflected via this field.
14286 14287 14288 |
# File 'lib/models/porcelain.rb', line 14286 def account_first_name @account_first_name end |
#account_id ⇒ Object
Unique identifier of the Account that performed the Query.
14288 14289 14290 |
# File 'lib/models/porcelain.rb', line 14288 def account_id @account_id end |
#account_last_name ⇒ Object
The family name of the account performing this query, at the time the query was executed. If the account is later renamed, that change will not be reflected via this field.
14291 14292 14293 |
# File 'lib/models/porcelain.rb', line 14291 def account_last_name @account_last_name end |
#account_tags ⇒ Object
The tags of the account accessed, at the time the query was executed. If the account tags are later changed, that change will not be reflected via this field.
14294 14295 14296 |
# File 'lib/models/porcelain.rb', line 14294 def @account_tags end |
#authzjson ⇒ Object
Authorization metadata associated with this query.
14296 14297 14298 |
# File 'lib/models/porcelain.rb', line 14296 def authzjson @authzjson end |
#capture ⇒ Object
For queries against SSH, Kubernetes, and RDP resources, this contains additional information about the captured query.
14299 14300 14301 |
# File 'lib/models/porcelain.rb', line 14299 def capture @capture end |
#client_ip ⇒ Object
The IP address the Query was performed from, as detected at the StrongDM control plane.
14301 14302 14303 |
# File 'lib/models/porcelain.rb', line 14301 def client_ip @client_ip end |
#completed_at ⇒ Object
The time at which the Query was completed. Empty if this record indicates the start of a long-running query.
14304 14305 14306 |
# File 'lib/models/porcelain.rb', line 14304 def completed_at @completed_at end |
#duration ⇒ Object
The duration of the Query.
14306 14307 14308 |
# File 'lib/models/porcelain.rb', line 14306 def duration @duration end |
#egress_node_id ⇒ Object
The unique ID of the node through which the Resource was accessed.
14308 14309 14310 |
# File 'lib/models/porcelain.rb', line 14308 def egress_node_id @egress_node_id end |
#encrypted ⇒ Object
Indicates that the body of the Query is encrypted.
14310 14311 14312 |
# File 'lib/models/porcelain.rb', line 14310 def encrypted @encrypted end |
#id ⇒ Object
Unique identifier of the Query.
14312 14313 14314 |
# File 'lib/models/porcelain.rb', line 14312 def id @id end |
#identity_alias_username ⇒ Object
The username of the IdentityAlias used to access the Resource.
14314 14315 14316 |
# File 'lib/models/porcelain.rb', line 14314 def identity_alias_username @identity_alias_username end |
#metadata_json ⇒ Object
Driver specific metadata associated with this query.
14316 14317 14318 |
# File 'lib/models/porcelain.rb', line 14316 def @metadata_json end |
#query_body ⇒ Object
The captured content of the Query. For queries against SSH, Kubernetes, and RDP resources, this contains a JSON representation of the QueryCapture.
14319 14320 14321 |
# File 'lib/models/porcelain.rb', line 14319 def query_body @query_body end |
#query_category ⇒ Object
The general category of Resource against which Query was performed, e.g. "web" or "cloud".
14321 14322 14323 |
# File 'lib/models/porcelain.rb', line 14321 def query_category @query_category end |
#query_hash ⇒ Object
The hash of the body of the Query.
14323 14324 14325 |
# File 'lib/models/porcelain.rb', line 14323 def query_hash @query_hash end |
#query_key ⇒ Object
The symmetric key used to encrypt the body of this Query and its replay if replayable. If the Query is encrypted, this field contains an encrypted symmetric key in base64 encoding. This key must be decrypted with the organization's private key to obtain the symmetric key needed to decrypt the body. If the Query is not encrypted, this field is empty.
14328 14329 14330 |
# File 'lib/models/porcelain.rb', line 14328 def query_key @query_key end |
#record_count ⇒ Object
The number of records returned by the Query, for a database Resource.
14330 14331 14332 |
# File 'lib/models/porcelain.rb', line 14330 def record_count @record_count end |
#remote_identity_username ⇒ Object
The username of the RemoteIdentity used to access the Resource.
14332 14333 14334 |
# File 'lib/models/porcelain.rb', line 14332 def remote_identity_username @remote_identity_username end |
#replayable ⇒ Object
Indicates that the Query is replayable, e.g. for some SSH or K8s sessions.
14334 14335 14336 |
# File 'lib/models/porcelain.rb', line 14334 def replayable @replayable end |
#resource_id ⇒ Object
Unique identifier of the Resource against which the Query was performed.
14336 14337 14338 |
# File 'lib/models/porcelain.rb', line 14336 def resource_id @resource_id end |
#resource_name ⇒ Object
The name of the resource accessed, at the time the query was executed. If the resource is later renamed, that change will not be reflected via this field.
14339 14340 14341 |
# File 'lib/models/porcelain.rb', line 14339 def resource_name @resource_name end |
#resource_tags ⇒ Object
The tags of the resource accessed, at the time the query was executed. If the resource tags are later changed, that change will not be reflected via this field.
14342 14343 14344 |
# File 'lib/models/porcelain.rb', line 14342 def @resource_tags end |
#resource_type ⇒ Object
The specific type of Resource against which the Query was performed, e.g. "ssh" or "postgres".
14344 14345 14346 |
# File 'lib/models/porcelain.rb', line 14344 def resource_type @resource_type end |
#source_ip ⇒ Object
The IP address the Query was performed from, as detected at the ingress gateway.
14346 14347 14348 |
# File 'lib/models/porcelain.rb', line 14346 def source_ip @source_ip end |
#target ⇒ Object
The target destination of the query, in host:port format.
14348 14349 14350 |
# File 'lib/models/porcelain.rb', line 14348 def target @target end |
#timestamp ⇒ Object
The time at which the Query was started.
14350 14351 14352 |
# File 'lib/models/porcelain.rb', line 14350 def @timestamp end |
Instance Method Details
#to_json(options = {}) ⇒ Object
14414 14415 14416 14417 14418 14419 14420 |
# File 'lib/models/porcelain.rb', line 14414 def to_json( = {}) hash = {} self.instance_variables.each do |var| hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var end hash.to_json end |