snowflake

package
v0.48.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2025 License: Apache-2.0 Imports: 49 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SfAccount                           = "sf-account"
	SfUser                              = "sf-user"
	SfPassword                          = "sf-password"
	SfPrivateKey                        = "sf-private-key"
	SfPrivateKeyPassphrase              = "sf-private-key-passphrase" //nolint:gosec
	SfRole                              = "sf-role"
	SfWarehouse                         = "sf-warehouse"
	SfExcludedDatabases                 = "sf-excluded-databases"
	SfExcludedSchemas                   = "sf-excluded-schemas"
	SfExcludedRoles                     = "sf-excluded-roles"
	SfExternalIdentityStoreOwners       = "sf-external-identity-store-owners"
	SfStandardEdition                   = "sf-standard-edition"
	SfLinkToExternalIdentityStoreGroups = "sf-link-to-external-identity-store-groups"
	SfSkipTags                          = "sf-skip-tags"
	SfSkipColumns                       = "sf-skip-columns"
	SfDataUsageWindow                   = "sf-data-usage-window"
	SfDatabaseRoles                     = "sf-database-roles"
	SfApplications                      = "sf-applications"
	SfDriverDebug                       = "sf-driver-debug"
	SfDriverInsecureMode                = "sf-driver-insecure-mode"
	SfIgnoreLinksToRoles                = "sf-ignore-links-to-roles"
	SfUsageBatchSize                    = "sf-usage-batch-size"
	SfUsageUserExcludes                 = "sf-usage-user-excludes"
	SfWorkerPoolSize                    = "sf-worker-pool-size"

	SfRoleOwnerEmailTag = "sf-role-owner-email-tag"
	SfRoleOwnerNameTag  = "sf-role-owner-name-tag"
	SfRoleOwnerGroupTag = "sf-role-owner-group-tag"

	SfMaskDecryptFunction  = "sf-mask-decrypt-function"
	SfMaskDecryptColumnTag = "sf-mask-decrypt-column-tag"

	TagSource = "Snowflake"

	SharedPrefix = "shared-"

	AccountAdminRole = "ACCOUNTADMIN"

	GrantTypeDatabaseRole    = "DATABASE_ROLE"
	GrantTypeApplicationRole = "APPLICATION_ROLE"
)
View Source
const (
	NullMaskId    = "NULL"
	SHA256MaskId  = "SHA256"
	EncryptMaskId = "ENCRYPT"
)
View Source
const AccountAdmin = "ACCOUNTADMIN"
View Source
const Application = "application"
View Source
const ConnectionStringIdentifier = "Raito_CLI"
View Source
const ExternalTable = "external-" + ds.Table
View Source
const Function = "function"
View Source
const IcebergTable = "iceberg-" + ds.Table
View Source
const Integration = "integration"
View Source
const MaterializedView = "materialized-" + ds.View
View Source
const Procedure = "procedure"
View Source
const SfLimit = 10000
View Source
const USAGE = "USAGE"
View Source
const USAGE_ON_DATABASE = "USAGE on DATABASE"
View Source
const USAGE_ON_SCHEMA = "USAGE on SCHEMA"

Variables

View Source
var AcceptedTypes = map[string]struct{}{"ACCOUNT": {}, "WAREHOUSE": {}, "DATABASE": {}, "SCHEMA": {}, "TABLE": {}, "VIEW": {}, "COLUMN": {}, "SHARED-DATABASE": {}, "EXTERNAL_TABLE": {}, "MATERIALIZED_VIEW": {}, "FUNCTION": {}, "PROCEDURE": {}, "INTEGRATION": {}}
View Source
var Logger hclog.Logger
View Source
var RoleNameConstraints = naming_hint.NamingConstraints{
	UpperCaseLetters:  true,
	LowerCaseLetters:  false,
	Numbers:           true,
	SpecialCharacters: "_$",
	MaxLength:         255,
}

RoleNameConstraints is based on https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#identifier-requirements

View Source
var RolesNotInternalizable = []string{"ORGADMIN", "ACCOUNTADMIN", "SECURITYADMIN", "USERADMIN", "SYSADMIN", "PUBLIC"}

Functions

func CheckSFLimitExceeded

func CheckSFLimitExceeded(query string, size int) error

func ConnectToSnowflake

func ConnectToSnowflake(params map[string]string, role string) (*sql.DB, string, error)

func DataObjectTypeOrder added in v0.45.0

func DataObjectTypeOrder() []string

func DataObjectTypes added in v0.45.0

func DataObjectTypes() []*ds.DataObjectType

func ExecuteSnowflake added in v0.35.0

func ExecuteSnowflake(ctx context.Context, conn *sql.DB, query string, args ...any) error

func GetQueryDbEntitiesColumnNames added in v0.11.0

func GetQueryDbEntitiesColumnNames(tag string, includeTag string) []string

func LoadPrivateKey added in v0.46.0

func LoadPrivateKey(pemData []byte, passphrase string) (*rsa.PrivateKey, error)

func LoadPrivateKeyFromFile added in v0.46.0

func LoadPrivateKeyFromFile(file string, passphrase string) (*rsa.PrivateKey, error)

func QuerySnowflake

func QuerySnowflake(conn *sql.DB, query string, args ...any) (*sql.Rows, error)

Types

type AccessFromTargetSyncer added in v0.42.0

type AccessFromTargetSyncer struct {
	// contains filtered or unexported fields
}

func NewAccessFromTargetSyncer added in v0.42.0

func NewAccessFromTargetSyncer(accessSyncer *AccessSyncer, repo dataAccessRepository, accessProviderHandler wrappers.AccessProviderHandler, configMap *config.ConfigMap) *AccessFromTargetSyncer

type AccessSyncer

type AccessSyncer struct {
	// contains filtered or unexported fields
}

func NewDataAccessSyncer added in v0.10.8

func NewDataAccessSyncer(namingConstraints naming_hint.NamingConstraints) *AccessSyncer

func (*AccessSyncer) SyncAccessProviderToTarget added in v0.35.5

func (s *AccessSyncer) SyncAccessProviderToTarget(ctx context.Context, accessProviders *sync_to_target.AccessProviderImport, accessProviderFeedbackHandler wrappers.AccessProviderFeedbackHandler, configMap *config.ConfigMap) error

func (*AccessSyncer) SyncAccessProvidersFromTarget added in v0.10.8

func (s *AccessSyncer) SyncAccessProvidersFromTarget(ctx context.Context, accessProviderHandler wrappers.AccessProviderHandler, configMap *config.ConfigMap) error

type AccessToTargetSyncer added in v0.42.0

type AccessToTargetSyncer struct {
	// contains filtered or unexported fields
}

func NewAccessToTargetSyncer added in v0.42.0

func NewAccessToTargetSyncer(accessSyncer *AccessSyncer, namingConstraints naming_hint.NamingConstraints, repo dataAccessRepository, accessProviders *importer.AccessProviderImport, accessProviderFeedbackHandler wrappers.AccessProviderFeedbackHandler, configMap *config.ConfigMap) *AccessToTargetSyncer

func (*AccessToTargetSyncer) SyncAccessProviderFiltersToTarget added in v0.42.0

func (s *AccessToTargetSyncer) SyncAccessProviderFiltersToTarget(ctx context.Context, apToRemoveMap map[string]*importer.AccessProvider, apMap map[string]*importer.AccessProvider, roleNameMap map[string]string) error

func (*AccessToTargetSyncer) SyncAccessProviderMasksToTarget added in v0.42.0

func (s *AccessToTargetSyncer) SyncAccessProviderMasksToTarget(apToRemoveMap map[string]*importer.AccessProvider, apMap map[string]*importer.AccessProvider, roleNameMap map[string]string) error

func (*AccessToTargetSyncer) SyncAccessProviderRolesToTarget added in v0.42.0

func (s *AccessToTargetSyncer) SyncAccessProviderRolesToTarget(ctx context.Context, toRemoveAps map[string]*importer.AccessProvider, toProcessAps map[string]*importer.AccessProvider) error

func (*AccessToTargetSyncer) SyncAccessProviderSharesToTarget added in v0.45.0

func (s *AccessToTargetSyncer) SyncAccessProviderSharesToTarget(apToRemoveMap map[string]*importer.AccessProvider, apMap map[string]*importer.AccessProvider) error

type ApplicationRoleEntity added in v0.47.0

type ApplicationRoleEntity struct {
	Name          string  `db:"name"`
	Owner         *string `db:"owner"`
	Comment       *string `db:"comment"`
	OwnerRoleType *string `db:"owner_role_type"`
}

type ApplictionEntity added in v0.47.0

type ApplictionEntity struct {
	Name       string  `db:"name"`
	IsDefault  string  `db:"is_default"`
	IsCurrent  string  `db:"is_current"`
	SourceType *string `db:"source_type"`
	Owner      *string `db:"owner"`
	Version    *string `db:"version"`
}

type ColumnEntity added in v0.22.0

type ColumnEntity struct {
	Database string  `db:"TABLE_CATALOG"`
	Schema   string  `db:"TABLE_SCHEMA"`
	Table    string  `db:"TABLE_NAME"`
	Name     string  `db:"COLUMN_NAME"`
	Comment  *string `db:"COMMENT"`
	DataType string  `db:"DATA_TYPE"`
}

type DataSourceSyncer

type DataSourceSyncer struct {
	SfSyncRole string
	// contains filtered or unexported fields
}

func NewDataSourceSyncer added in v0.10.7

func NewDataSourceSyncer() *DataSourceSyncer

func (*DataSourceSyncer) GetDataSourceMetaData added in v0.12.0

func (s *DataSourceSyncer) GetDataSourceMetaData(_ context.Context, configParam *config.ConfigMap) (*ds.MetaData, error)

func (*DataSourceSyncer) SyncDataSource

func (s *DataSourceSyncer) SyncDataSource(ctx context.Context, dataSourceHandler wrappers.DataSourceObjectHandler, config *ds.DataSourceSyncConfig) error

type DataUsageSyncer

type DataUsageSyncer struct {
	// contains filtered or unexported fields
}

func NewDataUsageSyncer

func NewDataUsageSyncer() *DataUsageSyncer

func (*DataUsageSyncer) SyncDataUsage

func (s *DataUsageSyncer) SyncDataUsage(ctx context.Context, fileCreator wrappers.DataUsageStatementHandler, configParams *config.ConfigMap) error

type DbEntity added in v0.11.0

type DbEntity struct {
	Name         string  `db:"name"`
	Comment      *string `db:"comment"`
	Kind         *string `db:"kind"`
	OwnerAccount *string `db:"owner_account"`
	ShareName    *string `db:"share_name"`
}

type DescribePolicyEntity added in v0.37.2

type DescribePolicyEntity struct {
	Name string `db:"name"`
	Body string `db:"body"`
}

type EntityCreator added in v0.22.0

type EntityCreator func() interface{}

type EntityHandler added in v0.22.0

type EntityHandler func(entity interface{}) error

type ExtendedDbEntity added in v0.36.2

type ExtendedDbEntity struct {
	Entity     DbEntity
	LinkedTags map[string][]*tag.Tag
}

type FilterCriteriaBuilder added in v0.35.0

type FilterCriteriaBuilder struct {
	// contains filtered or unexported fields
}

func NewFilterCriteriaBuilder added in v0.35.0

func NewFilterCriteriaBuilder() *FilterCriteriaBuilder

func (*FilterCriteriaBuilder) EnterExpressionElement added in v0.35.0

func (f *FilterCriteriaBuilder) EnterExpressionElement(_ context.Context, element base.VisitableElement) error

func (*FilterCriteriaBuilder) GetQueryAndArguments added in v0.35.0

func (f *FilterCriteriaBuilder) GetQueryAndArguments() (string, set.Set[string])

func (*FilterCriteriaBuilder) LeaveExpressionElement added in v0.35.0

func (f *FilterCriteriaBuilder) LeaveExpressionElement(_ context.Context, element base.VisitableElement)

func (*FilterCriteriaBuilder) Literal added in v0.35.0

func (f *FilterCriteriaBuilder) Literal(_ context.Context, l interface{}) error

type FunctionEntity added in v0.44.0

type FunctionEntity struct {
	Database          string  `db:"FUNCTION_CATALOG"`
	Schema            string  `db:"FUNCTION_SCHEMA"`
	Name              string  `db:"FUNCTION_NAME"`
	Comment           *string `db:"COMMENT"`
	ArgumentSignature string  `db:"ARGUMENT_SIGNATURE"`
}

type GetSnowFlakeAccountNameOptions added in v0.45.0

type GetSnowFlakeAccountNameOptions struct {
	Delimiter rune
}

type Grant

type Grant struct {
	Permissions string
	// OnType represents the raito data object type of the targeted object
	OnType string
	On     string
}

func (*Grant) GetGrantOnType added in v0.24.0

func (g *Grant) GetGrantOnType() string

GetGrantOnType returns the type to use in a GRANT query.

func (*Grant) OnWithType added in v0.45.0

func (g *Grant) OnWithType() string

type GrantOfRole added in v0.11.0

type GrantOfRole struct {
	GrantedTo   string `db:"granted_to"`
	GranteeName string `db:"grantee_name"`
}

type GrantSet added in v0.45.0

type GrantSet struct {
	// contains filtered or unexported fields
}

func NewGrantSet added in v0.45.0

func NewGrantSet() GrantSet

func (*GrantSet) Add added in v0.45.0

func (g *GrantSet) Add(grants ...Grant)

func (*GrantSet) Iterator added in v0.45.0

func (g *GrantSet) Iterator() iter.Seq[Grant]

func (*GrantSet) Size added in v0.45.0

func (g *GrantSet) Size() (size int)

func (*GrantSet) Slice added in v0.45.0

func (g *GrantSet) Slice() []Grant

type GrantToRole added in v0.11.0

type GrantToRole struct {
	Privilege string `db:"privilege"`
	GrantedOn string `db:"granted_on"`
	Name      string `db:"name"`
}

type IdentityStoreSyncer

type IdentityStoreSyncer struct {
	// contains filtered or unexported fields
}

func NewIdentityStoreSyncer added in v0.10.6

func NewIdentityStoreSyncer() *IdentityStoreSyncer

func (*IdentityStoreSyncer) GetIdentityStoreMetaData added in v0.12.0

func (s *IdentityStoreSyncer) GetIdentityStoreMetaData(_ context.Context, _ *config.ConfigMap) (*is.MetaData, error)

func (*IdentityStoreSyncer) SyncIdentityStore

func (s *IdentityStoreSyncer) SyncIdentityStore(ctx context.Context, identityHandler wrappers.IdentityStoreIdentityHandler, configMap *config.ConfigMap) error

type MaskFactory added in v0.29.0

type MaskFactory struct {
	// contains filtered or unexported fields
}

func NewMaskFactory added in v0.29.0

func NewMaskFactory(params map[string]string) *MaskFactory

func (*MaskFactory) CreateMask added in v0.29.0

func (f *MaskFactory) CreateMask(maskName string, columnType string, maskType *string, beneficiaries *MaskingBeneficiaries) (string, MaskingPolicy, error)

func (*MaskFactory) RegisterMaskGenerator added in v0.29.0

func (f *MaskFactory) RegisterMaskGenerator(maskType string, maskGenerator MaskGenerator)

type MaskGenerator added in v0.29.0

type MaskGenerator interface {
	Generate(maskName string, columnType string, beneficiaries *MaskingBeneficiaries) (MaskingPolicy, error)
}

func EncryptMask added in v0.43.0

func EncryptMask(decryptFunction string, columnTag string) MaskGenerator

func NullMask added in v0.29.0

func NullMask() MaskGenerator

func Sha256Mask added in v0.33.0

func Sha256Mask() MaskGenerator

type MaskingBeneficiaries added in v0.29.0

type MaskingBeneficiaries struct {
	Roles []string
	Users []string
}

type MaskingPolicy added in v0.29.0

type MaskingPolicy string

type MockMaskGenerator added in v0.29.0

type MockMaskGenerator struct {
	mock.Mock
}

MockMaskGenerator is an autogenerated mock type for the MaskGenerator type

func NewMockMaskGenerator added in v0.29.0

func NewMockMaskGenerator(t interface {
	mock.TestingT
	Cleanup(func())
}) *MockMaskGenerator

NewMockMaskGenerator creates a new instance of MockMaskGenerator. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. The first argument is typically a *testing.T value.

func (*MockMaskGenerator) EXPECT added in v0.29.0

func (*MockMaskGenerator) Generate added in v0.29.0

func (_m *MockMaskGenerator) Generate(maskName string, columnType string, beneficiaries *MaskingBeneficiaries) (MaskingPolicy, error)

Generate provides a mock function with given fields: maskName, columnType, beneficiaries

type MockMaskGenerator_Expecter added in v0.29.0

type MockMaskGenerator_Expecter struct {
	// contains filtered or unexported fields
}

func (*MockMaskGenerator_Expecter) Generate added in v0.29.0

func (_e *MockMaskGenerator_Expecter) Generate(maskName interface{}, columnType interface{}, beneficiaries interface{}) *MockMaskGenerator_Generate_Call

Generate is a helper method to define mock.On call

  • maskName string
  • columnType string
  • beneficiaries *MaskingBeneficiaries

type MockMaskGenerator_Generate_Call added in v0.29.0

type MockMaskGenerator_Generate_Call struct {
	*mock.Call
}

MockMaskGenerator_Generate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Generate'

func (*MockMaskGenerator_Generate_Call) Return added in v0.29.0

func (*MockMaskGenerator_Generate_Call) Run added in v0.29.0

func (_c *MockMaskGenerator_Generate_Call) Run(run func(maskName string, columnType string, beneficiaries *MaskingBeneficiaries)) *MockMaskGenerator_Generate_Call

func (*MockMaskGenerator_Generate_Call) RunAndReturn added in v0.29.0

type MockSimpleMaskMethod added in v0.29.0

type MockSimpleMaskMethod struct {
	mock.Mock
}

MockSimpleMaskMethod is an autogenerated mock type for the SimpleMaskMethod type

func NewMockSimpleMaskMethod added in v0.29.0

func NewMockSimpleMaskMethod(t interface {
	mock.TestingT
	Cleanup(func())
}) *MockSimpleMaskMethod

NewMockSimpleMaskMethod creates a new instance of MockSimpleMaskMethod. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. The first argument is typically a *testing.T value.

func (*MockSimpleMaskMethod) EXPECT added in v0.29.0

func (*MockSimpleMaskMethod) MaskMethod added in v0.29.0

func (_m *MockSimpleMaskMethod) MaskMethod(variableName string) string

MaskMethod provides a mock function with given fields: variableName

func (*MockSimpleMaskMethod) SupportedType added in v0.29.0

func (_m *MockSimpleMaskMethod) SupportedType(columnType string) bool

SupportedType provides a mock function with given fields: columnType

type MockSimpleMaskMethod_Expecter added in v0.29.0

type MockSimpleMaskMethod_Expecter struct {
	// contains filtered or unexported fields
}

func (*MockSimpleMaskMethod_Expecter) MaskMethod added in v0.29.0

func (_e *MockSimpleMaskMethod_Expecter) MaskMethod(variableName interface{}) *MockSimpleMaskMethod_MaskMethod_Call

MaskMethod is a helper method to define mock.On call

  • variableName string

func (*MockSimpleMaskMethod_Expecter) SupportedType added in v0.29.0

func (_e *MockSimpleMaskMethod_Expecter) SupportedType(columnType interface{}) *MockSimpleMaskMethod_SupportedType_Call

SupportedType is a helper method to define mock.On call

  • columnType string

type MockSimpleMaskMethod_MaskMethod_Call added in v0.29.0

type MockSimpleMaskMethod_MaskMethod_Call struct {
	*mock.Call
}

MockSimpleMaskMethod_MaskMethod_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MaskMethod'

func (*MockSimpleMaskMethod_MaskMethod_Call) Return added in v0.29.0

func (*MockSimpleMaskMethod_MaskMethod_Call) Run added in v0.29.0

func (*MockSimpleMaskMethod_MaskMethod_Call) RunAndReturn added in v0.29.0

type MockSimpleMaskMethod_SupportedType_Call added in v0.29.0

type MockSimpleMaskMethod_SupportedType_Call struct {
	*mock.Call
}

MockSimpleMaskMethod_SupportedType_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SupportedType'

func (*MockSimpleMaskMethod_SupportedType_Call) Return added in v0.29.0

func (*MockSimpleMaskMethod_SupportedType_Call) Run added in v0.29.0

func (*MockSimpleMaskMethod_SupportedType_Call) RunAndReturn added in v0.29.0

type NullString

type NullString sql.NullString

Implementation of Scanner interface for NullString

func (*NullString) Scan

func (nullString *NullString) Scan(value interface{}) error

type PolicyEntity added in v0.29.0

type PolicyEntity struct {
	Name         string `db:"name"`
	DatabaseName string `db:"database_name"`
	SchemaName   string `db:"schema_name"`
	Kind         string `db:"kind"`
	Owner        string `db:"owner"`
}

type PolicyReferenceEntity added in v0.37.2

type PolicyReferenceEntity struct {
	POLICY_DB            string     `db:"POLICY_DB"`
	POLICY_SCHEMA        string     `db:"POLICY_SCHEMA"`
	POLICY_NAME          string     `db:"POLICY_NAME"`
	POLICY_KIND          string     `db:"POLICY_KIND"`
	REF_DATABASE_NAME    string     `db:"REF_DATABASE_NAME"`
	REF_SCHEMA_NAME      string     `db:"REF_SCHEMA_NAME"`
	REF_ENTITY_NAME      string     `db:"REF_ENTITY_NAME"`
	REF_ENTITY_DOMAIN    string     `db:"REF_ENTITY_DOMAIN"`
	REF_COLUMN_NAME      NullString `db:"REF_COLUMN_NAME"`
	REF_ARG_COLUMN_NAMES NullString `db:"REF_ARG_COLUMN_NAMES"`
	TAG_DATABASE         NullString `db:"TAG_DATABASE"`
	TAG_SCHEMA           NullString `db:"TAG_SCHEMA"`
	TAG_NAME             NullString `db:"TAG_NAME"`
	POLICY_STATUS        string     `db:"POLICY_STATUS"`
}

type ProcedureEntity added in v0.45.0

type ProcedureEntity struct {
	Database          string  `db:"PROCEDURE_CATALOG"`
	Schema            string  `db:"PROCEDURE_SCHEMA"`
	Name              string  `db:"PROCEDURE_NAME"`
	Comment           *string `db:"COMMENT"`
	ArgumentSignature string  `db:"ARGUMENT_SIGNATURE"`
}

type QueryDbEntities

type QueryDbEntities struct {
	ExternalId            string     `db:"QUERY_ID" useColumnName:"true"`
	Status                string     `db:"EXECUTION_STATUS" useColumnName:"true"`
	Query                 string     `db:"QUERY_TEXT" useColumnName:"true"`
	ErrorMessage          NullString `db:"ERROR_MESSAGE" useColumnName:"true"`
	DatabaseName          NullString `db:"DATABASE_NAME" useColumnName:"true"`
	SchemaName            NullString `db:"SCHEMA_NAME" useColumnName:"true"`
	User                  string     `db:"USER_NAME" useColumnName:"true"`
	Role                  NullString `db:"ROLE_NAME" useColumnName:"true"`
	StartTime             string     `db:"START_TIME" useColumnName:"true"`
	EndTime               string     `db:"END_TIME" useColumnName:"true"`
	BytesTranferred       int        `db:"OUTBOUND_DATA_TRANSFER_BYTES" useColumnName:"true"`
	RowsReturned          int        `db:"EXTERNAL_FUNCTION_TOTAL_SENT_ROWS" useColumnName:"true"`
	CloudCreditsUsed      float32    `db:"CREDITS_USED_CLOUD_SERVICES" useColumnName:"true"`
	AccessId              NullString `db:"QID"`
	DirectObjectsAccessed *string    `db:"DIRECT_OBJECTS_ACCESSED"`
	BaseObjectsAccessed   *string    `db:"BASE_OBJECTS_ACCESSED"`
	ObjectsModified       *string    `db:"OBJECTS_MODIFIED"`
}

Data Usage

func (QueryDbEntities) String

func (entity QueryDbEntities) String() string

type RoleEntity added in v0.11.0

type RoleEntity struct {
	Name            string `db:"name"`
	AssignedToUsers int    `db:"assigned_to_users"`
	GrantedToRoles  int    `db:"granted_to_roles"`
	GrantedRoles    int    `db:"granted_roles"`
	Owner           string `db:"owner"`
}

Data Access

type SchemaEntity added in v0.22.0

type SchemaEntity struct {
	Database string  `db:"CATALOG_NAME"`
	Name     string  `db:"SCHEMA_NAME"`
	Comment  *string `db:"COMMENT"`
}

type ShareEntity added in v0.45.0

type ShareEntity struct {
	Name         string `db:"name"`
	Owner        string `db:"owner"`
	To           string `db:"to"`
	DatabaseName string `db:"database_name"`
}

type SimpleMaskGenerator added in v0.29.0

type SimpleMaskGenerator struct {
	SimpleMaskMethod
}

func NewSimpleMaskGenerator added in v0.29.0

func NewSimpleMaskGenerator(method SimpleMaskMethod) *SimpleMaskGenerator

func (*SimpleMaskGenerator) Generate added in v0.29.0

func (g *SimpleMaskGenerator) Generate(maskName string, columnType string, beneficiaries *MaskingBeneficiaries) (MaskingPolicy, error)

type SimpleMaskMethod added in v0.29.0

type SimpleMaskMethod interface {
	MaskMethod(variableName string) string
	SupportedType(columnType string) bool
}

type SnowflakeRepository

type SnowflakeRepository struct {
	// contains filtered or unexported fields
}

func NewSnowflakeRepository

func NewSnowflakeRepository(params map[string]string, role string) (*SnowflakeRepository, error)

func (*SnowflakeRepository) Close

func (repo *SnowflakeRepository) Close() error

func (*SnowflakeRepository) CommentAccountRoleIfExists added in v0.35.5

func (repo *SnowflakeRepository) CommentAccountRoleIfExists(comment, objectName string) error

func (*SnowflakeRepository) CommentDatabaseRoleIfExists added in v0.35.5

func (repo *SnowflakeRepository) CommentDatabaseRoleIfExists(comment, database, roleName string) error

func (*SnowflakeRepository) CreateAccountRole added in v0.35.1

func (repo *SnowflakeRepository) CreateAccountRole(roleName string) error

func (*SnowflakeRepository) CreateDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) CreateDatabaseRole(database string, roleName string) error

func (*SnowflakeRepository) CreateMaskPolicy added in v0.29.0

func (repo *SnowflakeRepository) CreateMaskPolicy(databaseName string, schema string, maskName string, columnsFullName []string, maskType *string, beneficiaries *MaskingBeneficiaries) (err error)

func (*SnowflakeRepository) CreateShare added in v0.45.0

func (repo *SnowflakeRepository) CreateShare(shareName string) (err error)

func (*SnowflakeRepository) DescribePolicy added in v0.10.8

func (repo *SnowflakeRepository) DescribePolicy(policyType, dbName, schema, policyName string) ([]DescribePolicyEntity, error)

func (*SnowflakeRepository) DropAccountRole added in v0.35.1

func (repo *SnowflakeRepository) DropAccountRole(roleName string) error

func (*SnowflakeRepository) DropDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) DropDatabaseRole(database string, roleName string) error

func (*SnowflakeRepository) DropFilter added in v0.35.0

func (repo *SnowflakeRepository) DropFilter(databaseName string, schema string, tableName string, filterName string) error

func (*SnowflakeRepository) DropMaskingPolicy added in v0.29.0

func (repo *SnowflakeRepository) DropMaskingPolicy(databaseName string, schema string, maskName string) (err error)

func (*SnowflakeRepository) DropShare added in v0.45.0

func (repo *SnowflakeRepository) DropShare(shareName string) (err error)

func (*SnowflakeRepository) ExecuteGrantOnAccountRole added in v0.35.1

func (repo *SnowflakeRepository) ExecuteGrantOnAccountRole(perm, on, accountRole string, isSystemGrant bool) error

func (*SnowflakeRepository) ExecuteGrantOnDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) ExecuteGrantOnDatabaseRole(perm, on, database, databaseRole string) error

func (*SnowflakeRepository) ExecuteGrantOnShare added in v0.45.0

func (repo *SnowflakeRepository) ExecuteGrantOnShare(perm, on, shareName string) error

func (*SnowflakeRepository) ExecuteRevokeOnAccountRole added in v0.35.1

func (repo *SnowflakeRepository) ExecuteRevokeOnAccountRole(perm, on, accountRole string, isSystemRevoke bool) error

func (*SnowflakeRepository) ExecuteRevokeOnDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) ExecuteRevokeOnDatabaseRole(perm, on, database, databaseRole string) error

func (*SnowflakeRepository) ExecuteRevokeOnShare added in v0.45.0

func (repo *SnowflakeRepository) ExecuteRevokeOnShare(perm, on, shareName string) error

func (*SnowflakeRepository) GetAccountRoles added in v0.35.1

func (repo *SnowflakeRepository) GetAccountRoles() ([]RoleEntity, error)

func (*SnowflakeRepository) GetAccountRolesWithPrefix added in v0.35.1

func (repo *SnowflakeRepository) GetAccountRolesWithPrefix(prefix string) ([]RoleEntity, error)

func (*SnowflakeRepository) GetApplicationRoles added in v0.47.0

func (repo *SnowflakeRepository) GetApplicationRoles(application string) ([]ApplicationRoleEntity, error)

func (*SnowflakeRepository) GetApplications added in v0.47.0

func (repo *SnowflakeRepository) GetApplications() ([]ApplictionEntity, error)

func (*SnowflakeRepository) GetColumnsInDatabase added in v0.22.0

func (repo *SnowflakeRepository) GetColumnsInDatabase(databaseName string, handleEntity EntityHandler) error

func (*SnowflakeRepository) GetDataUsage added in v0.38.0

func (repo *SnowflakeRepository) GetDataUsage(ctx context.Context, minTime time.Time, maxTime *time.Time, excludedUsers set.Set[string]) <-chan stream.MaybeError[UsageQueryResult]

func (*SnowflakeRepository) GetDatabaseRoleTags added in v0.37.6

func (repo *SnowflakeRepository) GetDatabaseRoleTags(databaseName string, roleName string) (map[string][]*tag.Tag, error)

func (*SnowflakeRepository) GetDatabaseRoles added in v0.35.5

func (repo *SnowflakeRepository) GetDatabaseRoles(database string) ([]RoleEntity, error)

func (*SnowflakeRepository) GetDatabaseRolesWithPrefix added in v0.35.5

func (repo *SnowflakeRepository) GetDatabaseRolesWithPrefix(database string, prefix string) ([]RoleEntity, error)

func (*SnowflakeRepository) GetDatabases added in v0.35.5

func (repo *SnowflakeRepository) GetDatabases() ([]DbEntity, error)

func (*SnowflakeRepository) GetDirectObjectTagValues added in v0.46.0

func (repo *SnowflakeRepository) GetDirectObjectTagValues(tagName, objectName, objectDomain string) ([]string, error)

func (*SnowflakeRepository) GetFunctionsInDatabase added in v0.44.0

func (repo *SnowflakeRepository) GetFunctionsInDatabase(databaseName string, handleEntity EntityHandler) error

func (*SnowflakeRepository) GetGrantsOfAccountRole added in v0.35.1

func (repo *SnowflakeRepository) GetGrantsOfAccountRole(roleName string) ([]GrantOfRole, error)

func (*SnowflakeRepository) GetGrantsOfApplicationRole added in v0.47.0

func (repo *SnowflakeRepository) GetGrantsOfApplicationRole(application, role string) ([]GrantOfRole, error)

func (*SnowflakeRepository) GetGrantsOfDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) GetGrantsOfDatabaseRole(database, roleName string) ([]GrantOfRole, error)

func (*SnowflakeRepository) GetGrantsToAccountRole added in v0.35.1

func (repo *SnowflakeRepository) GetGrantsToAccountRole(roleName string) ([]GrantToRole, error)

func (*SnowflakeRepository) GetGrantsToDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) GetGrantsToDatabaseRole(database, roleName string) ([]GrantToRole, error)

func (*SnowflakeRepository) GetGrantsToShare added in v0.45.0

func (repo *SnowflakeRepository) GetGrantsToShare(shareName string) ([]GrantToRole, error)

func (*SnowflakeRepository) GetInboundShares added in v0.45.0

func (repo *SnowflakeRepository) GetInboundShares() ([]DbEntity, error)

func (*SnowflakeRepository) GetIntegrations added in v0.45.0

func (repo *SnowflakeRepository) GetIntegrations() ([]DbEntity, error)

func (*SnowflakeRepository) GetOutboundShares added in v0.45.0

func (repo *SnowflakeRepository) GetOutboundShares() ([]ShareEntity, error)

func (*SnowflakeRepository) GetPolicies added in v0.10.8

func (repo *SnowflakeRepository) GetPolicies(policy string) ([]PolicyEntity, error)

func (*SnowflakeRepository) GetPoliciesLike added in v0.29.0

func (repo *SnowflakeRepository) GetPoliciesLike(policy string, like string) ([]PolicyEntity, error)

func (*SnowflakeRepository) GetPolicyReferences added in v0.10.8

func (repo *SnowflakeRepository) GetPolicyReferences(dbName, schema, policyName string) ([]PolicyReferenceEntity, error)

func (*SnowflakeRepository) GetProceduresInDatabase added in v0.45.0

func (repo *SnowflakeRepository) GetProceduresInDatabase(databaseName string, handleEntity EntityHandler) error

func (*SnowflakeRepository) GetSchemasInDatabase added in v0.14.1

func (repo *SnowflakeRepository) GetSchemasInDatabase(databaseName string, handleEntity EntityHandler) error

func (*SnowflakeRepository) GetSnowFlakeAccountName added in v0.10.7

func (repo *SnowflakeRepository) GetSnowFlakeAccountName(ops ...func(options *GetSnowFlakeAccountNameOptions)) (string, error)

func (*SnowflakeRepository) GetTablesInDatabase added in v0.22.0

func (repo *SnowflakeRepository) GetTablesInDatabase(databaseName string, schemaName string, handleEntity EntityHandler) error

func (*SnowflakeRepository) GetTagsByDomain added in v0.35.5

func (repo *SnowflakeRepository) GetTagsByDomain(domain string) (map[string][]*tag.Tag, error)

func (*SnowflakeRepository) GetTagsLinkedToDatabaseName added in v0.35.5

func (repo *SnowflakeRepository) GetTagsLinkedToDatabaseName(databaseName string) (map[string][]*tag.Tag, error)

func (*SnowflakeRepository) GetUsers added in v0.10.6

func (repo *SnowflakeRepository) GetUsers() ([]UserEntity, error)

func (*SnowflakeRepository) GetWarehouses added in v0.10.7

func (repo *SnowflakeRepository) GetWarehouses() ([]DbEntity, error)

func (*SnowflakeRepository) GrantAccountRolesToAccountRole added in v0.35.1

func (repo *SnowflakeRepository) GrantAccountRolesToAccountRole(ctx context.Context, role string, roles ...string) error

func (*SnowflakeRepository) GrantAccountRolesToApplicationRole added in v0.47.0

func (repo *SnowflakeRepository) GrantAccountRolesToApplicationRole(ctx context.Context, application string, applicationRole string, accountRoles ...string) error

func (*SnowflakeRepository) GrantAccountRolesToDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) GrantAccountRolesToDatabaseRole(ctx context.Context, database string, databaseRole string, accountRoles ...string) error

func (*SnowflakeRepository) GrantApplicationRolesToApplicationRole added in v0.47.0

func (repo *SnowflakeRepository) GrantApplicationRolesToApplicationRole(ctx context.Context, application string, applicationRole string, applicationRoles ...string) error

func (*SnowflakeRepository) GrantDatabaseRolesToDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) GrantDatabaseRolesToDatabaseRole(ctx context.Context, database string, databaseRole string, databaseRoles ...string) error

func (*SnowflakeRepository) GrantSharesToDatabaseRole added in v0.45.0

func (repo *SnowflakeRepository) GrantSharesToDatabaseRole(ctx context.Context, database string, databaseRole string, shares ...string) error

func (*SnowflakeRepository) GrantUsersToAccountRole added in v0.35.1

func (repo *SnowflakeRepository) GrantUsersToAccountRole(ctx context.Context, role string, users ...string) error

func (*SnowflakeRepository) RenameAccountRole added in v0.35.1

func (repo *SnowflakeRepository) RenameAccountRole(oldName, newName string) error

func (*SnowflakeRepository) RenameDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) RenameDatabaseRole(database, oldName, newName string) error

func (*SnowflakeRepository) RevokeAccountRolesFromAccountRole added in v0.35.1

func (repo *SnowflakeRepository) RevokeAccountRolesFromAccountRole(ctx context.Context, accountRole string, accountRoles ...string) error

func (*SnowflakeRepository) RevokeAccountRolesFromApplicationRole added in v0.47.0

func (repo *SnowflakeRepository) RevokeAccountRolesFromApplicationRole(ctx context.Context, application string, applicationRole string, accountRoles ...string) error

func (*SnowflakeRepository) RevokeAccountRolesFromDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) RevokeAccountRolesFromDatabaseRole(ctx context.Context, database string, databaseRole string, accountRoles ...string) error

func (*SnowflakeRepository) RevokeApplicationRolesFromApplicationRole added in v0.47.0

func (repo *SnowflakeRepository) RevokeApplicationRolesFromApplicationRole(ctx context.Context, application string, applicationRole string, applicationRoles ...string) error

func (*SnowflakeRepository) RevokeDatabaseRolesFromDatabaseRole added in v0.35.5

func (repo *SnowflakeRepository) RevokeDatabaseRolesFromDatabaseRole(ctx context.Context, database string, databaseRole string, databaseRoles ...string) error

func (*SnowflakeRepository) RevokeSharesFromDatabaseRole added in v0.45.0

func (repo *SnowflakeRepository) RevokeSharesFromDatabaseRole(ctx context.Context, database string, databaseRole string, shares ...string) error

func (*SnowflakeRepository) RevokeUsersFromAccountRole added in v0.35.1

func (repo *SnowflakeRepository) RevokeUsersFromAccountRole(ctx context.Context, role string, users ...string) error

func (*SnowflakeRepository) SetShareAccounts added in v0.45.0

func (repo *SnowflakeRepository) SetShareAccounts(shareName string, accounts []string) (err error)

func (*SnowflakeRepository) SetTagOnRole added in v0.46.0

func (repo *SnowflakeRepository) SetTagOnRole(roleName, tagName, tagValue string, isDatabaseRole bool) error

func (*SnowflakeRepository) TotalQueryTime

func (repo *SnowflakeRepository) TotalQueryTime() time.Duration

func (*SnowflakeRepository) UpdateFilter added in v0.35.0

func (repo *SnowflakeRepository) UpdateFilter(databaseName string, schema string, tableName string, filterName string, argumentNames []string, expression string) error

type TableEntity added in v0.22.0

type TableEntity struct {
	Database     string  `db:"TABLE_CATALOG"`
	Schema       string  `db:"TABLE_SCHEMA"`
	Name         string  `db:"TABLE_NAME"`
	TableType    string  `db:"TABLE_TYPE"`
	Comment      *string `db:"COMMENT"`
	IsIcebergStr string  `db:"IS_ICEBERG"`
}

func (*TableEntity) IsIceberg added in v0.42.8

func (t *TableEntity) IsIceberg() bool

type TagEntity added in v0.22.0

type TagEntity struct {
	Database *string `db:"OBJECT_DATABASE"`
	Schema   *string `db:"OBJECT_SCHEMA"`
	Name     string  `db:"OBJECT_NAME"`
	Domain   string  `db:"DOMAIN"`
	TagName  string  `db:"TAG_NAME"`
	TagValue string  `db:"TAG_VALUE"`
	Column   *string `db:"COLUMN_NAME"`
}

func (*TagEntity) CreateTag added in v0.22.0

func (t *TagEntity) CreateTag() *tag.Tag

func (*TagEntity) GetFullName added in v0.22.0

func (t *TagEntity) GetFullName() string

type UsageQueryResult added in v0.38.0

type UsageQueryResult struct {
	ExternalId            string        `db:"QUERY_ID" useColumnName:"true"`
	Query                 NullString    `db:"QUERY_TEXT" useColumnName:"true"`
	DatabaseName          NullString    `db:"DATABASE_NAME" useColumnName:"true"`
	SchemaName            NullString    `db:"SCHEMA_NAME" useColumnName:"true"`
	QueryType             NullString    `db:"QUERY_TYPE" useColumnName:"true"`
	SessionID             NullString    `db:"SESSION_ID" useColumnName:"true"`
	User                  NullString    `db:"USER_NAME" useColumnName:"true"`
	Role                  NullString    `db:"ROLE_NAME" useColumnName:"true"`
	Status                NullString    `db:"EXECUTION_STATUS" useColumnName:"true"`
	StartTime             sql.NullTime  `db:"START_TIME" useColumnName:"true"`
	EndTime               sql.NullTime  `db:"END_TIME" useColumnName:"true"`
	TotalElapsedTime      int64         `db:"TOTAL_ELAPSED_TIME" useColumnName:"true"`
	BytesScanned          int64         `db:"BYTES_SCANNED" useColumnName:"true"`
	BytesWritten          int64         `db:"BYTES_WRITTEN" useColumnName:"true"`
	BytesWrittenToResult  int64         `db:"BYTES_WRITTEN_TO_RESULT" useColumnName:"true"`
	RowsProduced          sql.NullInt64 `db:"ROWS_PRODUCED" useColumnName:"true"`
	RowsInserted          int64         `db:"ROWS_INSERTED" useColumnName:"true"`
	RowsUpdated           int64         `db:"ROWS_UPDATED" useColumnName:"true"`
	RowsDeleted           int64         `db:"ROWS_DELETED" useColumnName:"true"`
	RowsUnloaded          int64         `db:"ROWS_UNLOADED" useColumnName:"true"`
	CloudCreditsUsed      float64       `db:"CREDITS_USED_CLOUD_SERVICES" useColumnName:"true"`
	DirectObjectsAccessed NullString    `db:"DIRECT_OBJECTS_ACCESSED" useColumnName:"true"`
	BaseObjectsAccessed   NullString    `db:"BASE_OBJECTS_ACCESSED" useColumnName:"true"`
	ObjectsModified       NullString    `db:"OBJECTS_MODIFIED" useColumnName:"true"`
	ObjectsModifiedByDdl  NullString    `db:"OBJECTS_MODIFIED_BY_DDL" useColumnName:"true"`
	ParentQueryID         NullString    `db:"PARENT_QUERY_ID" useColumnName:"true"`
	RootQueryID           NullString    `db:"ROOT_QUERY_ID" useColumnName:"true"`
}

type UserDetails added in v0.40.1

type UserDetails struct {
	Property string `db:"property"`
	Value    string `db:"value"`
}

type UserEntity added in v0.11.0

type UserEntity struct {
	Name        string  `db:"name"`
	LoginName   *string `db:"login_name"`
	DisplayName *string `db:"display_name"`
	Email       *string `db:"email"`
	Owner       string  `db:"owner"`
	Type        *string `db:"type"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL