mirror of
https://github.com/absmach/magistrala.git
synced 2026-06-23 04:10:28 +00:00
243ccade0b
Signed-off-by: Felix Gateru <felix.gateru@gmail.com> Signed-off-by: Arvindh <arvindh91@gmail.com> Signed-off-by: Dusan Borovcanin <borovcanindusan1@gmail.com> Co-authored-by: Arvindh <30824765+arvindh123@users.noreply.github.com> Co-authored-by: Felix Gateru <felix.gateru@gmail.com>
71 lines
2.4 KiB
Go
71 lines
2.4 KiB
Go
// Copyright (c) Abstract Machines
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package postgres
|
|
|
|
import (
|
|
_ "github.com/jackc/pgx/v5/stdlib" // required for SQL access
|
|
migrate "github.com/rubenv/sql-migrate"
|
|
)
|
|
|
|
// Migration of Auth service.
|
|
func Migration() *migrate.MemoryMigrationSource {
|
|
return &migrate.MemoryMigrationSource{
|
|
Migrations: []*migrate.Migration{
|
|
{
|
|
Id: "auth_1",
|
|
Up: []string{
|
|
`CREATE TABLE IF NOT EXISTS keys (
|
|
id VARCHAR(254) NOT NULL,
|
|
type SMALLINT,
|
|
subject VARCHAR(254) NOT NULL,
|
|
issuer_id VARCHAR(254) NOT NULL,
|
|
issued_at TIMESTAMP NOT NULL,
|
|
expires_at TIMESTAMP,
|
|
PRIMARY KEY (id, issuer_id)
|
|
)`,
|
|
|
|
`CREATE TABLE IF NOT EXISTS domains (
|
|
id VARCHAR(36) PRIMARY KEY,
|
|
name VARCHAR(254),
|
|
tags TEXT[],
|
|
metadata JSONB,
|
|
alias VARCHAR(254) NULL UNIQUE,
|
|
created_at TIMESTAMP,
|
|
updated_at TIMESTAMP,
|
|
updated_by VARCHAR(254),
|
|
created_by VARCHAR(254),
|
|
status SMALLINT NOT NULL DEFAULT 0 CHECK (status >= 0)
|
|
);`,
|
|
`CREATE TABLE IF NOT EXISTS policies (
|
|
subject_type VARCHAR(254) NOT NULL,
|
|
subject_id VARCHAR(254) NOT NULL,
|
|
subject_relation VARCHAR(254) NOT NULL,
|
|
relation VARCHAR(254) NOT NULL,
|
|
object_type VARCHAR(254) NOT NULL,
|
|
object_id VARCHAR(254) NOT NULL,
|
|
CONSTRAINT unique_policy_constraint UNIQUE (subject_type, subject_id, subject_relation, relation, object_type, object_id)
|
|
);`,
|
|
},
|
|
Down: []string{
|
|
`DROP TABLE IF EXISTS keys`,
|
|
},
|
|
},
|
|
{
|
|
Id: "auth_2",
|
|
Up: []string{
|
|
`ALTER TABLE domains ALTER COLUMN alias SET NOT NULL`,
|
|
},
|
|
},
|
|
{
|
|
Id: "auth_3",
|
|
Up: []string{
|
|
`DROP TABLE IF EXISTS policies;
|
|
DROP TABLE IF EXISTS domains;
|
|
`,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|