Initial commit
This commit is contained in:
116
skills/c4model-c1/actor-identification.md
Normal file
116
skills/c4model-c1/actor-identification.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# Actor Identification Methodology
|
||||
|
||||
## Types of Actors
|
||||
|
||||
Actors are people or systems that interact with your systems.
|
||||
|
||||
### 1. User Actors (People)
|
||||
|
||||
**Questions to ask:**
|
||||
- Who uses this system?
|
||||
- What user roles exist?
|
||||
- What are the personas?
|
||||
- What permissions do they have?
|
||||
|
||||
**Common user actors:**
|
||||
- **End User / Customer** - Primary users of customer-facing systems
|
||||
- **Administrator** - System administrators, super users
|
||||
- **Support Agent** - Customer support representatives
|
||||
- **Developer** - Internal developers using APIs
|
||||
- **Manager** - Business users viewing reports
|
||||
- **Guest / Anonymous User** - Unauthenticated visitors
|
||||
|
||||
**How to identify:**
|
||||
- Look for authentication/authorization code
|
||||
- Check user role definitions in code
|
||||
- Review database user/role tables
|
||||
- Analyze permission systems
|
||||
|
||||
**Code indicators:**
|
||||
```typescript
|
||||
// User roles indicate actors
|
||||
enum UserRole {
|
||||
CUSTOMER, // → Customer actor
|
||||
ADMIN, // → Administrator actor
|
||||
SUPPORT, // → Support Agent actor
|
||||
GUEST // → Anonymous User actor
|
||||
}
|
||||
```
|
||||
|
||||
### 2. External System Actors
|
||||
|
||||
**Questions to ask:**
|
||||
- What external services are integrated?
|
||||
- What third-party APIs are called?
|
||||
- What systems are outside our control?
|
||||
- What services do we depend on?
|
||||
|
||||
**Common external system actors:**
|
||||
- **Payment Providers** - Stripe, PayPal, Square
|
||||
- **Email Services** - SendGrid, Mailgun, AWS SES
|
||||
- **SMS Services** - Twilio, Nexmo
|
||||
- **Authentication Providers** - Auth0, Okta, Firebase Auth
|
||||
- **Analytics Services** - Google Analytics, Mixpanel
|
||||
- **CDN Services** - CloudFront, Cloudflare
|
||||
- **Cloud Storage** - AWS S3, Google Cloud Storage
|
||||
- **Monitoring Services** - Datadog, New Relic, Sentry
|
||||
|
||||
**How to identify:**
|
||||
- Search for API keys in config files (.env.example)
|
||||
- Check package dependencies for SDK libraries
|
||||
- Review environment variables
|
||||
- Look for external API base URLs
|
||||
|
||||
**Example external actors:**
|
||||
```bash
|
||||
# .env.example reveals external actors:
|
||||
STRIPE_API_KEY=sk_test_... # → Stripe actor
|
||||
SENDGRID_API_KEY=SG... # → SendGrid actor
|
||||
TWILIO_ACCOUNT_SID=AC... # → Twilio actor
|
||||
GOOGLE_ANALYTICS_ID=UA-... # → Google Analytics actor
|
||||
```
|
||||
|
||||
## Actor Documentation Format
|
||||
|
||||
```json
|
||||
{
|
||||
"actors": [
|
||||
{
|
||||
"id": "customer",
|
||||
"name": "Customer",
|
||||
"type": "user",
|
||||
"description": "End user who browses products and makes purchases",
|
||||
"interacts_with": ["customer-web-app", "mobile-app"]
|
||||
},
|
||||
{
|
||||
"id": "stripe",
|
||||
"name": "Stripe Payment Gateway",
|
||||
"type": "external-actor",
|
||||
"description": "Third-party payment processing service",
|
||||
"interacts_with": ["payment-api"]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Search Commands for Actors
|
||||
|
||||
**Find user roles:**
|
||||
```bash
|
||||
grep -r "role\|Role\|USER_ROLE\|UserRole" src/
|
||||
grep -r "permissions\|Permissions" src/
|
||||
grep -r "enum.*Role\|class.*Role" src/
|
||||
```
|
||||
|
||||
**Find external integrations:**
|
||||
```bash
|
||||
cat .env.example | grep -E "API_KEY|API_URL|WEBHOOK|TOKEN"
|
||||
grep -r "stripe\|sendgrid\|twilio\|auth0" package.json
|
||||
grep -r "import.*stripe\|from.*sendgrid" src/
|
||||
```
|
||||
|
||||
**Find authentication code:**
|
||||
```bash
|
||||
grep -r "auth\|Auth\|authentication\|login" src/
|
||||
grep -r "jwt\|JWT\|oauth\|OAuth" src/
|
||||
```
|
||||
Reference in New Issue
Block a user