Unverified Commit 0d162945 authored by Michelle Nguyen's avatar Michelle Nguyen Committed by Copybara
Browse files

PC-1437 Add database tables for data retention plugin config


Summary:
This diff adds the database tables which will be used to track a plugin's configuration.
`data_retention_plugin_releases` will track the provider-specified configuration options for their plugin. For example, the preset scripts and config values that need to be filled out when enabling the plugin. This will be populated by a job, similar to artifact tracker.
`org_data_retention_plugins` tracks an org's settings for a plugin, for example: their plugin version, what their values for each config setting are.

This does not include a table for the longterm retention scripts that a user has yet. That will follow in a separate diff.

Test Plan: Skaffold deploy, ensure that the migrations run. These tables are currently unused.

Reviewers: vihang, nserrino

Reviewed By: vihang

JIRA Issues: PC-1437
Signed-off-by: default avatarMichelle Nguyen <michellenguyen@pixielabs.ai>

Differential Revision: https://phab.corp.pixielabs.ai/D10855

GitOrigin-RevId: d47f1bdaf1ed30f0511bc8fbaf7e5b753ebafcd0
parent 8d72f251
release/vizier/v0.11.7 release/vizier/v0.11.6 release/vizier/v0.11.5 release/vizier/v0.11.4 release/vizier/v0.11.3 release/vizier/v0.11.2 release/vizier/v0.11.1 release/vizier/v0.11.0 release/vizier/v0.10.22 release/vizier/v0.10.21 release/vizier/v0.10.20 release/vizier/v0.10.19 release/vizier/v0.10.18 release/vizier/v0.10.17 release/vizier/v0.10.16 release/vizier/v0.10.15 release/vizier/v0.10.14 release/vizier/v0.10.13 release/operator/v0.0.30 release/operator/v0.0.29 release/operator/v0.0.28 release/operator/v0.0.27 release/operator/v0.0.26 release/operator/v0.0.25 release/operator/v0.0.24 release/operator/v0.0.23 release/operator/v0.0.22 release/operator/v0.0.21 release/operator/v0.0.20 release/cloud/prod/1658198111 release/cloud/prod/1658185818 release/cloud/prod/1658183222 release/cloud/prod/1657740688 release/cloud/prod/1657049209 release/cloud/prod/1656629056 release/cloud/prod/1656527373 release/cloud/prod/1656452950 release/cloud/prod/1655997138 release/cloud/prod/1655226092 release/cloud/prod/1654806360 release/cloud/prod/1654144074 release/cloud/prod/1654133791 release/cloud/prod/1652313416 release/cloud/prod/1652304483 release/cloud/prod/1652214656 release/cloud/prod/1651864223 release/cloud/prod/1651799821 release/cloud/prod/1651704659 release/cloud/prod/1651616922 release/cloud/prod/1650645384 release/cloud/prod/1650480744 release/cloud/prod/1650306041 release/cloud/prod/1650056868 release/cloud/prod/1650039340 release/cloud/prod/1649978499 release/cloud/prod/1649797942 release/cloud/prod/1649787581 release/cloud/prod/1649269698 release/cloud/prod/1649107437 release/cloud/prod/1648586238 release/cloud/prod/1647992139 release/cloud/prod/1647379907 release/cloud/prod/1646182041 release/cli/v0.7.16 release/cli/v0.7.15 release/cli/v0.7.14 release/cli/v0.7.13 release/cli/v0.7.12 release/cli/v0.7.11 release/cli/v0.7.10 release/cli/v0.7.9 release/cli/v0.7.8 release/cli/v0.7.7 release/cli/v0.7.6 release/cli/v0.7.5
No related merge requests found
Showing with 133 additions and 4 deletions
+133 -4
DROP TABLE IF EXISTS data_retention_plugin_releases;
CREATE TABLE data_retention_plugin_releases (
-- The unique identifier for the plugin.
plugin_id varchar(1024) NOT NULL,
-- The semVer version of the plugin release that these configurations belong to.
version varchar(1024) NOT NULL,
-- The set of configurations that the user needs to specify in order to configure the data retention plugin.
configurations json NOT NULL DEFAULT '{}',
-- A list of preset scripts, prewritten by the provider which the user can enable. Each JSON is expected to contain name, script, and default frequency.
preset_scripts json[],
-- A URL which points to a page providing documentation about the plugin provider's data retention plugin.
documentation_url varchar(65536),
-- The default export endpoint which data should be sent to.
default_export_url varchar(65536),
-- Whether users can specify a custom URL to which to send their scripts.
allow_custom_export_url boolean,
PRIMARY KEY (plugin_id, version),
UNIQUE (plugin_id, version),
FOREIGN KEY (plugin_id, version) REFERENCES plugin_releases(id, version)
);
DROP TABLE IF EXISTS org_data_retention_plugins;
CREATE TABLE org_data_retention_plugins (
-- org_id is the org who has this plugin enabled/disabled.
org_id UUID NOT NULL,
-- plugin_id is the ID of the plugin which the org has enabled/disabled.
plugin_id varchar(1024) NOT NULL,
-- version specifies which plugin release the org has enabled.
version varchar(1024) NOT NULL,
-- Configurations contains the user-configured values for the plugin. This should follow the configurations specified in data_retention_plugin_releases.
-- The value is an encrypted JSON.
configurations bytea,
PRIMARY KEY (org_id, plugin_id),
UNIQUE (org_id, plugin_id),
FOREIGN KEY (plugin_id, version) REFERENCES plugin_releases(id, version)
);
......@@ -2,6 +2,10 @@
// sources:
// 000001_create_plugin_releases_table.down.sql
// 000001_create_plugin_releases_table.up.sql
// 000002_create_retention_releases_table.down.sql
// 000002_create_retention_releases_table.up.sql
// 000003_create_org_retention_table.down.sql
// 000003_create_org_retention_table.up.sql
package schema
import (
......@@ -118,6 +122,86 @@ func _000001_create_plugin_releases_tableUpSql() (*asset, error) {
return a, nil
}
var __000002_create_retention_releases_tableDownSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x72\x09\xf2\x0f\x50\x08\x71\x74\xf2\x71\x55\xf0\x74\x53\x70\x8d\xf0\x0c\x0e\x09\x56\x48\x49\x2c\x49\x8c\x2f\x4a\x2d\x49\xcd\x2b\xc9\xcc\xcf\x8b\x2f\xc8\x29\x4d\xcf\xcc\x8b\x2f\x4a\xcd\x49\x4d\x2c\x4e\x2d\xb6\xe6\x02\x04\x00\x00\xff\xff\xd6\x40\x79\xfe\x35\x00\x00\x00")
func _000002_create_retention_releases_tableDownSqlBytes() ([]byte, error) {
return bindataRead(
__000002_create_retention_releases_tableDownSql,
"000002_create_retention_releases_table.down.sql",
)
}
func _000002_create_retention_releases_tableDownSql() (*asset, error) {
bytes, err := _000002_create_retention_releases_tableDownSqlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "000002_create_retention_releases_table.down.sql", size: 53, mode: os.FileMode(436), modTime: time.Unix(1, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var __000002_create_retention_releases_tableUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x93\x5f\x6f\xd3\x30\x14\xc5\xdf\xf3\x29\xce\xdb\x3a\x29\x9b\xf8\xb7\xbd\xf0\x54\x86\x87\x06\x25\x85\xac\x05\x4d\x08\x45\x4e\x7c\xd3\x18\xa5\x76\xe6\x3f\xed\x2a\xc4\x77\x47\x76\x93\x2e\x54\xaa\xc4\x5b\xeb\xf8\xde\xf3\xbb\xe7\x5c\xdf\xe4\x6c\xba\x60\x58\x4c\xdf\xcd\x18\x04\x77\xbc\x30\xe4\x48\x39\xa9\x55\xd1\xb5\x7e\x25\x55\x61\xa8\x25\x6e\xc9\x62\x92\x00\x17\x17\x58\x34\x04\xaf\xe4\xa3\x27\x48\x11\xae\xd6\x92\x0c\x6a\x6d\xe0\x1a\xc2\xbe\xe8\x32\x41\xff\xab\x90\x02\x1b\x6e\xaa\x86\x9b\xc9\xcb\x17\xaf\xde\x9c\x23\x9b\x2f\x90\x2d\x67\xb3\xf4\xb9\x9d\xa5\xf5\x37\x32\xd8\x90\xb1\x52\x2b\xe8\x7a\xd4\x0a\xbd\x3e\x5c\xc3\x5d\x38\xb7\x84\x4a\xab\x5a\xae\xbc\xe1\x81\xd3\xa2\xa4\x56\xab\x15\x9c\x0e\xb2\x43\x93\xff\x10\x75\x41\xe9\xa8\xd7\xa0\x02\x6f\xc9\x40\x11\x09\x0b\xa7\x61\x3b\xaa\x64\xbd\x83\x54\xd0\x46\x90\x09\x67\x43\x25\xc5\xfb\xc1\x3c\x1c\xcc\x1b\xf9\x70\x24\xf0\xcb\x6a\x75\xc0\xc1\x7b\x76\x3b\x5d\xce\x16\x38\xfb\xfd\xe7\xac\x67\x9b\xa2\x95\x36\xa2\x75\x86\x02\xa4\xad\x8c\xec\x9c\x4d\xc3\xff\xad\x91\xce\x91\x42\xb9\xdb\x5b\x64\xf4\x46\x06\x9c\x6d\x23\xab\xe6\x99\xbb\xe2\x0a\xa4\x78\xd9\xd2\x25\x18\xaf\x1a\x7c\xbc\x9f\x67\x90\x16\xf4\xd4\x51\xe5\x48\xf4\xfc\x8e\x4b\x05\xc5\xd7\x94\xf6\x2a\x29\xb8\x12\x10\x54\x73\xdf\x3a\xd4\x86\x1e\x3d\xa9\x6a\x17\xf3\x8c\x34\x45\x4f\x13\xe7\xf8\xf1\xf3\xc0\xbc\xcc\x67\x3d\x44\xa7\xa5\x72\xd1\x34\x8e\x8e\xaf\x06\x48\xa9\x56\x10\xba\xf2\x6b\x52\x2e\x5a\x01\x5e\x6a\xef\xc6\x49\x0f\xd3\x9c\xd9\xd3\x6e\xfe\xd3\xa2\xf0\xa6\x3d\x04\x7d\x7d\x75\xf5\xfa\xfa\x7c\x14\xf0\x30\x05\x3d\x75\xda\x38\x90\x12\x11\xad\xc7\x8c\x0a\xb6\xd1\xbe\x15\x28\xc3\x36\x28\xd7\x6f\x50\x5f\x57\xec\xeb\x4e\x6b\x7c\x6f\xc8\x35\x64\xa2\xe3\x36\x5a\x3e\x6c\x09\x47\xe5\xad\xd3\xeb\xe8\x8a\xd3\x43\x3a\x3a\xa8\x88\x30\xb1\x34\x43\xaa\x41\x90\xb7\xad\xde\x16\xfb\x92\xb1\x6a\xa9\x75\x4b\x5c\xa5\x49\x02\x7c\xc9\xef\x3e\x4f\xf3\x07\x7c\x62\x0f\x98\x1c\x9e\x56\x3a\xac\x7b\x64\x5a\x66\x77\x5f\x97\xec\xe4\xe7\xdb\x79\xce\xee\x3e\x64\x27\x5b\x20\x67\xb7\x2c\x67\xd9\x0d\xbb\xc7\xd1\xdb\x9f\x8c\xef\x25\xe7\x6f\x93\xbf\x01\x00\x00\xff\xff\x5e\x64\xbc\x09\x38\x04\x00\x00")
func _000002_create_retention_releases_tableUpSqlBytes() ([]byte, error) {
return bindataRead(
__000002_create_retention_releases_tableUpSql,
"000002_create_retention_releases_table.up.sql",
)
}
func _000002_create_retention_releases_tableUpSql() (*asset, error) {
bytes, err := _000002_create_retention_releases_tableUpSqlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "000002_create_retention_releases_table.up.sql", size: 1080, mode: os.FileMode(436), modTime: time.Unix(1, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var __000003_create_org_retention_tableDownSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x72\x09\xf2\x0f\x50\x08\x71\x74\xf2\x71\x55\xf0\x74\x53\x70\x8d\xf0\x0c\x0e\x09\x56\xc8\x2f\x4a\x8f\x4f\x49\x2c\x49\x8c\x2f\x4a\x2d\x49\xcd\x2b\xc9\xcc\xcf\x8b\x2f\xc8\x29\x4d\xcf\xcc\x2b\xb6\xe6\x02\x04\x00\x00\xff\xff\x00\xb0\xba\xc2\x31\x00\x00\x00")
func _000003_create_org_retention_tableDownSqlBytes() ([]byte, error) {
return bindataRead(
__000003_create_org_retention_tableDownSql,
"000003_create_org_retention_table.down.sql",
)
}
func _000003_create_org_retention_tableDownSql() (*asset, error) {
bytes, err := _000003_create_org_retention_tableDownSqlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "000003_create_org_retention_table.down.sql", size: 49, mode: os.FileMode(436), modTime: time.Unix(1, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var __000003_create_org_retention_tableUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x91\xcd\x6e\xea\x30\x10\x85\xf7\x79\x8a\xb3\x4c\xa4\xc0\xfd\xd1\xdd\xdd\x15\x05\x53\xa5\xa5\xa1\x0d\xc9\x82\x55\x64\x92\x09\xb6\x14\xd9\xc8\x4e\x40\xbc\x7d\xe5\xfc\x00\x45\xb4\x3b\x5b\x73\xe6\x7c\x33\x67\xe6\x09\x9b\xa5\x0c\xe9\xec\x69\xc5\xa0\xcd\x3e\x2f\x79\xc3\x73\x43\x0d\xa9\x46\x6a\x95\x1f\xea\x76\x2f\x95\x85\xef\x01\x93\x49\xa7\x90\x25\xa4\x45\x23\xc8\xfd\x70\x12\x1a\x82\xbb\xbf\xb4\xe8\xd5\x20\xc5\x77\x35\x95\xbf\x4a\x69\xbb\xc7\xd4\xc3\xd8\x99\x65\xd1\x02\xf1\x3a\x45\x9c\xad\x56\x61\x6f\xda\x77\xdd\xf8\x46\x0b\xe8\xaa\x7b\x0d\x86\x27\x21\x0b\x71\x41\x3a\xdc\x23\xc4\xd5\xe7\xc8\x4d\x21\xb8\xf1\xff\xfc\xfe\xfb\x2f\xb8\xc7\x1d\xc9\x58\xa9\x15\xec\x81\x0a\x59\x49\xb2\x83\xfd\xc0\x32\x54\x13\xb7\xf4\x88\xe6\x20\x63\xf7\x8f\x88\xb9\x56\x95\xdc\xb7\x86\xbb\x0c\x2d\x0a\xad\x1a\xee\x52\x74\x9e\xad\x25\x33\x29\x06\x01\xb9\x59\xeb\x96\x2c\x2a\x6d\x6e\x36\x9e\x22\x75\x79\x5a\xa1\xdb\xba\x44\xa5\xeb\x5a\x9f\xba\x72\xf1\xd5\x79\xdc\xa1\x84\x54\x78\x78\xba\x7c\xd8\xc7\x4e\xfb\xd1\x52\x41\x3d\xd2\x85\xcd\xdd\xad\x0a\x73\x3e\x34\x54\xe2\x65\xb3\x8e\x9d\xe8\x0e\xb1\x3b\x37\xc4\x43\xcf\x03\xde\x93\xe8\x6d\x96\x6c\xf1\xca\xb6\xf0\xfb\x7b\x86\xd7\xd0\x03\xb7\x7b\x16\x47\x1f\x19\xfb\xae\xba\x5c\x27\x2c\x7a\x8e\x7b\x83\x4b\x29\x1c\x33\x0d\x90\xb0\x25\x4b\x58\x3c\x67\x1b\xdc\x4d\xef\xdf\xea\xbc\xe0\xbf\xf7\x19\x00\x00\xff\xff\x07\xa0\x1b\xd3\xb9\x02\x00\x00")
func _000003_create_org_retention_tableUpSqlBytes() ([]byte, error) {
return bindataRead(
__000003_create_org_retention_tableUpSql,
"000003_create_org_retention_table.up.sql",
)
}
func _000003_create_org_retention_tableUpSql() (*asset, error) {
bytes, err := _000003_create_org_retention_tableUpSqlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "000003_create_org_retention_table.up.sql", size: 697, mode: os.FileMode(436), modTime: time.Unix(1, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
......@@ -170,8 +254,12 @@ func AssetNames() []string {
// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
"000001_create_plugin_releases_table.down.sql": _000001_create_plugin_releases_tableDownSql,
"000001_create_plugin_releases_table.up.sql": _000001_create_plugin_releases_tableUpSql,
"000001_create_plugin_releases_table.down.sql": _000001_create_plugin_releases_tableDownSql,
"000001_create_plugin_releases_table.up.sql": _000001_create_plugin_releases_tableUpSql,
"000002_create_retention_releases_table.down.sql": _000002_create_retention_releases_tableDownSql,
"000002_create_retention_releases_table.up.sql": _000002_create_retention_releases_tableUpSql,
"000003_create_org_retention_table.down.sql": _000003_create_org_retention_tableDownSql,
"000003_create_org_retention_table.up.sql": _000003_create_org_retention_tableUpSql,
}
// AssetDir returns the file names below a certain
......@@ -215,8 +303,12 @@ type bintree struct {
}
var _bintree = &bintree{nil, map[string]*bintree{
"000001_create_plugin_releases_table.down.sql": &bintree{_000001_create_plugin_releases_tableDownSql, map[string]*bintree{}},
"000001_create_plugin_releases_table.up.sql": &bintree{_000001_create_plugin_releases_tableUpSql, map[string]*bintree{}},
"000001_create_plugin_releases_table.down.sql": &bintree{_000001_create_plugin_releases_tableDownSql, map[string]*bintree{}},
"000001_create_plugin_releases_table.up.sql": &bintree{_000001_create_plugin_releases_tableUpSql, map[string]*bintree{}},
"000002_create_retention_releases_table.down.sql": &bintree{_000002_create_retention_releases_tableDownSql, map[string]*bintree{}},
"000002_create_retention_releases_table.up.sql": &bintree{_000002_create_retention_releases_tableUpSql, map[string]*bintree{}},
"000003_create_org_retention_table.down.sql": &bintree{_000003_create_org_retention_tableDownSql, map[string]*bintree{}},
"000003_create_org_retention_table.up.sql": &bintree{_000003_create_org_retention_tableUpSql, map[string]*bintree{}},
}}
// RestoreAsset restores an asset under the given directory
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment