+ secret & metadata migration
This commit is contained in:
parent
2c355ef75d
commit
0a0091c44f
3 changed files with 30 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -9,3 +9,4 @@ target/
|
|||
go_client/openapi.json
|
||||
crates/storage-sled/sled_db
|
||||
test.db
|
||||
src/storage/database.db
|
||||
|
|
|
|||
28
migrations/20240501152243_KvSecret.sql
Normal file
28
migrations/20240501152243_KvSecret.sql
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
-- Add migration script here
|
||||
|
||||
CREATE TABLE metadata (
|
||||
secret_path TEXT PRIMARY KEY NOT NULL,
|
||||
|
||||
cas_required INTEGER NOT NULL, -- no bool datatype in sqlite
|
||||
created_time TIMESTAMP NOT NULL,
|
||||
delete_version_after TEXT, -- Maybe NOT NULL
|
||||
max_versions INTEGER NOT NULL,
|
||||
-- current_version INTEGER NOT NULL,
|
||||
-- oldest_version INTEGER NOT NULL,
|
||||
updated_time TIMESTAMP NOT NULL,
|
||||
custom_data TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE secret_versions (
|
||||
secret_data TEXT NOT NULL,
|
||||
|
||||
created_time TIMESTAMP NOT NULL,
|
||||
deletion_time TIMESTAMP,
|
||||
|
||||
version_number INTEGER NOT NULL DEFAULT 0,
|
||||
secret_path TEXT NOT NULL,
|
||||
PRIMARY KEY (secret_path, version_number),
|
||||
FOREIGN KEY (secret_path) REFERENCES metadata(secret_path)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_secret_versions_secret_path ON secret_versions (secret_path);
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
use chrono::{DateTime, Utc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{collections::HashMap, hash::Hash, vec};
|
||||
use std::{collections::HashMap, vec};
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct KvSecret {
|
||||
|
|
|
|||
Loading…
Reference in a new issue