github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/introspection/rate_limiters_table_sql.go (about) 1 package introspection 2 3 import ( 4 "fmt" 5 6 "github.com/turbot/steampipe/pkg/constants" 7 "github.com/turbot/steampipe/pkg/db/db_common" 8 "github.com/turbot/steampipe/pkg/steampipeconfig/modconfig" 9 ) 10 11 func GetRateLimiterTableCreateSql() db_common.QueryWithArgs { 12 return db_common.QueryWithArgs{ 13 Query: fmt.Sprintf(`CREATE TABLE IF NOT EXISTS %s.%s ( 14 name TEXT, 15 plugin TEXT, 16 plugin_instance TEXT NULL, 17 source_type TEXT, 18 status TEXT, 19 bucket_size INTEGER, 20 fill_rate REAL , 21 max_concurrency INTEGER, 22 scope JSONB, 23 "where" TEXT, 24 file_name TEXT, 25 start_line_number INTEGER, 26 end_line_number INTEGER 27 );`, constants.InternalSchema, constants.RateLimiterDefinitionTable), 28 } 29 } 30 31 func GetRateLimiterTableDropSql() db_common.QueryWithArgs { 32 return db_common.QueryWithArgs{ 33 Query: fmt.Sprintf( 34 `DROP TABLE IF EXISTS %s.%s;`, 35 constants.InternalSchema, 36 constants.RateLimiterDefinitionTable, 37 ), 38 } 39 } 40 41 func GetRateLimiterTablePopulateSql(settings *modconfig.RateLimiter) db_common.QueryWithArgs { 42 return db_common.QueryWithArgs{ 43 Query: fmt.Sprintf(`INSERT INTO %s.%s ( 44 "name", 45 plugin, 46 plugin_instance, 47 source_type, 48 status, 49 bucket_size, 50 fill_rate, 51 max_concurrency, 52 scope, 53 "where", 54 file_name, 55 start_line_number, 56 end_line_number 57 ) 58 VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13)`, constants.InternalSchema, constants.RateLimiterDefinitionTable), 59 Args: []any{ 60 settings.Name, 61 settings.Plugin, 62 settings.PluginInstance, 63 settings.Source, 64 settings.Status, 65 settings.BucketSize, 66 settings.FillRate, 67 settings.MaxConcurrency, 68 settings.Scope, 69 settings.Where, 70 settings.FileName, 71 settings.StartLineNumber, 72 settings.EndLineNumber, 73 }, 74 } 75 } 76 77 func GetRateLimiterTableGrantSql() db_common.QueryWithArgs { 78 return db_common.QueryWithArgs{ 79 Query: fmt.Sprintf( 80 `GRANT SELECT ON TABLE %s.%s to %s;`, 81 constants.InternalSchema, 82 constants.RateLimiterDefinitionTable, 83 constants.DatabaseUsersRole, 84 ), 85 } 86 }