feat: initial scaffold of osint_db (DuckDB source-of-truth service)
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""Configuración del service osint_db.
|
||||
|
||||
Valores por defecto del PC de enmanuel; todo es sobreescribible por CLI
|
||||
(--vault, --db, --port) o construyendo un Config a mano en los tests. La
|
||||
configuración DAV (base_url, colecciones, secreto en pass) es la misma que usan
|
||||
los tools del proyecto (projects/osint/tools/sync_dav_to_osint.py).
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
# Directorio raíz de la app (padre de server/).
|
||||
APP_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
DEFAULT_VAULT = os.path.expanduser("~/Obsidian/osint")
|
||||
DEFAULT_DB = os.path.join(APP_DIR, "data", "osint.duckdb")
|
||||
DEFAULT_PORT = 8771
|
||||
|
||||
# Configuración Xandikos (espejo de projects/osint/tools/sync_dav_to_osint.py).
|
||||
DAV_BASE = "https://dav-eedeb681c4ab89ab8e444ac9.organic-machine.com"
|
||||
DAV_USER = "enmanuel"
|
||||
DAV_CONTACTS_COLLECTION = "/enmanuel/contacts/addressbook/"
|
||||
DAV_CALENDAR_HOME = "/enmanuel/calendars/"
|
||||
PASS_SECRET = "dav/xandikos-enmanuel"
|
||||
|
||||
# Carpetas del vault que mapean a tablas maestras de entidades.
|
||||
# (carpeta del vault, tipo de frontmatter, tabla destino)
|
||||
ENTITY_FOLDERS = (
|
||||
("personas", "persona", "persons"),
|
||||
("organizaciones", "organizacion", "organizations"),
|
||||
("dominios", "dominio", "domains"),
|
||||
("casos", "caso", "cases"),
|
||||
("lugares", "lugar", "places"),
|
||||
)
|
||||
|
||||
# Marker de los bloques sentinel que este service gestiona en notas del vault.
|
||||
SENTINEL_MARKER = "osintdb"
|
||||
|
||||
|
||||
@dataclass
|
||||
class Config:
|
||||
"""Configuración efectiva del service (inyectable en tests)."""
|
||||
|
||||
vault_dir: str = DEFAULT_VAULT
|
||||
db_path: str = DEFAULT_DB
|
||||
port: int = DEFAULT_PORT
|
||||
host: str = "127.0.0.1"
|
||||
dav_base: str = DAV_BASE
|
||||
dav_user: str = DAV_USER
|
||||
dav_contacts_collection: str = DAV_CONTACTS_COLLECTION
|
||||
dav_calendar_home: str = DAV_CALENDAR_HOME
|
||||
pass_secret: str = PASS_SECRET
|
||||
entity_folders: tuple = field(default=ENTITY_FOLDERS)
|
||||
Reference in New Issue
Block a user