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.
-
#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, 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, 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.
9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 |
# File 'lib/models/porcelain.rb', line 9055 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, 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 = == 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 @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 = == nil ? SDM::() : @resource_type = resource_type == nil ? "" : resource_type @source_ip = source_ip == nil ? "" : source_ip @target = target == nil ? "" : target = == 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.
8988 8989 8990 |
# File 'lib/models/porcelain.rb', line 8988 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.
8991 8992 8993 |
# File 'lib/models/porcelain.rb', line 8991 def account_first_name @account_first_name end |
#account_id ⇒ Object
Unique identifier of the Account that performed the Query.
8993 8994 8995 |
# File 'lib/models/porcelain.rb', line 8993 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.
8996 8997 8998 |
# File 'lib/models/porcelain.rb', line 8996 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.
8999 9000 9001 |
# File 'lib/models/porcelain.rb', line 8999 def end |
#authzjson ⇒ Object
Authorization metadata associated with this query.
9001 9002 9003 |
# File 'lib/models/porcelain.rb', line 9001 def authzjson @authzjson end |
#capture ⇒ Object
For queries against SSH, Kubernetes, and RDP resources, this contains additional information about the captured query.
9004 9005 9006 |
# File 'lib/models/porcelain.rb', line 9004 def capture @capture end |
#client_ip ⇒ Object
The IP address the Query was performed from, as detected at the StrongDM control plane.
9006 9007 9008 |
# File 'lib/models/porcelain.rb', line 9006 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.
9009 9010 9011 |
# File 'lib/models/porcelain.rb', line 9009 def completed_at @completed_at end |
#duration ⇒ Object
The duration of the Query.
9011 9012 9013 |
# File 'lib/models/porcelain.rb', line 9011 def duration @duration end |
#egress_node_id ⇒ Object
The unique ID of the node through which the Resource was accessed.
9013 9014 9015 |
# File 'lib/models/porcelain.rb', line 9013 def egress_node_id @egress_node_id end |
#encrypted ⇒ Object
Indicates that the body of the Query is encrypted.
9015 9016 9017 |
# File 'lib/models/porcelain.rb', line 9015 def encrypted @encrypted end |
#id ⇒ Object
Unique identifier of the Query.
9017 9018 9019 |
# File 'lib/models/porcelain.rb', line 9017 def id @id end |
#identity_alias_username ⇒ Object
The username of the IdentityAlias used to access the Resource.
9019 9020 9021 |
# File 'lib/models/porcelain.rb', line 9019 def identity_alias_username @identity_alias_username 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.
9022 9023 9024 |
# File 'lib/models/porcelain.rb', line 9022 def query_body @query_body end |
#query_category ⇒ Object
The general category of Resource against which Query was performed, e.g. "web" or "cloud".
9024 9025 9026 |
# File 'lib/models/porcelain.rb', line 9024 def query_category @query_category end |
#query_hash ⇒ Object
The hash of the body of the Query.
9026 9027 9028 |
# File 'lib/models/porcelain.rb', line 9026 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.
9031 9032 9033 |
# File 'lib/models/porcelain.rb', line 9031 def query_key @query_key end |
#record_count ⇒ Object
The number of records returned by the Query, for a database Resource.
9033 9034 9035 |
# File 'lib/models/porcelain.rb', line 9033 def record_count @record_count end |
#remote_identity_username ⇒ Object
The username of the RemoteIdentity used to access the Resource.
9035 9036 9037 |
# File 'lib/models/porcelain.rb', line 9035 def remote_identity_username @remote_identity_username end |
#replayable ⇒ Object
Indicates that the Query is replayable, e.g. for some SSH or K8s sessions.
9037 9038 9039 |
# File 'lib/models/porcelain.rb', line 9037 def replayable @replayable end |
#resource_id ⇒ Object
Unique identifier of the Resource against which the Query was performed.
9039 9040 9041 |
# File 'lib/models/porcelain.rb', line 9039 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.
9042 9043 9044 |
# File 'lib/models/porcelain.rb', line 9042 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.
9045 9046 9047 |
# File 'lib/models/porcelain.rb', line 9045 def end |
#resource_type ⇒ Object
The specific type of Resource against which the Query was performed, e.g. "ssh" or "postgres".
9047 9048 9049 |
# File 'lib/models/porcelain.rb', line 9047 def resource_type @resource_type end |
#source_ip ⇒ Object
The IP address the Query was performed from, as detected at the ingress gateway.
9049 9050 9051 |
# File 'lib/models/porcelain.rb', line 9049 def source_ip @source_ip end |
#target ⇒ Object
The target destination of the query, in host:port format.
9051 9052 9053 |
# File 'lib/models/porcelain.rb', line 9051 def target @target end |
#timestamp ⇒ Object
The time at which the Query was started.
9053 9054 9055 |
# File 'lib/models/porcelain.rb', line 9053 def end |
Instance Method Details
#to_json(options = {}) ⇒ Object
9115 9116 9117 9118 9119 9120 9121 |
# File 'lib/models/porcelain.rb', line 9115 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 |