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.
12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 |
# File 'lib/models/porcelain.rb', line 12755 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 = == 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 = == 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 = == 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.
12686 12687 12688 |
# File 'lib/models/porcelain.rb', line 12686 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.
12689 12690 12691 |
# File 'lib/models/porcelain.rb', line 12689 def account_first_name @account_first_name end |
#account_id ⇒ Object
Unique identifier of the Account that performed the Query.
12691 12692 12693 |
# File 'lib/models/porcelain.rb', line 12691 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.
12694 12695 12696 |
# File 'lib/models/porcelain.rb', line 12694 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.
12697 12698 12699 |
# File 'lib/models/porcelain.rb', line 12697 def end |
#authzjson ⇒ Object
Authorization metadata associated with this query.
12699 12700 12701 |
# File 'lib/models/porcelain.rb', line 12699 def authzjson @authzjson end |
#capture ⇒ Object
For queries against SSH, Kubernetes, and RDP resources, this contains additional information about the captured query.
12702 12703 12704 |
# File 'lib/models/porcelain.rb', line 12702 def capture @capture end |
#client_ip ⇒ Object
The IP address the Query was performed from, as detected at the StrongDM control plane.
12704 12705 12706 |
# File 'lib/models/porcelain.rb', line 12704 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.
12707 12708 12709 |
# File 'lib/models/porcelain.rb', line 12707 def completed_at @completed_at end |
#duration ⇒ Object
The duration of the Query.
12709 12710 12711 |
# File 'lib/models/porcelain.rb', line 12709 def duration @duration end |
#egress_node_id ⇒ Object
The unique ID of the node through which the Resource was accessed.
12711 12712 12713 |
# File 'lib/models/porcelain.rb', line 12711 def egress_node_id @egress_node_id end |
#encrypted ⇒ Object
Indicates that the body of the Query is encrypted.
12713 12714 12715 |
# File 'lib/models/porcelain.rb', line 12713 def encrypted @encrypted end |
#id ⇒ Object
Unique identifier of the Query.
12715 12716 12717 |
# File 'lib/models/porcelain.rb', line 12715 def id @id end |
#identity_alias_username ⇒ Object
The username of the IdentityAlias used to access the Resource.
12717 12718 12719 |
# File 'lib/models/porcelain.rb', line 12717 def identity_alias_username @identity_alias_username end |
#metadata_json ⇒ Object
Driver specific metadata associated with this query.
12719 12720 12721 |
# File 'lib/models/porcelain.rb', line 12719 def 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.
12722 12723 12724 |
# File 'lib/models/porcelain.rb', line 12722 def query_body @query_body end |
#query_category ⇒ Object
The general category of Resource against which Query was performed, e.g. "web" or "cloud".
12724 12725 12726 |
# File 'lib/models/porcelain.rb', line 12724 def query_category @query_category end |
#query_hash ⇒ Object
The hash of the body of the Query.
12726 12727 12728 |
# File 'lib/models/porcelain.rb', line 12726 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.
12731 12732 12733 |
# File 'lib/models/porcelain.rb', line 12731 def query_key @query_key end |
#record_count ⇒ Object
The number of records returned by the Query, for a database Resource.
12733 12734 12735 |
# File 'lib/models/porcelain.rb', line 12733 def record_count @record_count end |
#remote_identity_username ⇒ Object
The username of the RemoteIdentity used to access the Resource.
12735 12736 12737 |
# File 'lib/models/porcelain.rb', line 12735 def remote_identity_username @remote_identity_username end |
#replayable ⇒ Object
Indicates that the Query is replayable, e.g. for some SSH or K8s sessions.
12737 12738 12739 |
# File 'lib/models/porcelain.rb', line 12737 def replayable @replayable end |
#resource_id ⇒ Object
Unique identifier of the Resource against which the Query was performed.
12739 12740 12741 |
# File 'lib/models/porcelain.rb', line 12739 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.
12742 12743 12744 |
# File 'lib/models/porcelain.rb', line 12742 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.
12745 12746 12747 |
# File 'lib/models/porcelain.rb', line 12745 def end |
#resource_type ⇒ Object
The specific type of Resource against which the Query was performed, e.g. "ssh" or "postgres".
12747 12748 12749 |
# File 'lib/models/porcelain.rb', line 12747 def resource_type @resource_type end |
#source_ip ⇒ Object
The IP address the Query was performed from, as detected at the ingress gateway.
12749 12750 12751 |
# File 'lib/models/porcelain.rb', line 12749 def source_ip @source_ip end |
#target ⇒ Object
The target destination of the query, in host:port format.
12751 12752 12753 |
# File 'lib/models/porcelain.rb', line 12751 def target @target end |
#timestamp ⇒ Object
The time at which the Query was started.
12753 12754 12755 |
# File 'lib/models/porcelain.rb', line 12753 def end |
Instance Method Details
#to_json(options = {}) ⇒ Object
12817 12818 12819 12820 12821 12822 12823 |
# File 'lib/models/porcelain.rb', line 12817 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 |