unoverse 0.1.90 → 0.1.92

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.
@@ -126,6 +126,9 @@ output "env_production" {
126
126
  OPENAI_API_KEY=${var.openai_api_key}
127
127
  HYPERBROWSER_API_KEY=${var.hyperbrowser_api_key}
128
128
 
129
+ # Marketplace catalogue (MARKETPLACE.md §5). Empty = local items only.
130
+ UNOVERSE_MARKETPLACE_URL=${var.marketplace_url}
131
+
129
132
  # Ingress. With a domain: DOMAIN drives every URL (compose derives
130
133
  # https://api.<domain>). Without one (POC): DOMAIN stays empty and the
131
134
  # explicit URLs below point at the ALB's DNS name over plain HTTP.
@@ -53,3 +53,7 @@ roles = [
53
53
  # that locks every credential users save in the platform. If it's lost, no backup
54
54
  # can bring them back. Never commit it; keep a safe copy with your database backups.
55
55
  # To change any value: edit this file and re-render. Never hand-edit the output.
56
+
57
+ # Marketplace catalogue to install from (docs/architecture/MARKETPLACE.md).
58
+ # Leave unset for local items only.
59
+ # marketplace_url = "https://marketplace.example.com"
@@ -91,3 +91,14 @@ variable "hyperbrowser_api_key" {
91
91
  default = ""
92
92
  sensitive = true
93
93
  }
94
+
95
+ # The catalogue this universe installs from (MARKETPLACE.md §5). NO DEFAULT, deliberately:
96
+ # a URL is never hardcoded and never a fallback, and absent config means no remote
97
+ # catalogue — the universe serves what it has on disk and in its rows, which is the correct
98
+ # state for development and for air-gapped estates. It reaches the marketplace at install
99
+ # time and at no other time.
100
+ variable "marketplace_url" {
101
+ description = "Base URL of the marketplace catalogue. Empty = local items only."
102
+ type = string
103
+ default = ""
104
+ }
@@ -381,9 +381,15 @@ resource "digitalocean_project" "universe" {
381
381
  description = "unoverse universe: ${var.name}"
382
382
  purpose = "Web Application"
383
383
  environment = var.size == "small" ? "Development" : "Production"
384
+ # EVERY resource this stack creates, or the dashboard lies. The Canvas load balancer was
385
+ # added without being listed here, so it stayed in the account's default project while
386
+ # the rest of the universe sat in this one: two views each reporting "LOAD BALANCERS (1)"
387
+ # and no single place showing what this universe actually is. Anything added below must
388
+ # be added here in the same commit.
384
389
  resources = compact([
385
390
  digitalocean_droplet.app.urn,
386
391
  digitalocean_loadbalancer.public.urn,
392
+ local.has_domain && var.canvas_public ? digitalocean_loadbalancer.canvas[0].urn : "",
387
393
  digitalocean_database_cluster.redis.urn,
388
394
  local.provision_pg ? digitalocean_database_cluster.pg[0].urn : "",
389
395
  ])
@@ -118,6 +118,9 @@ output "env_production" {
118
118
  OPENAI_API_KEY=${var.openai_api_key}
119
119
  HYPERBROWSER_API_KEY=${var.hyperbrowser_api_key}
120
120
 
121
+ # Marketplace catalogue (MARKETPLACE.md §5). Empty = local items only.
122
+ UNOVERSE_MARKETPLACE_URL=${var.marketplace_url}
123
+
121
124
  # Ingress. With a domain: DOMAIN drives every URL (compose derives
122
125
  # https://api.<domain>). Without one (POC): DOMAIN stays empty and the
123
126
  # explicit URLs below point at the load balancer's IP over plain HTTP.
@@ -50,3 +50,7 @@ openai_api_key = "sk-..." # memory server + OpenAI nodes
50
50
  # that locks every credential users save in the platform. If it's lost, no backup
51
51
  # can bring them back. Never commit it; keep a safe copy with your database backups.
52
52
  # To change any value: edit this file and re-render. Never hand-edit the output.
53
+
54
+ # Marketplace catalogue to install from (docs/architecture/MARKETPLACE.md).
55
+ # Leave unset for local items only.
56
+ # marketplace_url = "https://marketplace.example.com"
@@ -125,3 +125,14 @@ variable "hyperbrowser_api_key" {
125
125
  default = ""
126
126
  sensitive = true
127
127
  }
128
+
129
+ # The catalogue this universe installs from (MARKETPLACE.md §5). NO DEFAULT, deliberately:
130
+ # a URL is never hardcoded and never a fallback, and absent config means no remote
131
+ # catalogue — the universe serves what it has on disk and in its rows, which is the correct
132
+ # state for development and for air-gapped estates. It reaches the marketplace at install
133
+ # time and at no other time.
134
+ variable "marketplace_url" {
135
+ description = "Base URL of the marketplace catalogue. Empty = local items only."
136
+ type = string
137
+ default = ""
138
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unoverse",
3
- "version": "0.1.90",
3
+ "version": "0.1.92",
4
4
  "description": "The Unoverse front door — create a Studio project, a universe, or a client app, and launch Studio.",
5
5
  "license": "SEE LICENSE IN README.md",
6
6
  "type": "module",