pasta-scope
PASTA Stage 2: Define Technical Scope
Map the technical boundaries of the system -- architecture, protocols, entry points, and attack surface. Build data flow diagrams (DFDs) showing how data moves through the system and where trust boundaries exist.
Supported Flags
Read ../../shared/schemas/flags.md for the full flag specification. Key behaviors:
| Flag | Stage 2 Behavior |
|---|---|
--scope |
Default changed. Scans routes, API specs, Dockerfiles, IaC, and network configs. |
--depth quick |
Entry points from route definitions and API specs only. |
--depth standard |
Full entry point scan + dependency catalog + protocol identification. |
--depth deep |
Standard + infrastructure analysis (Docker, K8s, Terraform) + network boundary mapping. |
--depth expert |
Deep + complete DFD with trust levels annotated on every data flow. |
--severity |
Not applicable at this stage. |
Framework Context
Read ../../shared/frameworks/pasta.md, Stage 2 section. PASTA is SEQUENTIAL.
Stage 2 consumes Stage 1 output and feeds Stage 3.
Prerequisites
Required: Stage 1 output -- business-critical assets, compliance requirements, and risk tolerance thresholds. If unavailable, warn and proceed with assumptions.
Workflow
Step 1: Determine Scope
Parse --scope flag (default: changed). Prioritize: route files, controllers,
API gateway configs, Dockerfiles, docker-compose.yml, K8s manifests, Terraform,
nginx configs, OpenAPI/Swagger specs, GraphQL schemas.
Step 2: Enumerate Entry Points
Scan for all data ingress paths:
- HTTP/REST: Express routes, FastAPI paths, Spring
@RequestMapping, Django URLs. - GraphQL: Schemas, resolvers, mutations, subscriptions.
- WebSocket: Socket.io handlers, WS endpoints.
- Message queues: RabbitMQ, Kafka, SQS, Redis pub/sub consumers.
- File uploads: Multipart handlers, S3 presigned URLs.
- Webhooks: Incoming receivers from third-party services.
- CLI/Scheduled: Admin consoles, cron tasks, Lambda triggers, workers.
Step 3: Map External Dependencies
Catalog outbound connections: third-party APIs (payment, auth, email), databases, caches (Redis, Memcached), cloud services (S3, SQS, Pub/Sub), and package dependencies from manifest files.
Step 4: Identify Network Boundaries
- Internet-facing vs. internal services.
- Network segmentation (VPCs, security groups, firewalls).
- Container orchestration (Docker networks, K8s namespaces, service meshes).
- CDN/proxy layers (Cloudflare, nginx, API gateways, load balancers).
- Legacy/deprecated endpoints still reachable.
Step 5: Build Data Flow Diagram
Construct a textual DFD: external entities, processes, data stores, data flows with protocol labels, and trust boundary lines.
Analysis Checklist
- What are all the ways data enters and exits this system?
- Which components are internet-facing vs. internal-only?
- What third-party services does the application depend on?
- What protocols and ports are exposed?
- Are there deprecated endpoints still reachable?
- What is the deployment topology (monolith, microservices, serverless)?
- Are there admin or debug endpoints exposed in production?
- What authentication mechanisms protect each entry point?
Output Format
Stage 2 produces a Technical Scope Document with DFD. ID prefix: PASTA (e.g., PASTA-S2-001).
## PASTA Stage 2: Technical Scope
### Technology Stack
| Layer | Technology | Version |
|-------|-----------|---------|
| Language / Framework / Database / Cache / Deployment | ... | ... |
### Entry Points
| ID | Type | Path/Handler | Auth Required | Protocol |
|----|------|-------------|---------------|----------|
| EP-01 | REST API | POST /api/users | No | HTTPS |
| EP-02 | WebSocket | /ws/chat | Yes (JWT) | WSS |
### External Dependencies
| Service | Purpose | Data Exchanged | Protocol |
|---------|---------|---------------|----------|
| Stripe | Payments | Card tokens | HTTPS |
### Data Flow Diagram
User --> [API Gateway] --> [Auth] --> [App Server] --> [Database]
Trust Boundaries:
- Internet | DMZ: User to API Gateway
- DMZ | Internal: API Gateway to App Server
- App | Data: App Server to Database
### Attack Surface Summary
| Surface | Entry Points | Internet-Facing | Auth Required |
|---------|-------------|-----------------|---------------|
| REST API | N | Yes | Mixed |
Findings follow ../../shared/schemas/findings.md with:
metadata.tool:"pasta-scope",metadata.framework:"pasta",metadata.category:"Stage-2"
Next Stage
Stage 3: Application Decomposition (pasta-decompose). Pass entry points,
DFD, dependencies, and network boundaries. Stage 3 decomposes into components,
maps trust boundaries, and catalogs roles and permissions.