Add /spr/ route for soleprint index, fix sidebar system labels
This commit is contained in:
@@ -1,16 +1,143 @@
|
||||
{
|
||||
"managed": {
|
||||
"name": "sample",
|
||||
"repos": {
|
||||
"frontend": "/path/to/your/frontend/repo",
|
||||
"backend": "/path/to/your/backend/repo"
|
||||
}
|
||||
},
|
||||
"framework": {
|
||||
"name": "soleprint"
|
||||
"name": "soleprint",
|
||||
"slug": "soleprint",
|
||||
"version": "0.1.0",
|
||||
"description": "Development workflow and documentation system",
|
||||
"tagline": "Mapping development footprints",
|
||||
"icon": "",
|
||||
"hub_port": 12030
|
||||
},
|
||||
"auth": {
|
||||
"enabled": false
|
||||
"enabled": true,
|
||||
"provider": "google",
|
||||
"allowed_domains": [],
|
||||
"allowed_emails": [],
|
||||
"session_secret": "ENV:AUTH_SESSION_SECRET"
|
||||
},
|
||||
"veins": []
|
||||
"veins": ["google"],
|
||||
"managed": {
|
||||
"name": "sample"
|
||||
},
|
||||
"systems": [
|
||||
{
|
||||
"key": "data_flow",
|
||||
"name": "artery",
|
||||
"slug": "artery",
|
||||
"title": "Artery",
|
||||
"tagline": "Todo lo vital",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"key": "documentation",
|
||||
"name": "atlas",
|
||||
"slug": "atlas",
|
||||
"title": "Atlas",
|
||||
"tagline": "Documentacion accionable",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"key": "execution",
|
||||
"name": "station",
|
||||
"slug": "station",
|
||||
"title": "Station",
|
||||
"tagline": "Monitores, Entornos y Herramientas",
|
||||
"icon": ""
|
||||
}
|
||||
],
|
||||
"components": {
|
||||
"shared": {
|
||||
"config": {
|
||||
"name": "room",
|
||||
"title": "Room",
|
||||
"description": "Runtime environment configuration",
|
||||
"plural": "rooms"
|
||||
},
|
||||
"data": {
|
||||
"name": "depot",
|
||||
"title": "Depot",
|
||||
"description": "Data storage / provisions",
|
||||
"plural": "depots"
|
||||
}
|
||||
},
|
||||
"data_flow": {
|
||||
"connector": {
|
||||
"name": "vein",
|
||||
"title": "Vein",
|
||||
"description": "Stateless API connector",
|
||||
"plural": "veins"
|
||||
},
|
||||
"mock": {
|
||||
"name": "shunt",
|
||||
"title": "Shunt",
|
||||
"description": "Fake connector for testing",
|
||||
"plural": "shunts"
|
||||
},
|
||||
"composed": {
|
||||
"name": "pulse",
|
||||
"title": "Pulse",
|
||||
"description": "Composed data flow",
|
||||
"plural": "pulses",
|
||||
"formula": "Vein + Room + Depot"
|
||||
},
|
||||
"app": {
|
||||
"name": "plexus",
|
||||
"title": "Plexus",
|
||||
"description": "Full app with backend, frontend and DB",
|
||||
"plural": "plexus"
|
||||
}
|
||||
},
|
||||
"documentation": {
|
||||
"pattern": {
|
||||
"name": "template",
|
||||
"title": "Template",
|
||||
"description": "Documentation pattern",
|
||||
"plural": "templates"
|
||||
},
|
||||
"library": {
|
||||
"name": "book",
|
||||
"title": "Book",
|
||||
"description": "Documentation library"
|
||||
},
|
||||
"composed": {
|
||||
"name": "book",
|
||||
"title": "Book",
|
||||
"description": "Composed documentation",
|
||||
"plural": "books",
|
||||
"formula": "Template + Depot"
|
||||
}
|
||||
},
|
||||
"execution": {
|
||||
"utility": {
|
||||
"name": "tool",
|
||||
"title": "Tool",
|
||||
"description": "Execution utility",
|
||||
"plural": "tools"
|
||||
},
|
||||
"watcher": {
|
||||
"name": "monitor",
|
||||
"title": "Monitor",
|
||||
"description": "Service monitor",
|
||||
"plural": "monitors"
|
||||
},
|
||||
"container": {
|
||||
"name": "cabinet",
|
||||
"title": "Cabinet",
|
||||
"description": "Tool container",
|
||||
"plural": "cabinets"
|
||||
},
|
||||
"workspace": {
|
||||
"name": "desk",
|
||||
"title": "Desk",
|
||||
"description": "Execution workspace"
|
||||
},
|
||||
"composed": {
|
||||
"name": "desk",
|
||||
"title": "Desk",
|
||||
"description": "Composed execution bundle",
|
||||
"plural": "desks",
|
||||
"formula": "Cabinet + Room + Depots"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Sample App</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: system-ui, -apple-system, sans-serif;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
.container {
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
}
|
||||
h1 { color: #333; }
|
||||
p { color: #666; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>Sample App</h1>
|
||||
<p>This is a sample managed room for Soleprint.</p>
|
||||
<p>Replace this with your actual frontend.</p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Sample - Public Demo</title>
|
||||
<style>
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
body {
|
||||
font-family:
|
||||
system-ui,
|
||||
-apple-system,
|
||||
sans-serif;
|
||||
background: linear-gradient(135deg, #1e3a5f 0%, #0d1b2a 100%);
|
||||
color: #e5e5e5;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.container {
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
}
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
margin-bottom: 1rem;
|
||||
background: linear-gradient(135deg, #3a86ff, #8338ec);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
}
|
||||
p {
|
||||
font-size: 1.2rem;
|
||||
color: #a3a3a3;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
.status {
|
||||
display: inline-block;
|
||||
padding: 0.5rem 1rem;
|
||||
background: rgba(58, 134, 255, 0.2);
|
||||
border: 1px solid #3a86ff;
|
||||
border-radius: 4px;
|
||||
color: #3a86ff;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.info {
|
||||
margin-top: 3rem;
|
||||
padding: 1.5rem;
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border-radius: 8px;
|
||||
max-width: 400px;
|
||||
}
|
||||
.info h3 {
|
||||
color: #8338ec;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.info ul {
|
||||
list-style: none;
|
||||
text-align: left;
|
||||
}
|
||||
.info li {
|
||||
padding: 0.5rem 0;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.info li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
a {
|
||||
color: #3a86ff;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>Sample</h1>
|
||||
<p>Public demo - open to any Gmail account</p>
|
||||
<span class="status">Public Demo</span>
|
||||
|
||||
<div class="info">
|
||||
<h3>Soleprint Managed Room</h3>
|
||||
<ul>
|
||||
<li>
|
||||
With sidebar:
|
||||
<a href="https://sample.spr.mcrn.ar"
|
||||
>sample.spr.mcrn.ar</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
Standalone:
|
||||
<a href="https://sample.mcrn.ar">sample.mcrn.ar</a>
|
||||
</li>
|
||||
<li>Login with any Google account</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# =============================================================================
|
||||
# SOLEPRINT - Sample Room Configuration
|
||||
# Sample Soleprint Configuration
|
||||
# =============================================================================
|
||||
# Copy this to cfg/<your-room>/soleprint/.env and customize
|
||||
|
||||
# =============================================================================
|
||||
# DEPLOYMENT
|
||||
@@ -9,32 +8,24 @@
|
||||
DEPLOYMENT_NAME=sample_spr
|
||||
|
||||
# =============================================================================
|
||||
# NETWORK (unique per room to allow concurrent operation)
|
||||
# NETWORK
|
||||
# =============================================================================
|
||||
NETWORK_NAME=sample_network
|
||||
|
||||
# =============================================================================
|
||||
# PORTS (choose unique ports for each room)
|
||||
# PORTS (unique per room)
|
||||
# =============================================================================
|
||||
SOLEPRINT_PORT=12020
|
||||
SOLEPRINT_PORT=12030
|
||||
|
||||
# =============================================================================
|
||||
# GOOGLE OAUTH (optional - for auth)
|
||||
# GOOGLE OAUTH
|
||||
# =============================================================================
|
||||
GOOGLE_CLIENT_ID=
|
||||
GOOGLE_CLIENT_SECRET=
|
||||
GOOGLE_REDIRECT_URI=http://sample.spr.local.ar/spr/artery/google/oauth/callback
|
||||
GOOGLE_CLIENT_ID=1076380473867-k6gvdg8etujj2e51bqejve78ft99hnqd.apps.googleusercontent.com
|
||||
GOOGLE_CLIENT_SECRET=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
|
||||
GOOGLE_REDIRECT_URI=http://sample.spr.local.ar/artery/google/oauth/callback
|
||||
|
||||
# =============================================================================
|
||||
# AUTH
|
||||
# =============================================================================
|
||||
AUTH_SESSION_SECRET=change-this-in-production
|
||||
|
||||
# =============================================================================
|
||||
# DATABASE (optional - if your app uses a database)
|
||||
# =============================================================================
|
||||
DB_HOST=sample_db
|
||||
DB_PORT=5432
|
||||
DB_NAME=sampledb
|
||||
DB_USER=postgres
|
||||
DB_PASSWORD=localdev123
|
||||
AUTH_BYPASS=true
|
||||
AUTH_SESSION_SECRET=sample-dev-secret-change-in-production
|
||||
|
||||
Reference in New Issue
Block a user