Skip to content

Key Modules

The platform is organized by product feature area. Each area maps to a route segment under app/, a set of services/, the hooks/apiHooks/ that wrap them, and a backend gRPC service defined in proto/. This page is the map from "feature" to "where it lives".

flowchart TB
    Root["/projects (default landing)"]
    Root --> Proj[Projects]
    Root --> Rep[Reports]
    Proj --> DQ[Data Quality]
    Proj --> TF[Transformations]
    Proj --> DEL[Data Delivery]
    Rep --> SCH[Scheduling]
    Root --> RPT[Reporting]
    Root --> TEAM[Teams & Members]
    Root --> KEYS[API Keys]
    Root --> LOGS[Crawler Logs]
    Root --> NOTIF[Notifications]
    Root --> ADMIN[Admin]
    ADMIN --> ACC[Accounts]
    ADMIN --> BILL[Billing]
    ADMIN --> PROX[Proxies]
    ADMIN --> RBAC[Roles & Permissions]
    ADMIN --> SVC[Services]

Customer-Facing Modules

Projects

The organizing container for a customer's scraping work. Create, list, view, transfer ownership, and run bulk operations (stop / export / delete) across projects.

  • Routes: app/projects, app/projects/[id], app/projects/create
  • Services / proto: projects.service.ts, createProject.services.ts · projects.proto

Reports

A project contains reports, each tied to a service code (a customized crawler image). Run or schedule runs, view run history, and export datasets (CSV / JSON / Parquet).

  • Routes: app/projects/[id]/reports, .../reports/[rid]
  • Services / proto: allReportsService.service.ts, export.service.ts · customer-report.proto, export.proto

Data Quality

Author, test, and manage QA rules; profile datasets; surface anomalies; and request AI-suggested rules.

  • Routes: app/quality
  • Services / proto: dataQuality.service.ts, qualityrules.service.ts · data-quality.proto, data-profiler.proto

Data Transformations

Reshape raw crawled data via transformation rules, including AI-assisted ("generative") transformations, with a test-before-apply flow.

  • Routes: app/projects/[id]/reports/[rid]/data-schema
  • Services / proto: listTransformations.service.ts, generateTransformation.service.ts · transformations.proto, transformation_query.proto

Data Delivery

Configure how datasets are delivered: email, S3, Dropbox, Box, and SFTP/FTP, with format options.

  • Routes: app/api/delivery
  • Services / proto: dataDelivery.services.ts · delivery.proto
  • See also: Integration Points

Reporting

Cross-project reporting, scheduling, automation, and sharing.

  • Routes: app/reporting
  • Proto: customer-report.proto

Teams & Members

Manage team membership and role assignment (Manager / Trusted / Viewer), and pending invites.

  • Routes: app/teams
  • Services / proto: teamss.services.ts · accounts.proto
  • See also: User Invite workflow

API Keys

Generate, rotate, and revoke API keys for programmatic access to scraped data.

  • Routes: app/api-keys
  • Services: provisionApi.service.ts

Crawler Logs

Stream real-time, pod-level crawler execution logs and download them.

  • Routes: app/projects/crawler-logs
  • Services / proto / state: crawlerLogs.service.ts · crawler-logs-service.proto · store/crawlerLogsStore.ts
  • Streamed over WebSocket — see Data Flow

Notifications & Messages

In-app notifications, email alerts, and digest subscriptions.

Internal / Admin Modules

The app/admin/* area is gated by the admin route guard (withAdminAuthentication) and authoritatively by Cerbos.

Module Route Purpose
Accounts admin/accounts User & organization management.
Billing admin/billing Usage reports and cost breakdowns.
Proxies admin/proxies, admin/proxy-dashboard Proxy configuration & health.
Roles & Permissions admin/roles-permissions RBAC configuration.
Services admin/services Microservice health/config visibility.
Crawler Categorization admin/crawler-categorization Data-type categorization of crawlers.
Email Digest admin/email-digest Automated digest configuration.
Tasks / Users admin/tasks, admin/users Operational task and user administration.
  • Proto: accounts.proto, payments.proto, proxies.proto, stats.proto, support.proto

The Proto Service Catalogue

Each backend domain the platform talks to is defined as a .proto service in proto/ and compiled to a typed client in proto-types/. The current catalogue:

accounts · ai · auth · crawldata · crawldatakv · crawldataquery · crawler-logs-service · customer-report · data-access-service · data-profiler · data-quality · delivery · events · export · metadata · notification · payments · projects · proxies · schedulerv2 · stats · support · transformation_query · transformations

Scale

There are ~69 service modules and ~100 React Query hooks. The naming is consistent: to find the code for a feature, search services/ and hooks/apiHooks/ for the domain noun (e.g. delivery, quality, transformation), and the matching .proto for its backend contract.