Files
admin e6cc719f37
CI (SIAX Cloud) / security (push) Successful in 12s
CI (SIAX Cloud) / contracts (push) Failing after 12s
CI (SIAX Cloud) / quality (push) Failing after 8s
Deploy to Coolify / deploy (push) Failing after 2s
c0py: initial scaffolding for website registry tool
2026-09-16 13:15:21 +02:00

2.7 KiB

C0PY Architecture

Översikt

C0PY är ett verktyg för att skapa fullständigt register över en hemsida ut alla aspekter. Det konsumerar en webbadress och producerar ett strukturerat register med information om sidor, struktur, innehåll, prestanda och mer.

Komponenter

┌──────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  apps/web    │────→│   apps/api       │────→│ packages/       │
│  (Next.js)   │◄────│  (Fastify/API)   │◄────│ c0py-core       │
└──────────────┘     └──────────────────┘     └─────────────────┘
                            │
                    ┌───────┴───────┐
                    │  Integrations │
                    │  (CL0UD,ST0RE│
                    │  AUD0,INF0,N0D│
                    └───────────────┘

Ytor

Yta Beskrivning
apps/api/src/routes/ REST-rutter under /v1/c0py/*
apps/api/src/services/ Tjocka tjänster, rent TS
apps/web/src/app/ Next.js App Router — registerhantering
apps/web/src/components/ Delade UI-komponenter
packages/c0py-core/ Crawling, registry-uppbyggnad, analys
packages/config/ Zod-env-validering
packages/types/ Gemensamma typer

Konsumerade kapabiliteter

  • CL0UD: Autentisering (Zitadel OIDC), RBAC, tenant-isolering
  • AUD0: Regeleveranshändelser (skrivs när tillgängligt, fail-closed annars)
  • ST0RE: Objektlagring för registerdata
  • INF0: AI-baserad innehållsanalys
  • N0D: Asynkrone crawling-jobb för stora sajter

Datamodell (initiell)

Registry
├── id: uuid
├── url: string          (målhemsadress)
├── name: string
├── createdAt: timestamp
├── updatedAt: timestamp
│
├── Page[]
│   ├── id: uuid
│   ├── registryId: uuid
│   ├── url: string
│   ├── path: string
│   ├── title: string?
│   ├── description: string?
│   ├── status: number
│   ├── contentType: string?
│   ├── discoveredAt: timestamp
│   └── analysis: JSON?
│
└── ScanRun[]
    ├── id: uuid
    ├── registryId: uuid
    ├── status: pending|running|completed|failed
    ├── startedAt: timestamp
    └── completedAt: timestamp?

Säkerhet

  • Tenant identifierad via CL0UD-session, ALDRIG från klientinput
  • Alla writes fail-closed (inget vs fel config = nek)
  • Inga hemligheter i repo