@paakd/config 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/index.js +20 -0
- package/gen/go/addresses/Address.pkl.go +10 -0
- package/gen/go/addresses/Addresses.pkl.go +43 -0
- package/gen/go/addresses/BillingAddress.pkl.go +8 -0
- package/gen/go/addresses/Field.pkl.go +43 -0
- package/gen/go/addresses/addressgroup/AddressGroup.pkl.go +43 -0
- package/gen/go/addresses/fieldtype/FieldType.pkl.go +61 -0
- package/gen/go/addresses/init.pkl.go +11 -0
- package/gen/go/cloudflare/Cloudflare.pkl.go +37 -0
- package/gen/go/cloudflare/R2Bucket.pkl.go +22 -0
- package/gen/go/cloudflare/TerraformBackend.pkl.go +16 -0
- package/gen/go/cloudflare/Turnstile.pkl.go +8 -0
- package/gen/go/cloudflare/init.pkl.go +11 -0
- package/gen/go/db/DB.pkl.go +43 -0
- package/gen/go/db/DBConnection.pkl.go +12 -0
- package/gen/go/db/init.pkl.go +9 -0
- package/gen/go/dune/Dune.pkl.go +47 -0
- package/gen/go/dune/init.pkl.go +8 -0
- package/gen/go/enterprise/Enterprise.pkl.go +118 -0
- package/gen/go/enterprise/init.pkl.go +8 -0
- package/gen/go/enterprise/taxonomyversion/TaxonomyVersion.pkl.go +37 -0
- package/gen/go/redis/Redis.pkl.go +41 -0
- package/gen/go/redis/init.pkl.go +8 -0
- package/gen/go/shared/Build.pkl.go +46 -0
- package/gen/go/shared/Shared.pkl.go +35 -0
- package/gen/go/shared/init.pkl.go +9 -0
- package/gen/go/worker/Worker.pkl.go +55 -0
- package/gen/go/worker/WorkerConnect.pkl.go +6 -0
- package/gen/go/worker/init.pkl.go +9 -0
- package/gen/js/development/basket_eco_packages_config_addresses.pkl.ts +106 -0
- package/gen/js/development/basket_eco_packages_config_checkout.pkl.ts +73 -0
- package/gen/js/development/basket_eco_packages_config_cloudflare.pkl.ts +69 -0
- package/gen/js/development/basket_eco_packages_config_cms.pkl.ts +119 -0
- package/gen/js/development/basket_eco_packages_config_db.pkl.ts +47 -0
- package/gen/js/development/basket_eco_packages_config_dune.pkl.ts +36 -0
- package/gen/js/development/basket_eco_packages_config_enterprise.pkl.ts +290 -0
- package/gen/js/development/basket_eco_packages_config_feature.pkl.ts +58 -0
- package/gen/js/development/basket_eco_packages_config_redis.pkl.ts +30 -0
- package/gen/js/development/basket_eco_packages_config_renderer_development_cms.pkl.ts +28 -0
- package/gen/js/development/basket_eco_packages_config_shared.pkl.ts +73 -0
- package/gen/js/development/basket_eco_packages_config_worker.pkl.ts +53 -0
- package/gen/js/production/basket_eco_packages_config_addresses.pkl.ts +106 -0
- package/gen/js/production/basket_eco_packages_config_checkout.pkl.ts +73 -0
- package/gen/js/production/basket_eco_packages_config_cloudflare.pkl.ts +69 -0
- package/gen/js/production/basket_eco_packages_config_cms.pkl.ts +119 -0
- package/gen/js/production/basket_eco_packages_config_db.pkl.ts +47 -0
- package/gen/js/production/basket_eco_packages_config_dune.pkl.ts +36 -0
- package/gen/js/production/basket_eco_packages_config_enterprise.pkl.ts +290 -0
- package/gen/js/production/basket_eco_packages_config_feature.pkl.ts +58 -0
- package/gen/js/production/basket_eco_packages_config_kiosk_host.pkl.ts +72 -0
- package/gen/js/production/basket_eco_packages_config_redis.pkl.ts +30 -0
- package/gen/js/production/basket_eco_packages_config_renderer_production_cms.pkl.ts +28 -0
- package/gen/js/production/basket_eco_packages_config_renderer_production_dune_config.pkl.ts +29 -0
- package/gen/js/production/basket_eco_packages_config_renderer_production_workflow_config.pkl.ts +29 -0
- package/gen/js/production/basket_eco_packages_config_renderer_staging_dune_config.pkl.ts +29 -0
- package/gen/js/production/basket_eco_packages_config_shared.pkl.ts +73 -0
- package/gen/js/production/basket_eco_packages_config_worker.pkl.ts +49 -0
- package/gen/js/staging/basket_eco_packages_config_addresses.pkl.ts +106 -0
- package/gen/js/staging/basket_eco_packages_config_checkout.pkl.ts +77 -0
- package/gen/js/staging/basket_eco_packages_config_cloudflare.pkl.ts +74 -0
- package/gen/js/staging/basket_eco_packages_config_cms.pkl.ts +119 -0
- package/gen/js/staging/basket_eco_packages_config_db.pkl.ts +47 -0
- package/gen/js/staging/basket_eco_packages_config_dune.pkl.ts +40 -0
- package/gen/js/staging/basket_eco_packages_config_enterprise.pkl.ts +290 -0
- package/gen/js/staging/basket_eco_packages_config_feature.pkl.ts +58 -0
- package/gen/js/staging/basket_eco_packages_config_redis.pkl.ts +30 -0
- package/gen/js/staging/basket_eco_packages_config_renderer_staging_cms.pkl.ts +28 -0
- package/gen/js/staging/basket_eco_packages_config_renderer_staging_dune_config.pkl.ts +29 -0
- package/gen/js/staging/basket_eco_packages_config_renderer_staging_workflow_config.pkl.ts +29 -0
- package/gen/js/staging/basket_eco_packages_config_shared.pkl.ts +69 -0
- package/gen/js/staging/basket_eco_packages_config_worker.pkl.ts +53 -0
- package/package.json +66 -0
- package/src/addresses.ts +90 -0
- package/src/authorization/policy.conf +15 -0
- package/src/authorization/policy.csv +26 -0
- package/src/chk.spec.ts +61 -0
- package/src/chk.ts +88 -0
- package/src/cms.test.ts +52 -0
- package/src/cms.ts +65 -0
- package/src/index.ts +4 -0
- package/src/pkl/PklProject +21 -0
- package/src/pkl/development/Addresses.pkl +2114 -0
- package/src/pkl/development/CMS.pkl +37 -0
- package/src/pkl/development/Checkout.pkl +32 -0
- package/src/pkl/development/Cloudflare.pkl +20 -0
- package/src/pkl/development/Db.pkl +14 -0
- package/src/pkl/development/Dune.pkl +12 -0
- package/src/pkl/development/Enterprise.pkl +158 -0
- package/src/pkl/development/Feature.pkl +4 -0
- package/src/pkl/development/Redis.pkl +6 -0
- package/src/pkl/development/Shared.pkl +16 -0
- package/src/pkl/development/Worker.pkl +43 -0
- package/src/pkl/development/renderer/CMS.pkl +59 -0
- package/src/pkl/production/Addresses.pkl +2114 -0
- package/src/pkl/production/CMS.pkl +34 -0
- package/src/pkl/production/Checkout.pkl +32 -0
- package/src/pkl/production/Cloudflare.pkl +20 -0
- package/src/pkl/production/Db.pkl +14 -0
- package/src/pkl/production/Dune.pkl +12 -0
- package/src/pkl/production/Enterprise.pkl +158 -0
- package/src/pkl/production/Feature.pkl +8 -0
- package/src/pkl/production/KioskHost.pkl +5 -0
- package/src/pkl/production/Redis.pkl +6 -0
- package/src/pkl/production/Shared.pkl +15 -0
- package/src/pkl/production/Worker.pkl +43 -0
- package/src/pkl/production/renderer/CMS.pkl +59 -0
- package/src/pkl/production/renderer/Dune.pkl +52 -0
- package/src/pkl/production/renderer/Feature.pkl +51 -0
- package/src/pkl/production/renderer/Workflow.pkl +51 -0
- package/src/pkl/staging/Addresses.pkl +2114 -0
- package/src/pkl/staging/CMS.pkl +35 -0
- package/src/pkl/staging/Checkout.pkl +32 -0
- package/src/pkl/staging/Cloudflare.pkl +20 -0
- package/src/pkl/staging/Db.pkl +14 -0
- package/src/pkl/staging/Dune.pkl +12 -0
- package/src/pkl/staging/Enterprise.pkl +158 -0
- package/src/pkl/staging/Feature.pkl +8 -0
- package/src/pkl/staging/Redis.pkl +6 -0
- package/src/pkl/staging/Shared.pkl +16 -0
- package/src/pkl/staging/Worker.pkl +43 -0
- package/src/pkl/staging/renderer/CMS.pkl +59 -0
- package/src/pkl/staging/renderer/Dune.pkl +52 -0
- package/src/pkl/staging/renderer/Feature.pkl +51 -0
- package/src/pkl/staging/renderer/Workflow.pkl +51 -0
- package/src/pkl/tmpl/AddressesTmpl.pkl +44 -0
- package/src/pkl/tmpl/CMSTmpl.pkl +64 -0
- package/src/pkl/tmpl/CheckoutTmpl.pkl +34 -0
- package/src/pkl/tmpl/CloudflareTmpl.pkl +33 -0
- package/src/pkl/tmpl/DbTmpl.pkl +18 -0
- package/src/pkl/tmpl/DuneTmpl.pkl +124 -0
- package/src/pkl/tmpl/EnterpriseTmpl.pkl +105 -0
- package/src/pkl/tmpl/FeatureTmpl.pkl +90 -0
- package/src/pkl/tmpl/KioskHostTmpl.pkl +194 -0
- package/src/pkl/tmpl/RedisTmpl.pkl +9 -0
- package/src/pkl/tmpl/SharedTmpl.pkl +40 -0
- package/src/pkl/tmpl/WorkerTmpl.pkl +27 -0
- package/src/pkl-reader/main.go +167 -0
- package/src/shared.ts +65 -0
- package/src/vault.spec.ts +62 -0
- package/src/vault.ts +68 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@go.Package { name = "paakd.com/packages/config/gen/go/cms" }
|
|
2
|
+
module paakd.com.packages.config.CMS
|
|
3
|
+
|
|
4
|
+
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.12.1#/go.pkl"
|
|
5
|
+
import "./DbTmpl.pkl"
|
|
6
|
+
import "./RedisTmpl.pkl"
|
|
7
|
+
|
|
8
|
+
db: DbTmpl
|
|
9
|
+
redis: RedisTmpl
|
|
10
|
+
tenantAssetURL:String
|
|
11
|
+
nodeEnv: String
|
|
12
|
+
appKeys: List<String>
|
|
13
|
+
apiTokenSalt: String
|
|
14
|
+
adminJwtSecret: String
|
|
15
|
+
jwtSecret: String
|
|
16
|
+
JWT_SECRET: String = jwtSecret
|
|
17
|
+
transferTokenSalt: String
|
|
18
|
+
strapiAdminBackendUrl: String = "/cms-admin-api"
|
|
19
|
+
adminStrapiUrl: String = "/cms-admin"
|
|
20
|
+
STRAPI_ADMIN_BACKEND_URL = strapiAdminBackendUrl
|
|
21
|
+
ADMIN_STRAPI_URL = adminStrapiUrl
|
|
22
|
+
cfAccountEndpoint: String
|
|
23
|
+
cfApiKey: String
|
|
24
|
+
cfApiSecret: String
|
|
25
|
+
cfTsSecretKey: String
|
|
26
|
+
cfBucketRegion: String
|
|
27
|
+
host: String
|
|
28
|
+
selfHost: String = "0.0.0.0"
|
|
29
|
+
port:UInt16 = 1337
|
|
30
|
+
selfUrl: String = "http://localhost:\(port)"
|
|
31
|
+
cmsURL: String
|
|
32
|
+
tenantBucketName: String
|
|
33
|
+
shopId: String
|
|
34
|
+
restateHost: String
|
|
35
|
+
restatePort: UInt16
|
|
36
|
+
|
|
37
|
+
output {
|
|
38
|
+
renderer {
|
|
39
|
+
converters {
|
|
40
|
+
[Mapping] = (it) -> new Mapping {
|
|
41
|
+
for (k, v in it) {
|
|
42
|
+
[k.toString()] = v
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
[Duration] = (it) ->
|
|
46
|
+
let (days = it.toUnit("d").value.toInt())
|
|
47
|
+
let (hours = it.toUnit("h").value.toInt() % 24)
|
|
48
|
+
let (minutes = it.toUnit("min").value.toInt() % 60)
|
|
49
|
+
let (seconds = it.toUnit("s").value % 60)
|
|
50
|
+
"P0Y0M" + new Listing {
|
|
51
|
+
days
|
|
52
|
+
"D"
|
|
53
|
+
hours
|
|
54
|
+
"H"
|
|
55
|
+
minutes
|
|
56
|
+
"M"
|
|
57
|
+
seconds
|
|
58
|
+
"S"
|
|
59
|
+
}.join("")
|
|
60
|
+
[List] = (it) -> it.join(",")
|
|
61
|
+
[Listing] = (it) -> it.join(",")
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@go.Package { name = "paakd.com/packages/config/gen/go/checkout" }
|
|
2
|
+
module paakd.com.packages.config.Checkout
|
|
3
|
+
|
|
4
|
+
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.12.1#/go.pkl"
|
|
5
|
+
|
|
6
|
+
import "./SharedTmpl.pkl"
|
|
7
|
+
import "./CloudflareTmpl.pkl"
|
|
8
|
+
import "./RedisTmpl.pkl"
|
|
9
|
+
|
|
10
|
+
hostname: String = "0.0.0.0"
|
|
11
|
+
cmsRemoteURL:String
|
|
12
|
+
enterpriseRemoteURL:String
|
|
13
|
+
|
|
14
|
+
cmsURL: String
|
|
15
|
+
enterpriseURL:String
|
|
16
|
+
|
|
17
|
+
secureCookiePassword: String
|
|
18
|
+
forestAPIKey: String
|
|
19
|
+
saleChannelAccessKey: String
|
|
20
|
+
salesChannelAPISecret: String
|
|
21
|
+
storeAccessKey: String
|
|
22
|
+
storeAPISecret: String
|
|
23
|
+
isProduction: Boolean
|
|
24
|
+
|
|
25
|
+
posthogKey: String = "phc_Wj6AOmw3uujXdeR0tYozrXz3H5OubAhdkIjjEAVIk0b"
|
|
26
|
+
posthogDomain: String = "event.shofluent.xyz"
|
|
27
|
+
posthogHost: String = "https://\(posthogDomain)"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
assetsPath: String = SharedTmpl.build.getAssetsURL()
|
|
31
|
+
assetsDomain: String = SharedTmpl.build.getAssetsDomain()
|
|
32
|
+
turnstileKey: String = CloudflareTmpl.shopTurnstile.siteKey
|
|
33
|
+
turnstileSecret: String = CloudflareTmpl.shopTurnstile.secretKey
|
|
34
|
+
redis: RedisTmpl
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@go.Package { name = "paakd.com/packages/config/gen/go/cloudflare" }
|
|
2
|
+
module paakd.com.packages.config.Cloudflare
|
|
3
|
+
|
|
4
|
+
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.12.1#/go.pkl"
|
|
5
|
+
|
|
6
|
+
class TerraformBackend {
|
|
7
|
+
accessKey: String
|
|
8
|
+
secretKey: String
|
|
9
|
+
bucket: String
|
|
10
|
+
path: String
|
|
11
|
+
region: String
|
|
12
|
+
endpoint: String
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
class R2Bucket {
|
|
16
|
+
endpoint: String
|
|
17
|
+
endpointEU: String
|
|
18
|
+
apiKey: String
|
|
19
|
+
apiSecret: String
|
|
20
|
+
region: String
|
|
21
|
+
token: String
|
|
22
|
+
zoneId: String
|
|
23
|
+
shopBucketName: String
|
|
24
|
+
taxonomyBucketName:String
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
class Turnstile {
|
|
28
|
+
siteKey: String
|
|
29
|
+
secretKey: String
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
shopR2: R2Bucket
|
|
33
|
+
shopTurnstile: Turnstile
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@go.Package { name = "paakd.com/packages/config/gen/go/db" }
|
|
2
|
+
module paakd.com.packages.config.DB
|
|
3
|
+
|
|
4
|
+
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.12.1#/go.pkl"
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class DBConnection {
|
|
8
|
+
host: String
|
|
9
|
+
port: UInt16
|
|
10
|
+
user: String
|
|
11
|
+
password: String
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
conn: DBConnection
|
|
15
|
+
cms: String
|
|
16
|
+
dune: String
|
|
17
|
+
enterprise: String
|
|
18
|
+
feature: String
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
@go.Package { name = "paakd.com/packages/config/gen/go/dune" }
|
|
2
|
+
module paakd.com.packages.config.Dune
|
|
3
|
+
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.12.1#/go.pkl"
|
|
4
|
+
|
|
5
|
+
duneHost: String
|
|
6
|
+
dunePort: UInt16
|
|
7
|
+
serverAPIKey: String
|
|
8
|
+
dataStore: String
|
|
9
|
+
cacheStore: String
|
|
10
|
+
|
|
11
|
+
// https://github.com/gorse-io/gorse/blob/release-0.4/config/config.toml
|
|
12
|
+
configFile {
|
|
13
|
+
server {
|
|
14
|
+
auto_insert_user = true
|
|
15
|
+
auto_insert_item = true
|
|
16
|
+
clock_error = "5s"
|
|
17
|
+
cache_expire = "10s"
|
|
18
|
+
api_key = serverAPIKey
|
|
19
|
+
}
|
|
20
|
+
master {
|
|
21
|
+
host = duneHost
|
|
22
|
+
port = dunePort
|
|
23
|
+
dashboard_user_name = "admin"
|
|
24
|
+
dashboard_password = "admin"
|
|
25
|
+
}
|
|
26
|
+
database {
|
|
27
|
+
data_table_prefix = "dune_"
|
|
28
|
+
table_prefix = "dune_"
|
|
29
|
+
cache_table_prefix = "dune_cache_"
|
|
30
|
+
cache_store = cacheStore
|
|
31
|
+
data_store = dataStore
|
|
32
|
+
}
|
|
33
|
+
recommend {
|
|
34
|
+
cache_size = 100
|
|
35
|
+
cache_expire = "72h"
|
|
36
|
+
data_source {
|
|
37
|
+
positive_feedback_types = List("wish_list", "cart", "positive_review", "repeat_purchases", "referral", "social_media_engagement", "email_signup", "repeat_visit")
|
|
38
|
+
read_feedback_types = List("product_view", "customer_review", "customer_service_chat", "social_media_comment", "support_ticket", "return_request", "survey_response", "user_feedback", "product_question")
|
|
39
|
+
}
|
|
40
|
+
replacement {
|
|
41
|
+
enable_replacement = false
|
|
42
|
+
positive_replacement_decay = 0.8
|
|
43
|
+
read_replacement_decay = 0.6
|
|
44
|
+
}
|
|
45
|
+
online {
|
|
46
|
+
fallback_recommend = List("item_based", "latest")
|
|
47
|
+
num_feedback_fallback_item_based = 10
|
|
48
|
+
}
|
|
49
|
+
collaborative {
|
|
50
|
+
model_fit_period = "60m"
|
|
51
|
+
model_search_period = "360m"
|
|
52
|
+
model_search_epoch = 100
|
|
53
|
+
model_search_trials = 10
|
|
54
|
+
enable_model_size_search = false
|
|
55
|
+
}
|
|
56
|
+
offline {
|
|
57
|
+
check_recommend_period = "1m"
|
|
58
|
+
refresh_recommend_period = "24h"
|
|
59
|
+
enable_latest_recommend = true
|
|
60
|
+
enable_popular_recommend = false
|
|
61
|
+
enable_user_based_recommend = true
|
|
62
|
+
enable_item_based_recommend = false
|
|
63
|
+
enable_collaborative_recommend = true
|
|
64
|
+
enable_click_through_prediction = true
|
|
65
|
+
explore_recommend = Map("popular", 0.1, "latest", 0.2)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
["recommend.replacement"] {
|
|
69
|
+
enable_replacement = false
|
|
70
|
+
positive_replacement_decay = 0.8
|
|
71
|
+
read_replacement_decay = 0.6
|
|
72
|
+
}
|
|
73
|
+
["recommend.online"]{
|
|
74
|
+
fallback_recommend = List("item_based", "latest")
|
|
75
|
+
num_feedback_fallback_item_based = 10
|
|
76
|
+
}
|
|
77
|
+
["recommend.collaborative"] {
|
|
78
|
+
model_fit_period = "60m"
|
|
79
|
+
model_search_period = "360m"
|
|
80
|
+
model_search_epoch = 100
|
|
81
|
+
model_search_trials = 10
|
|
82
|
+
enable_model_size_search = false
|
|
83
|
+
}
|
|
84
|
+
["recommend.offline"] {
|
|
85
|
+
check_recommend_period = "1m"
|
|
86
|
+
refresh_recommend_period = "24h"
|
|
87
|
+
enable_latest_recommend = true
|
|
88
|
+
enable_popular_recommend = false
|
|
89
|
+
enable_user_based_recommend = true
|
|
90
|
+
enable_item_based_recommend = false
|
|
91
|
+
enable_collaborative_recommend = true
|
|
92
|
+
enable_click_through_prediction = true
|
|
93
|
+
explore_recommend = Map("popular", 0.1, "latest", 0.2)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
output {
|
|
98
|
+
renderer {
|
|
99
|
+
converters {
|
|
100
|
+
[Mapping] = (it) -> new Mapping {
|
|
101
|
+
for (k, v in it) {
|
|
102
|
+
[k.toString()] = v
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
[Duration] = (it) ->
|
|
106
|
+
let (days = it.toUnit("d").value.toInt())
|
|
107
|
+
let (hours = it.toUnit("h").value.toInt() % 24)
|
|
108
|
+
let (minutes = it.toUnit("min").value.toInt() % 60)
|
|
109
|
+
let (seconds = it.toUnit("s").value % 60)
|
|
110
|
+
"P0Y0M" + new Listing {
|
|
111
|
+
days
|
|
112
|
+
"D"
|
|
113
|
+
hours
|
|
114
|
+
"H"
|
|
115
|
+
minutes
|
|
116
|
+
"M"
|
|
117
|
+
seconds
|
|
118
|
+
"S"
|
|
119
|
+
}.join("")
|
|
120
|
+
[List] = (it) -> it.join(",")
|
|
121
|
+
[Listing] = (it) -> it.join(",")
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
@go.Package { name = "paakd.com/packages/config/gen/go/enterprise" }
|
|
2
|
+
module paakd.com.packages.config.Enterprise
|
|
3
|
+
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.12.1#/go.pkl"
|
|
4
|
+
import "RedisTmpl.pkl"
|
|
5
|
+
import "DuneTmpl.pkl"
|
|
6
|
+
import "DbTmpl.pkl"
|
|
7
|
+
import "CloudflareTmpl.pkl"
|
|
8
|
+
import "WorkerTmpl.pkl"
|
|
9
|
+
import "SharedTmpl.pkl"
|
|
10
|
+
|
|
11
|
+
typealias TaxonomyVersion = "2025-06-unstable"|"warn"|"info"
|
|
12
|
+
|
|
13
|
+
taxonomyVersion: TaxonomyVersion
|
|
14
|
+
productTaxonomyPath: String
|
|
15
|
+
host:String
|
|
16
|
+
port: UInt16
|
|
17
|
+
defaultRequestTimeout: Duration
|
|
18
|
+
testEmail: String
|
|
19
|
+
jwtExpTime: Duration
|
|
20
|
+
refreshTokenExpTime: Duration
|
|
21
|
+
tenantAssetURL:String
|
|
22
|
+
shopBucketName: String
|
|
23
|
+
bleveStorePath:String
|
|
24
|
+
restateHost: String
|
|
25
|
+
restatePort: UInt16
|
|
26
|
+
workerPort: UInt16
|
|
27
|
+
workerHost: String
|
|
28
|
+
breezeBasicAuthHeader: String
|
|
29
|
+
userJWTSecret: String
|
|
30
|
+
customerJWTSecret: String
|
|
31
|
+
customerJWTSecretExpTime: Duration
|
|
32
|
+
userJWTSecretExpTime: Duration
|
|
33
|
+
|
|
34
|
+
userJwtPrivateKey: String
|
|
35
|
+
userJwtPublicKey: String
|
|
36
|
+
customerJwtPrivateKey: String
|
|
37
|
+
customerJwtPublicKey: String
|
|
38
|
+
|
|
39
|
+
isTest:Boolean
|
|
40
|
+
isProduction:Boolean
|
|
41
|
+
isStaging:Boolean
|
|
42
|
+
isLocal:Boolean
|
|
43
|
+
isDocker:Boolean
|
|
44
|
+
productTaxonomyIndexBucket: String
|
|
45
|
+
resendAPIKey: String = "re_iUq1MTWd_Hd6XbZCb34h1XEBzAmQkdjWJ"
|
|
46
|
+
|
|
47
|
+
redis: RedisTmpl
|
|
48
|
+
dune: DuneTmpl
|
|
49
|
+
worker: WorkerTmpl
|
|
50
|
+
db: DbTmpl
|
|
51
|
+
cloudflare: CloudflareTmpl
|
|
52
|
+
shared: SharedTmpl
|
|
53
|
+
|
|
54
|
+
// https://docs.restate.dev/references/server_config
|
|
55
|
+
workflowConfig {
|
|
56
|
+
admin {
|
|
57
|
+
["bind-address"] = "0.0.0.0:9070"
|
|
58
|
+
}
|
|
59
|
+
ingress {
|
|
60
|
+
["bind-address"] = "0.0.0.0:8080"
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
worker {
|
|
64
|
+
snapshots {
|
|
65
|
+
destination = "s3://\(cloudflare.shopR2.shopBucketName)/workflow"
|
|
66
|
+
snapshotIntervalNumRecords = 1000
|
|
67
|
+
|
|
68
|
+
["aws-region"] = "us-east-1"
|
|
69
|
+
["aws-access-key-id"] = cloudflare.shopR2.apiKey
|
|
70
|
+
["aws-secret-access-key"] = cloudflare.shopR2.apiSecret
|
|
71
|
+
["aws-endpoint-url"] = cloudflare.shopR2.endpointEU
|
|
72
|
+
["aws-allow-http"] = true
|
|
73
|
+
["aws-ec2-metadata-disabled"] = true
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
output {
|
|
79
|
+
renderer {
|
|
80
|
+
converters {
|
|
81
|
+
[Mapping] = (it) -> new Mapping {
|
|
82
|
+
for (k, v in it) {
|
|
83
|
+
[k.toString()] = v
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
[Duration] = (it) ->
|
|
87
|
+
let (days = it.toUnit("d").value.toInt())
|
|
88
|
+
let (hours = it.toUnit("h").value.toInt() % 24)
|
|
89
|
+
let (minutes = it.toUnit("min").value.toInt() % 60)
|
|
90
|
+
let (seconds = it.toUnit("s").value % 60)
|
|
91
|
+
"P0Y0M" + new Listing {
|
|
92
|
+
days
|
|
93
|
+
"D"
|
|
94
|
+
hours
|
|
95
|
+
"H"
|
|
96
|
+
minutes
|
|
97
|
+
"M"
|
|
98
|
+
seconds
|
|
99
|
+
"S"
|
|
100
|
+
}.join("")
|
|
101
|
+
[List] = (it) -> it.join(",")
|
|
102
|
+
[Listing] = (it) -> it.join(",")
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
@go.Package { name = "paakd.com/packages/config/gen/go/feature" }
|
|
2
|
+
module paakd.com.packages.config.Feature
|
|
3
|
+
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.12.1#/go.pkl"
|
|
4
|
+
import "DbTmpl.pkl"
|
|
5
|
+
import "SharedTmpl.pkl"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
db: DbTmpl
|
|
9
|
+
shopId: String
|
|
10
|
+
dbName: String
|
|
11
|
+
|
|
12
|
+
//https://docs.growthbook.io/self-host/config
|
|
13
|
+
|
|
14
|
+
configFile {
|
|
15
|
+
|
|
16
|
+
datasources {
|
|
17
|
+
warehouse {
|
|
18
|
+
type = "postgres"
|
|
19
|
+
name = "Main Warehouse"
|
|
20
|
+
params {
|
|
21
|
+
host = db.conn.host
|
|
22
|
+
port = db.conn.port
|
|
23
|
+
user = db.conn.user
|
|
24
|
+
password = db.conn.password
|
|
25
|
+
database = dbName
|
|
26
|
+
schema = shopId
|
|
27
|
+
}
|
|
28
|
+
settings {
|
|
29
|
+
userIdTypes = new Listing {
|
|
30
|
+
new {
|
|
31
|
+
userIdType = "user_id"
|
|
32
|
+
description = "Logged-in user id"
|
|
33
|
+
}
|
|
34
|
+
new {
|
|
35
|
+
userIdType = "anonymous_id"
|
|
36
|
+
description = "Anonymous visitor id"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
queries {
|
|
40
|
+
exposure = new Listing {
|
|
41
|
+
new {
|
|
42
|
+
id = "user_id"
|
|
43
|
+
name = "Logged-in user experiments"
|
|
44
|
+
userIdType = "user_id"
|
|
45
|
+
query = """
|
|
46
|
+
SELECT \nuser_id,\n received_at as timestamp,\n experiment_id,\n variation_id,\n context_location_country as country
|
|
47
|
+
FROM \nexperiment_viewed
|
|
48
|
+
"""
|
|
49
|
+
dimensions = List("country")
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
identityJoins = new Listing {
|
|
53
|
+
new {
|
|
54
|
+
ids = List("user_id", "anonymous_id")
|
|
55
|
+
query = "SELECT user_id, anonymous_id FROM identifies"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
metrics {
|
|
63
|
+
signups {
|
|
64
|
+
type = "binomial"
|
|
65
|
+
name = "Sign Ups"
|
|
66
|
+
userIdType = "user_id"
|
|
67
|
+
datasource = "warehouse"
|
|
68
|
+
sql = "SELECT user_id, anonymous_id, received_at as timestamp FROM signups"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
dimensions {
|
|
72
|
+
country {
|
|
73
|
+
name = "Country"
|
|
74
|
+
userIdType = "user_id"
|
|
75
|
+
datasource = "warehouse"
|
|
76
|
+
sql = "SELECT user_id, country as value FROM users"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
segments {
|
|
80
|
+
visitors {
|
|
81
|
+
name = "Visitors in the US"
|
|
82
|
+
datasource = "warehouse"
|
|
83
|
+
sql = """
|
|
84
|
+
SELECT userid as user_id, timestamp as date
|
|
85
|
+
FROM users WHERE country='US'
|
|
86
|
+
"""
|
|
87
|
+
userIdType = "user_id"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
@go.Package { name = "paakd.com/packages/config/gen/go/kiosk_host" }
|
|
2
|
+
module paakd.com.packages.config.KioskHost
|
|
3
|
+
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.12.1#/go.pkl"
|
|
4
|
+
|
|
5
|
+
import "./WorkerTmpl.pkl"
|
|
6
|
+
import "./ClodflareTmpl.pkl"
|
|
7
|
+
import "./SharedTmpl.pkl"
|
|
8
|
+
|
|
9
|
+
pgCatTLSCertPath: String
|
|
10
|
+
pgCatTLSKeyPath: String
|
|
11
|
+
pgCatConfigPath: String = "/firecracker-vm/"
|
|
12
|
+
maxVmCount: UInt16 = 8
|
|
13
|
+
orchestratorUrl: String = WorkerTmpl.orchestrator.endpoint
|
|
14
|
+
enterpriseHttpPort: UInt16 = 80
|
|
15
|
+
vmDir: String = "/firecracker-vm/"
|
|
16
|
+
kernelPath: String = "/firecracker-vm/"
|
|
17
|
+
defaultRootFsPath: String = "/firecracker-vm/"
|
|
18
|
+
firecrackerExecPath: String = "/usr/local/bin/"
|
|
19
|
+
jailerExecPath: String = "/usr/local/bin/"
|
|
20
|
+
pgCatExecPath: String = "/usr/local/bin/"
|
|
21
|
+
firecrackerVersion: String = "v1.10.1"
|
|
22
|
+
hostIP: String
|
|
23
|
+
|
|
24
|
+
pgCatAdminUser: String = "admin_usevr"
|
|
25
|
+
pgCatAdminPass: String = "admin_passv"
|
|
26
|
+
|
|
27
|
+
vmSSHPrivKey: String = """
|
|
28
|
+
-----BEGIN OPENSSH PRIVATE KEY-----
|
|
29
|
+
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
|
30
|
+
QyNTUxOQAAACCLmZctUHbalnaDvz5WjLhLUxVVktLyP7yvAt9eaX3myAAAAKhvMQbqbzEG
|
|
31
|
+
6gAAAAtzc2gtZWQyNTUxOQAAACCLmZctUHbalnaDvz5WjLhLUxVVktLyP7yvAt9eaX3myA
|
|
32
|
+
AAAECbTNoOpjexOXfIUcCmnH7k2dVsgqEVpNMGIxk7dkjAJYuZly1QdtqWdoO/PlaMuEtT
|
|
33
|
+
FVWS0vI/vK8C315pfebIAAAAIXJvb3RAVWJ1bnR1LTI0MDQtbm9ibGUtYW1kNjQtYmFzZQ
|
|
34
|
+
ECAwQ=
|
|
35
|
+
-----END OPENSSH PRIVATE KEY-----
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
pgCatTLSCert: String = """
|
|
39
|
+
-----BEGIN CERTIFICATE-----
|
|
40
|
+
MIIDvTCCAqUCFD3qkRo66FbQj6XjfP0aaCG40UfcMA0GCSqGSIb3DQEBCwUAMIGa
|
|
41
|
+
MQswCQYDVQQGEwJOTDEWMBQGA1UECAwNTm9ydGggSG9sbGFuZDEQMA4GA1UEBwwH
|
|
42
|
+
SGFhcmxlbTESMBAGA1UECgwJU2hvbGZ1ZW50MREwDwYDVQQLDAhTb2Z0d2FyZTES
|
|
43
|
+
MBAGA1UEAwwJbG9jYWxob3N0MSYwJAYJKoZIhvcNAQkBFhd0aW1vdGV3cGV0ZXJz
|
|
44
|
+
QGdtYWlsLmNvbTAeFw0yNTAyMjcxNjM3NTRaFw0yNjAyMjcxNjM3NTRaMIGaMQsw
|
|
45
|
+
CQYDVQQGEwJOTDEWMBQGA1UECAwNTm9ydGggSG9sbGFuZDEQMA4GA1UEBwwHSGFh
|
|
46
|
+
cmxlbTESMBAGA1UECgwJU2hvbGZ1ZW50MREwDwYDVQQLDAhTb2Z0d2FyZTESMBAG
|
|
47
|
+
A1UEAwwJbG9jYWxob3N0MSYwJAYJKoZIhvcNAQkBFhd0aW1vdGV3cGV0ZXJzQGdt
|
|
48
|
+
YWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhoLn4DXCCh
|
|
49
|
+
02o6xu6yFQ2B6Fe7mSlyQIHhdl9J/HOt/tTNPFIgqxQbNn/2AiGXduhgqmvn9k0p
|
|
50
|
+
EzvVGEPl/PGpy5+ITPd5I2QYfbgNJXFGMVbKDE6wOUavbYgk1j4Ka83XRF9sSVWo
|
|
51
|
+
eEDhJC9JS8FMEFhUn8Pl/gdSQTov/ahHhRsoYWAC57XfISo2vaNDrhai5U/oUmfj
|
|
52
|
+
s1kUpkPI1ZepD/3Tgu+TUpsdZn8HyABZQPj57vrvuZ6mZZmmaZchOxoyMPHOt9rP
|
|
53
|
+
urNqPJTl1c/f9u0HrdskWQ6nyBEMHYyFPPblRSVSNh6ruvTsJ5Y/zOA+MapDIeU8
|
|
54
|
+
VvGf9QUxdU0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAn6M7SG0839xZ6CoRjOfM
|
|
55
|
+
q9OCEf36V7Igsnfelb1dXhn1CKaCLDTCiiFXIfU8BCJecTCNH/xVUOKsv9Kbqoqh
|
|
56
|
+
PduUHq/mW3G7cU6ktGC7iPkVXRyPmfMs2inoHdTWvwdssc9cNWqxcFd1zVftV23D
|
|
57
|
+
54+FPIcoGId39tofXu2sog0mu5UgYogk5x7lSBnI1lDlIdnf8mb7Pchds35MDXsm
|
|
58
|
+
m7VrxE0AHYA++vDp3Sjp15vcudXmwdPUZ217Ra5g15DKZr1mOZfUHT5rcioPO36I
|
|
59
|
+
BY90QXxo1WDrrIdVCaHhQ97OdBRNt3qML7zUwoSoccdv4apK4UqczhpkSa5D06sL
|
|
60
|
+
cQ==
|
|
61
|
+
-----END CERTIFICATE-----
|
|
62
|
+
"""
|
|
63
|
+
pgCatTLSKey: String = """
|
|
64
|
+
-----BEGIN PRIVATE KEY-----
|
|
65
|
+
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCoaC5+A1wgodNq
|
|
66
|
+
OsbushUNgehXu5kpckCB4XZfSfxzrf7UzTxSIKsUGzZ/9gIhl3boYKpr5/ZNKRM7
|
|
67
|
+
1RhD5fzxqcufiEz3eSNkGH24DSVxRjFWygxOsDlGr22IJNY+CmvN10RfbElVqHhA
|
|
68
|
+
4SQvSUvBTBBYVJ/D5f4HUkE6L/2oR4UbKGFgAue13yEqNr2jQ64WouVP6FJn47NZ
|
|
69
|
+
FKZDyNWXqQ/904Lvk1KbHWZ/B8gAWUD4+e7677mepmWZpmmXITsaMjDxzrfaz7qz
|
|
70
|
+
ajyU5dXP3/btB63bJFkOp8gRDB2MhTz25UUlUjYeq7r07CeWP8zgPjGqQyHlPFbx
|
|
71
|
+
n/UFMXVNAgMBAAECggEAZKsiX6GSiM8zmeTY1gcOHqzxPsCdpfDuLrWgFQYdKulv
|
|
72
|
+
07V7wXxVyAccZRGh5IKuSeq+9RIMYcOUA8g2YSAyPCPL3OmVWLnJNiSNwl/ZagUT
|
|
73
|
+
qVXOVZtyIZbsWt3qU9vW5Y0xCfmpPNMgT2hGQR4Hct0NSEAN4QSy/Z1l8GqPru9Y
|
|
74
|
+
9CCg2Bn+VHtuQLAbKryVwvvptI3lNc0/hD8GzSD7kxgmbr3dVbWm24R2Mymo3cRL
|
|
75
|
+
qC5V6HwOFtFbNwsIGvfeFj8HSRCnqfMef8uJsWaqdeQs2Q1zW6bxll2ZFzWp7JPH
|
|
76
|
+
lIU9TMwo47dmgRyTGnZ0BHPX4XhLmazkVbqNWniMAQKBgQDfU2Mm0jsiaDe0N0I1
|
|
77
|
+
mp3Ma2kwUU/tTnrbTkD39nrZhvKn50i8hDCT9xKBEFORdYkaKJP5dGUnZQVJmFsP
|
|
78
|
+
302h7xA3afjprfrhPHYyIQP/AxlYKajlPE2tSO+ooi99fYPe6J2d5KJc1E/0jTyV
|
|
79
|
+
7clkeHDPgftN9gtfXdtObCbSrQKBgQDBC9MaFclMB+e1U11SRki4h50oyOjWaVMq
|
|
80
|
+
oUoRcbDV7cRoJcdjv+XgqlisS9YP6dGbJzeaGdhDlPXxB+SHAMDFkFwSDEDCV/ET
|
|
81
|
+
eRVU3NoTrDddEbfjELwh4inGvXEwVAaexcroo0WIXdsbZ2eA/O6M0tBjHarOpDkV
|
|
82
|
+
QN1AyCghIQKBgBHnV32XQRJjFIQoIfC2Moxe2BH9ktDNh9/pCCBY7ERgIzf+vMAQ
|
|
83
|
+
QOy71AnwyyJQL+ue8S4AfNOJr8DUrAg7uLeQuNYYctIZFpHUDQ27w9w/3VpKDLZD
|
|
84
|
+
/V41CLGWPwRqeZX3RBuSZsnWY4qRgBfs9kZNuY2JOCJp5UOB/MDuvrYJAoGAGesb
|
|
85
|
+
gbIRH7sj+e1iZyx2kQfsKtCmqjrj5qJXDnaENoTAzPbdiV/3Xi2g0CkyaVqMQNeI
|
|
86
|
+
GJGFvrUePClCHnoUZ7IVGns4qp8iB+pG2ej5ApEpsb4yQTM6/xWdZEiFDOcLKIAH
|
|
87
|
+
2SoqqL9pLom4lNHguVmIjvYpu6rC2z6lNhBpiuECgYBkP1/dFYe4nHywy01cxHIx
|
|
88
|
+
le6tiFMZL9f7Z2NYAkdiy8EFTuE+iHY6qeHoq6tHnziJ2AuF6Hx5iD1btr2sSNsm
|
|
89
|
+
AYoSQk8HIgu/v99cYSwTgrEm5IFES3czJFEYxICRxbTwOQO3l7BtlZZ7tcRMM4wJ
|
|
90
|
+
134IKQZ1pi2KVmtFfErBLA==
|
|
91
|
+
-----END PRIVATE KEY-----
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
pgCatTLSCsr: String = """
|
|
95
|
+
-----BEGIN CERTIFICATE REQUEST-----
|
|
96
|
+
MIIC4DCCAcgCAQAwgZoxCzAJBgNVBAYTAk5MMRYwFAYDVQQIDA1Ob3J0aCBIb2xs
|
|
97
|
+
YW5kMRAwDgYDVQQHDAdIYWFybGVtMRIwEAYDVQQKDAlTaG9sZnVlbnQxETAPBgNV
|
|
98
|
+
BAsMCFNvZnR3YXJlMRIwEAYDVQQDDAlsb2NhbGhvc3QxJjAkBgkqhkiG9w0BCQEW
|
|
99
|
+
F3RpbW90ZXdwZXRlcnNAZ21haWwuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
|
100
|
+
MIIBCgKCAQEAqGgufgNcIKHTajrG7rIVDYHoV7uZKXJAgeF2X0n8c63+1M08UiCr
|
|
101
|
+
FBs2f/YCIZd26GCqa+f2TSkTO9UYQ+X88anLn4hM93kjZBh9uA0lcUYxVsoMTrA5
|
|
102
|
+
Rq9tiCTWPgprzddEX2xJVah4QOEkL0lLwUwQWFSfw+X+B1JBOi/9qEeFGyhhYALn
|
|
103
|
+
td8hKja9o0OuFqLlT+hSZ+OzWRSmQ8jVl6kP/dOC75NSmx1mfwfIAFlA+Pnu+u+5
|
|
104
|
+
nqZlmaZplyE7GjIw8c632s+6s2o8lOXVz9/27Qet2yRZDqfIEQwdjIU89uVFJVI2
|
|
105
|
+
Hqu69Ownlj/M4D4xqkMh5TxW8Z/1BTF1TQIDAQABoAAwDQYJKoZIhvcNAQELBQAD
|
|
106
|
+
ggEBAGVyPLuWWQqHbS3gLzh8y75QWSINxKUA1mfJ0eH1hHBW7b88lspiBDph70aT
|
|
107
|
+
AsQbOX/RFFXQOwYksFbfD8L6sstPodctuX9r4B2nl8uUSIov/+U494mp9Wvnlc3w
|
|
108
|
+
1pbm1RDfilnha2E4GQgqDS6GnIowbCf6EOSPXpji32LQRN+vQGbnHbzn96J27Bb+
|
|
109
|
+
PjuMxbGyDGDjzn4rA+xr21iNOrADV+po+C3HfVTswCmFxwJevnIzmbHTL2Jwifpf
|
|
110
|
+
X+zDh0PC+rAF517wAVtci1MR77Wkd6KOF/3oJufvhVzcG8XvAgJk/d7VjR1/UCon
|
|
111
|
+
0oeFYaeHCHiDbOHo51y43EdAFAY=
|
|
112
|
+
-----END CERTIFICATE REQUEST-----
|
|
113
|
+
"""
|
|
114
|
+
|
|
115
|
+
proxyServiceFileContent: String = """
|
|
116
|
+
[Unit]
|
|
117
|
+
Description=Gateway
|
|
118
|
+
After=network.target
|
|
119
|
+
|
|
120
|
+
[Service]
|
|
121
|
+
ExecStart=/usr/local/bin/host-proxy
|
|
122
|
+
Restart=always
|
|
123
|
+
User=root
|
|
124
|
+
|
|
125
|
+
[Install]
|
|
126
|
+
WantedBy=multi-user.target
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
orchestratorServiceFileContent: String = """
|
|
130
|
+
[Unit]
|
|
131
|
+
Description=Orchestrator
|
|
132
|
+
After=network.target
|
|
133
|
+
|
|
134
|
+
[Service]
|
|
135
|
+
ExecStart=/usr/local/bin/orchestrator
|
|
136
|
+
Restart=always
|
|
137
|
+
User=root
|
|
138
|
+
EnvironmentFile=/etc/orchestrator.env
|
|
139
|
+
|
|
140
|
+
[Install]
|
|
141
|
+
WantedBy=multi-user.target
|
|
142
|
+
"""
|
|
143
|
+
|
|
144
|
+
orchestratorEnvFileContent: String = """
|
|
145
|
+
FIRECRACKER_PATH=\( firecrackerExecPath )
|
|
146
|
+
JAILER_PATH=\( jailerExecPath )
|
|
147
|
+
VM_DIR=\( vmDir )
|
|
148
|
+
DEFAULT_ROOT_FS_PATH=\(defaultRootFsPath)
|
|
149
|
+
KERNEL_PATH=\( kernelPath )
|
|
150
|
+
VM_SSH_KEY="\(vmSSHPrivKey)"
|
|
151
|
+
ENTERPRISE_HTTP_PORT=\(enterpriseHttpPort)
|
|
152
|
+
VAULT_URL=\(SharedTmpl.build.vaultUrl)
|
|
153
|
+
ORCHESTRATOR_URL=\(orchestratorUrl)
|
|
154
|
+
ORCHESTRATOR_USER=\(WorkerTmpl.orchestrator.user)
|
|
155
|
+
ORCHESTRATOR_PASS=\(WorkerTmpl.orchestrator.password)
|
|
156
|
+
HOST_IP=\(hostIP)
|
|
157
|
+
MAX_VM_COUNT=\(maxVmCount)
|
|
158
|
+
PGCAT_CONFIG_PATH=\(pgCatConfigPath)
|
|
159
|
+
"""
|
|
160
|
+
|
|
161
|
+
// https://github.com/postgresml/pgcat/blob/main/CONFIG.md
|
|
162
|
+
pgCatConfig {
|
|
163
|
+
general {
|
|
164
|
+
host = "0.0.0.0"
|
|
165
|
+
port = 5432
|
|
166
|
+
enable_prometheus_exporter = true
|
|
167
|
+
prometheus_exporter_port = 9930
|
|
168
|
+
connect_timeout = 1000
|
|
169
|
+
healthcheck_timeout = 1000
|
|
170
|
+
healthcheck_delay = 30000
|
|
171
|
+
shutdown_timeout = 5000
|
|
172
|
+
ban_time = 60 // Seconds
|
|
173
|
+
log_client_connections = false
|
|
174
|
+
log_client_disconnections = false
|
|
175
|
+
autoreload = 5000
|
|
176
|
+
server_round_robin = false
|
|
177
|
+
admin_username = pgCatAdminUser
|
|
178
|
+
admin_password = pgCatAdminPass
|
|
179
|
+
tls_certificate = pgCatTLSCertPath
|
|
180
|
+
tls_private_key = pgCatTLSKeyPath
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
rcloneConfig {
|
|
186
|
+
["host-files"] {
|
|
187
|
+
type = "s3"
|
|
188
|
+
provider = "Cloudflare"
|
|
189
|
+
access_key_id = "f651e66f44b0a4b28a441bfa621d6af2"
|
|
190
|
+
secret_access_key = "3852797df26b2e1810f96ed7aa08564719fb9fd56e9dd8f4345dbeab10557f7d"
|
|
191
|
+
endpoint = "https://3545c559905315bb593ba3c502b3fe07.r2.cloudflarestorage.com"
|
|
192
|
+
acl = "private"
|
|
193
|
+
}
|
|
194
|
+
}
|