42 lines
782 B
CUE
42 lines
782 B
CUE
|
package main
|
||
|
|
||
|
import (
|
||
|
"encoding/base64"
|
||
|
"dagger.io/aws/rds"
|
||
|
)
|
||
|
|
||
|
database: {
|
||
|
let slug = name
|
||
|
dbType: "mysql"
|
||
|
|
||
|
db: rds.#CreateDB & {
|
||
|
config: infra.awsConfig
|
||
|
name: slug
|
||
|
dbArn: infra.rdsInstanceArn
|
||
|
"dbType": dbType
|
||
|
secretArn: infra.rdsAdminSecretArn
|
||
|
}
|
||
|
|
||
|
user: rds.#CreateUser & {
|
||
|
config: infra.awsConfig
|
||
|
dbArn: infra.rdsInstanceArn
|
||
|
"dbType": dbType
|
||
|
secretArn: infra.rdsAdminSecretArn
|
||
|
username: slug
|
||
|
// FIXME: make it secure (generate infra side?)
|
||
|
password: base64.Encode(null, "pwd-\(slug)")
|
||
|
grantDatabase: db.out
|
||
|
}
|
||
|
|
||
|
instance: rds.#Instance & {
|
||
|
config: infra.awsConfig
|
||
|
dbArn: infra.rdsInstanceArn
|
||
|
}
|
||
|
|
||
|
hostname: instance.hostname
|
||
|
port: instance.port
|
||
|
dbName: db.out
|
||
|
username: user.out
|
||
|
password: user.password
|
||
|
}
|