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.
-
#capture ⇒ Object
For queries against SSH, Kubernetes, and RDP resources, this contains additional information about the captured query.
-
#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.
-
#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.
-
#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, capture: nil, completed_at: nil, duration: nil, egress_node_id: nil, encrypted: nil, id: 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, 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, capture: nil, completed_at: nil, duration: nil, egress_node_id: nil, encrypted: nil, id: 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, timestamp: nil) ⇒ Query
Returns a new instance of Query.
6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 |
# File 'lib/models/porcelain.rb', line 6857 def initialize( account_email: nil, account_first_name: nil, account_id: nil, account_last_name: nil, account_tags: nil, capture: nil, completed_at: nil, duration: nil, egress_node_id: nil, encrypted: nil, id: 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, 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::() : @capture = capture == nil ? nil : capture @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 @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 @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.
6798 6799 6800 |
# File 'lib/models/porcelain.rb', line 6798 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.
6801 6802 6803 |
# File 'lib/models/porcelain.rb', line 6801 def account_first_name @account_first_name end |
#account_id ⇒ Object
Unique identifier of the Account that performed the Query.
6803 6804 6805 |
# File 'lib/models/porcelain.rb', line 6803 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.
6806 6807 6808 |
# File 'lib/models/porcelain.rb', line 6806 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.
6809 6810 6811 |
# File 'lib/models/porcelain.rb', line 6809 def @account_tags end |
#capture ⇒ Object
For queries against SSH, Kubernetes, and RDP resources, this contains additional information about the captured query.
6812 6813 6814 |
# File 'lib/models/porcelain.rb', line 6812 def capture @capture end |
#completed_at ⇒ Object
The time at which the Query was completed. Empty if this record indicates the start of a long-running query.
6815 6816 6817 |
# File 'lib/models/porcelain.rb', line 6815 def completed_at @completed_at end |
#duration ⇒ Object
The duration of the Query.
6817 6818 6819 |
# File 'lib/models/porcelain.rb', line 6817 def duration @duration end |
#egress_node_id ⇒ Object
The unique ID of the node through which the Resource was accessed.
6819 6820 6821 |
# File 'lib/models/porcelain.rb', line 6819 def egress_node_id @egress_node_id end |
#encrypted ⇒ Object
Indicates that the body of the Query is encrypted.
6821 6822 6823 |
# File 'lib/models/porcelain.rb', line 6821 def encrypted @encrypted end |
#id ⇒ Object
Unique identifier of the Query.
6823 6824 6825 |
# File 'lib/models/porcelain.rb', line 6823 def id @id 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.
6826 6827 6828 |
# File 'lib/models/porcelain.rb', line 6826 def query_body @query_body end |
#query_category ⇒ Object
The general category of Resource against which Query was performed, e.g. "web" or "cloud".
6828 6829 6830 |
# File 'lib/models/porcelain.rb', line 6828 def query_category @query_category end |
#query_hash ⇒ Object
The hash of the body of the Query.
6830 6831 6832 |
# File 'lib/models/porcelain.rb', line 6830 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.
6835 6836 6837 |
# File 'lib/models/porcelain.rb', line 6835 def query_key @query_key end |
#record_count ⇒ Object
The number of records returned by the Query, for a database Resource.
6837 6838 6839 |
# File 'lib/models/porcelain.rb', line 6837 def record_count @record_count end |
#remote_identity_username ⇒ Object
The username of the RemoteIdentity used to access the Resource.
6839 6840 6841 |
# File 'lib/models/porcelain.rb', line 6839 def remote_identity_username @remote_identity_username end |
#replayable ⇒ Object
Indicates that the Query is replayable, e.g. for some SSH or K8s sessions.
6841 6842 6843 |
# File 'lib/models/porcelain.rb', line 6841 def replayable @replayable end |
#resource_id ⇒ Object
Unique identifier of the Resource against which the Query was performed.
6843 6844 6845 |
# File 'lib/models/porcelain.rb', line 6843 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.
6846 6847 6848 |
# File 'lib/models/porcelain.rb', line 6846 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.
6849 6850 6851 |
# File 'lib/models/porcelain.rb', line 6849 def @resource_tags end |
#resource_type ⇒ Object
The specific type of Resource against which the Query was performed, e.g. "ssh" or "postgres".
6851 6852 6853 |
# File 'lib/models/porcelain.rb', line 6851 def resource_type @resource_type end |
#source_ip ⇒ Object
The IP address the Query was performed from, as detected at the ingress gateway.
6853 6854 6855 |
# File 'lib/models/porcelain.rb', line 6853 def source_ip @source_ip end |
#timestamp ⇒ Object
The time at which the Query was started.
6855 6856 6857 |
# File 'lib/models/porcelain.rb', line 6855 def @timestamp end |
Instance Method Details
#to_json(options = {}) ⇒ Object
6909 6910 6911 6912 6913 6914 6915 |
# File 'lib/models/porcelain.rb', line 6909 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 |