Files
soleprint/docs/artery/index.html

315 lines
13 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Artery - Soleprint</title>
<link rel="stylesheet" href="../architecture/styles.css" />
<style>
.composition {
background: #1a1a1a;
border: 2px solid #b91c1c;
padding: 1rem;
border-radius: 12px;
margin-bottom: 1rem;
}
.composition h3 {
margin: 0 0 0.75rem 0;
font-size: 1.1rem;
color: #fca5a5;
}
.composition > p {
margin: 0 0 1rem 0;
font-size: 0.9rem;
color: #a3a3a3;
}
.components {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 0.75rem;
}
.component {
background: #0a0a0a;
border: 1px solid #3f3f3f;
padding: 0.75rem;
border-radius: 8px;
}
.component h4 {
margin: 0 0 0.25rem 0;
font-size: 0.95rem;
color: #fca5a5;
}
.component p {
margin: 0;
font-size: 0.85rem;
color: #a3a3a3;
}
.model-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1rem;
}
</style>
<script src="../lang-toggle.js"></script>
</head>
<body>
<header>
<div id="lang-toggle"></div>
<h1>Artery</h1>
<p class="subtitle">Todo lo vital</p>
</header>
<main>
<section class="findings-section">
<h2>
<span class="lang-en">Model</span
><span class="lang-es">Modelo</span>
</h2>
<div class="model-grid">
<div class="composition">
<h3>Pulse</h3>
<p class="lang-en">
Composed data flow: a vein configured for a room
with storage
</p>
<p class="lang-es">
Flujo de datos compuesto: vein configurado para un
room con almacenamiento
</p>
<div class="components">
<div class="component">
<h4>Vein</h4>
<p class="lang-en">API connector</p>
<p class="lang-es">Conector API</p>
</div>
<div class="component">
<h4>Room</h4>
<p class="lang-en">Config/env</p>
<p class="lang-es">Config/entorno</p>
</div>
<div class="component">
<h4>Depot</h4>
<p class="lang-en">Data storage</p>
<p class="lang-es">Almacenamiento</p>
</div>
</div>
</div>
<div class="composition">
<h3>Shunt</h3>
<p class="lang-en">
Mock connector for testing - same interface, fake
data
</p>
<p class="lang-es">
Conector mock para testing - misma interfaz, datos
falsos
</p>
<div class="components">
<div class="component">
<h4>Vein Interface</h4>
<p class="lang-en">Same API shape</p>
<p class="lang-es">Misma forma de API</p>
</div>
<div class="component">
<h4>Mock Data</h4>
<p class="lang-en">Fake responses</p>
<p class="lang-es">Respuestas falsas</p>
</div>
</div>
</div>
<div class="composition">
<h3>Plexus</h3>
<p class="lang-en">
Full application when you need more than data flow
</p>
<p class="lang-es">
Aplicacion completa cuando necesitas mas que flujo
de datos
</p>
<div class="components">
<div class="component">
<h4>Backend</h4>
<p>FastAPI server</p>
</div>
<div class="component">
<h4>Frontend</h4>
<p>Web UI</p>
</div>
<div class="component">
<h4>Infra</h4>
<p class="lang-en">DB, queues, etc</p>
<p class="lang-es">DB, colas, etc</p>
</div>
</div>
</div>
</div>
</section>
<section class="findings-section">
<h2>
<span class="lang-en">Architecture</span
><span class="lang-es">Arquitectura</span>
</h2>
<img
src="../architecture/02-artery-hierarchy.svg"
alt="Artery Hierarchy"
style="
max-width: 100%;
background: white;
border-radius: 8px;
padding: 1rem;
"
/>
</section>
<section class="findings-section">
<h2>
<span class="lang-en">Components</span
><span class="lang-es">Componentes</span>
</h2>
<div class="findings-grid">
<article class="finding-card">
<h3>Vein</h3>
<p class="lang-en">
Stateless API connector. Connects to external
services like Google Sheets, Jira, Slack. Pure data
flow - no state, no storage.
</p>
<p class="lang-es">
Conector API sin estado. Conecta a servicios
externos como Google Sheets, Jira, Slack. Flujo de
datos puro.
</p>
</article>
<article class="finding-card">
<h3>Shunt</h3>
<p class="lang-en">
Mock connector for testing. Same interface as a vein
but returns fake data.
</p>
<p class="lang-es">
Conector mock para testing. Misma interfaz que un
vein pero devuelve datos falsos.
</p>
</article>
<article class="finding-card">
<h3>Pulse</h3>
<p class="lang-en">
Composed data flow. Formula:
<strong>Vein + Room + Depot</strong>.
</p>
<p class="lang-es">
Flujo de datos compuesto. Formula:
<strong>Vein + Room + Depot</strong>.
</p>
</article>
<article class="finding-card">
<h3>Plexus</h3>
<p class="lang-en">
Full application with backend, frontend, and
infrastructure.
</p>
<p class="lang-es">
Aplicacion completa con backend, frontend e
infraestructura.
</p>
</article>
</div>
</section>
<section class="findings-section">
<h2>
<span class="lang-en">Shared Components</span
><span class="lang-es">Componentes Compartidos</span>
</h2>
<div class="findings-grid">
<article class="finding-card">
<h3>Room</h3>
<p class="lang-en">
Runtime environment configuration. Each room is an
isolated instance with its own config and
credentials.
</p>
<p class="lang-es">
Configuracion del entorno. Cada room es una
instancia aislada con su propia config y
credenciales.
</p>
</article>
<article class="finding-card">
<h3>Depot</h3>
<p class="lang-en">
Data storage / provisions. JSON files, configs,
cached responses.
</p>
<p class="lang-es">
Almacenamiento de datos. Archivos JSON, configs,
respuestas cacheadas.
</p>
</article>
</div>
</section>
<section class="findings-section">
<h2>
<span class="lang-en">Available Veins</span
><span class="lang-es">Veins Disponibles</span>
</h2>
<div class="findings-grid">
<a
href="../veins/index.html"
class="finding-card"
style="text-decoration: none"
>
<h3>Google</h3>
<p class="lang-en">
Google Sheets API. OAuth authentication, read/write
spreadsheets.
</p>
<p class="lang-es">
Google Sheets API. Autenticacion OAuth,
leer/escribir hojas de calculo.
</p>
</a>
<a
href="../veins/index.html"
class="finding-card"
style="text-decoration: none"
>
<h3>Jira</h3>
<p class="lang-en">
Jira Cloud API. Query issues, projects, sprints.
</p>
<p class="lang-es">
Jira Cloud API. Consultar issues, proyectos,
sprints.
</p>
</a>
<a
href="../veins/index.html"
class="finding-card"
style="text-decoration: none"
>
<h3>Slack</h3>
<p class="lang-en">
Slack API. Channels, messages, users.
</p>
<p class="lang-es">
Slack API. Canales, mensajes, usuarios.
</p>
</a>
</div>
</section>
</main>
<footer>
<p>
<a href="../"
><span class="lang-en">← Back to index</span
><span class="lang-es">← Volver al indice</span></a
>
</p>
</footer>
</body>
</html>