El playground es un entorno visual donde escribes y pruebas rulesets sin tener que escribir JSON a mano. Combina un mapa con un builder basado en grafo: dibujas un polígono, sueltas nodos en un canvas, los conectas y ves el verdict en la misma pantalla.Documentation Index
Fetch the complete documentation index at: https://docs-attestly.code4source.com/llms.txt
Use this file to discover all available pages before exploring further.
Vista general
El playground divide la pantalla en tres áreas:
- Mapa — dibuja o pega una geometría. Se convierte en el
$inputde cada set anclado a ella. - Canvas del builder — el ruleset visual. Cada nodo es un
set,projection,checkoverdict; las aristas representan referencias (ej.: un check apuntando a un set). - Panel — el botón Run en vivo, la vista JSON, el verdict y la evidence después de cada ejecución.
Loop de autoría
El loop típico:- Dibuja un polígono en el mapa (o pega GeoJSON).
- Elige un punto de partida — canvas vacío o un template.
- Agrega nodos desde la paleta y conéctalos.
- Haz clic en Run para evaluar contra el polígono.
- Inspecciona el verdict y la evidence por check.
- Itera.
La paleta
La paleta en la sidebar tiene los tipos de nodo que puedes soltar en el canvas:
| Nodo | Qué produce |
|---|---|
source_set | Un set anclado a un source espacial (ej.: br:icmbio:conservation-units). |
subject_set | Un set anclado a un subject register (ej.: ofac:sdn). |
setop_set | Un set construido vía union / intersection / difference de otros sets. |
projection | Un valor escalar o geométrico computado sobre un set (count, total_area_m2, …). |
check | Un predicate booleano con una severity. Alimenta el verdict. |
Editores
Cada nodo tiene un editor tipado. El editor aplica las mismas reglas que la API aplica — las configuraciones inválidas se marcan antes del run.
source_set eliges:
- El source del catálogo (auto-sugerido vía
GET /v1/sources). - El join —
intersects,dwithin,contains,within,disjoint,subject_match. - El target —
$inputu otro set del grafo. - Un filter opcional (ej.: temporal, property-equals).
check eliges:
- La severity —
critical,high,medium,low,info. - El predicate —
exists(set no-vacío) othreshold(la projection referenciada pasa una comparación).
Conectando nodos
Arrastra desde el handle de salida de un nodo al handle de entrada de otro. El builder rechaza conexiones que crearían ciclos o que no cuadran en tipo.
Run e inspección
Haz clic en Run en la topbar para evaluar el canvas contra la geometría actual del mapa. El panel se actualiza con:- El
status(ok/degraded) y eloutcome(compliant,warning,non_compliant,degraded) en la cima. - Cada check:
triggered,severity, lista de evidence. - Cada projection: valor computado.

Vista JSON
Cada edición visual sincroniza en los dos sentidos con un documento JSON. Haz clic en Show JSON para abrir el modal — copia el body para usarlo directamente conPOST /v1/evaluate, o pega un ruleset
para cargarlo en el canvas.

Templates
La sidebar ofrece puntos de partida listos cubriendo patrones comunes:| Template | Lo que muestra |
|---|---|
overlap_ratio_tiers | Checks en capas sobre razones de solapamiento (majority vs partial). |
distance_tiers | Capas de severity basadas en distancia (very close / close / far). |
distance_band | Match de features en una banda de distancia [min, max]. |
chained_sets | Un set cruzado contra otro set en vez de $input. |
dynamic_buffer_app | Buffer cuya distancia se lee de una propiedad de la feature. |
merged_hazard_zone | Projection merge unificando geometrías de un set en una capa de hazard. |
temporal_recency | Filtra features más nuevas/viejas que una ventana relativa. |
multi_join | Múltiples sources en un único ruleset. |
Cuándo usar el builder vs JSON crudo
- Builder: explorar políticas, demos a stakeholders, escribir una primera versión visualmente antes de revisarla.
- JSON crudo: editar un ruleset guardado de forma programática, code review en un PR, generación automática desde una config de alto nivel.