Class: SDM::Query

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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 =  == nil ? "" : 
  @account_first_name =  == nil ? "" : 
  @account_id =  == nil ? "" : 
  @account_last_name =  == nil ? "" : 
  @account_tags =  == nil ? SDM::_porcelain_zero_value_tags() : 
  @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
  @resource_tags = resource_tags == nil ? SDM::_porcelain_zero_value_tags() : resource_tags
  @resource_type = resource_type == nil ? "" : resource_type
  @source_ip = source_ip == nil ? "" : source_ip
  @target = target == nil ? "" : target
  @timestamp = timestamp == nil ? nil : timestamp
end

Instance Attribute Details

#account_emailObject

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
end

#account_first_nameObject

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
end

#account_idObject

Unique identifier of the Account that performed the Query.



12691
12692
12693
# File 'lib/models/porcelain.rb', line 12691

def 
  @account_id
end

#account_last_nameObject

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
end

#account_tagsObject

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 
  @account_tags
end

#authzjsonObject

Authorization metadata associated with this query.



12699
12700
12701
# File 'lib/models/porcelain.rb', line 12699

def authzjson
  @authzjson
end

#captureObject

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_ipObject

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_atObject

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

#durationObject

The duration of the Query.



12709
12710
12711
# File 'lib/models/porcelain.rb', line 12709

def duration
  @duration
end

#egress_node_idObject

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

#encryptedObject

Indicates that the body of the Query is encrypted.



12713
12714
12715
# File 'lib/models/porcelain.rb', line 12713

def encrypted
  @encrypted
end

#idObject

Unique identifier of the Query.



12715
12716
12717
# File 'lib/models/porcelain.rb', line 12715

def id
  @id
end

#identity_alias_usernameObject

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_jsonObject

Driver specific metadata associated with this query.



12719
12720
12721
# File 'lib/models/porcelain.rb', line 12719

def 
  
end

#query_bodyObject

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_categoryObject

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_hashObject

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_keyObject

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_countObject

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_usernameObject

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

#replayableObject

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_idObject

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_nameObject

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_tagsObject

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 resource_tags
  @resource_tags
end

#resource_typeObject

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_ipObject

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

#targetObject

The target destination of the query, in host:port format.



12751
12752
12753
# File 'lib/models/porcelain.rb', line 12751

def target
  @target
end

#timestampObject

The time at which the Query was started.



12753
12754
12755
# File 'lib/models/porcelain.rb', line 12753

def timestamp
  @timestamp
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(options = {})
  hash = {}
  self.instance_variables.each do |var|
    hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
  end
  hash.to_json
end