initial version

This commit is contained in:
2026-03-18 18:03:44 -03:00
commit 9d269e902b
136 changed files with 28175 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
# Engagement Tier Configuration
# Defines how artifact depth scales with engagement complexity
tiers:
small:
name: "Small (Rapid Innovation)"
description: "Single workload, single region, minimal compliance"
signals:
applications: "1-2"
compliance_frameworks: 0
regions: 1
integration_points: "0-2"
budget_monthly: "< $10K"
design_timeline: "< 4 weeks"
deck_slides: "6-8"
examples:
- "ADB-S + Analytics Cloud dashboard"
- "Single app migration to OKE"
- "PoC or pilot deployment"
standard:
name: "Standard (Extend Capabilities)"
description: "Multi-component architecture, moderate complexity"
signals:
applications: "3-10"
compliance_frameworks: 1
regions: "1-2"
integration_points: "3-5"
budget_monthly: "$10K-100K"
design_timeline: "4-12 weeks"
deck_slides: "10-12"
examples:
- "Oracle DB migration with HA/DR to ADB-S"
- "Multi-tier application modernization"
- "Hybrid cloud with FastConnect"
complex:
name: "Complex (Business Transformation)"
description: "Enterprise-wide transformation, multi-region, multiple compliance"
signals:
applications: "10+"
compliance_frameworks: "2+"
regions: "3+"
integration_points: "5+"
budget_monthly: "> $100K"
design_timeline: "12+ weeks"
deck_slides: "12-15"
examples:
- "Full data center migration (50+ workloads)"
- "Multi-cloud architecture with OCI primary"
- "Regulated industry platform (banking, healthcare)"
# Tier selection logic:
# If any signal is "complex" AND 2+ signals are "complex" → Complex
# If any signal is "complex" OR 3+ signals are "standard" → Standard
# Else → Small

35
config/kb-governance.yaml Normal file
View File

@@ -0,0 +1,35 @@
# =============================================================================
# KB GOVERNANCE CONFIGURATION
# =============================================================================
#
# Controls freshness tracking, confidence decay, review cadence, and
# contribution requirements for all KB files.
#
# Referenced by: tools/kb_linter.py, tools/kb_cli.py
# =============================================================================
---
contribution:
required_fields: [name, team, date, confidence]
optional_fields: [client, context]
confidence_levels: [validated, observed, reported, inferred]
freshness:
warning_days: 180
stale_days: 365
confidence_decay:
validated: { fresh: 180, stale: 365, expired: 730 }
observed: { fresh: 120, stale: 270, expired: 540 }
reported: { fresh: 90, stale: 180, expired: 365 }
inferred: { fresh: 90, stale: 180, expired: 365 }
review_triggers:
- event: "Oracle database version release"
action: "Review all feature matrix entries. Mark untested. Validate within 14 days."
- event: "Oracle pricing change"
action: "Update kb/pricing/ files. Verify cost calculator accuracy."
- event: "After customer engagement"
action: "Run After-Engagement Review (AER). Add findings and KB updates."
- event: "Quarterly"
action: "Run kb_linter.py. Refresh stale files. Review open findings."

40
config/kb-owners.yaml Normal file
View File

@@ -0,0 +1,40 @@
# =============================================================================
# KB DOMAIN OWNERSHIP
# =============================================================================
#
# Each KB area has an owner responsible for quality and freshness.
# The owner doesn't write everything — they ensure content is reviewed
# and up to date on the specified cadence.
#
# Referenced by: tools/kb_linter.py, tools/kb_cli.py
# =============================================================================
---
domains:
- area: "kb/services/"
owner: { name: "Diego Cabrera", team: "Field Architecture" }
review_cadence: "quarterly"
- area: "kb/patterns/"
owner: { name: "Diego Cabrera", team: "Field Architecture" }
review_cadence: "quarterly"
- area: "kb/compatibility/"
owner: { name: "TBD", team: "Database Specialists" }
review_cadence: "on Oracle version release + quarterly"
- area: "kb/pricing/"
owner: { name: "TBD", team: "Solution Engineering" }
review_cadence: "monthly (pricing changes frequently)"
- area: "kb/competitive/"
owner: { name: "TBD", team: "Competitive Intelligence" }
review_cadence: "quarterly + on competitor announcements"
- area: "kb/field-findings/"
owner: { name: "All", team: "Everyone contributes" }
review_cadence: "continuous"
- area: "kb/well-architected/"
owner: { name: "TBD", team: "Cloud Architecture" }
review_cadence: "on Oracle WA Framework updates"

56
config/kb-tags.yaml Normal file
View File

@@ -0,0 +1,56 @@
# =============================================================================
# KB TAG TAXONOMY
# =============================================================================
#
# Standardized tags for consistent search and categorization across all KB files.
# The CLI validates tags against this taxonomy and suggests corrections for
# unknown tags using fuzzy matching.
#
# Referenced by: tools/findings_cli.py, tools/kb_linter.py
# =============================================================================
---
taxonomy:
products:
- adb-s
- adb-d
- dep
- exacs
- dbcs
- oke
- functions
- vcn
- drg
- fastconnect
- dms
- goldengate
- data-safe
- vault
versions:
- 19c
- 21c
- 23ai
- 26ai
categories:
- ha
- dr
- security
- networking
- performance
- migration
- cost
- sizing
- compliance
severity_tags:
- blocker
- workaround-available
- cosmetic
lifecycle:
- design
- migration
- day2
- decommission

View File

@@ -0,0 +1,160 @@
# Oracle FY26 POTX Template — Layout Mapping
# Source: templates/Oracle_PPT-template_FY26.potx (104 layouts)
# Slide size: 13.333 x 7.500 inches (16:9 widescreen)
#
# NOTE: .potx requires content-type patch to load with python-pptx.
# The deck generator handles this automatically.
#
# Each layout has Dark/Light variants. Convention:
# - Cover slides: Dark
# - Content slides: Light
# - Section dividers: Dark
# - Closing/CTA slides: Dark
template_file: templates/Oracle_PPT-template_FY26.pptx
slide_size:
width_inches: 13.333
height_inches: 7.500
# ── Layout Index Reference ─────────────────────────────────────────
layouts:
# --- Cover / Title ---
cover_pillar_dark: { index: 0, name: "Dark - Title_Pillar" }
cover_pillar_light: { index: 1, name: "Light - Title_Pillar" }
cover_2_dark: { index: 2, name: "Dark - Title_2" }
cover_2_light: { index: 3, name: "Light - Title_2" }
cover_full_image: { index: 4, name: "Title-full-image" }
# --- Section Dividers ---
divider_image_light: { index: 14, name: "Light - Divider_Image" }
divider_image_dark: { index: 15, name: "Dark- Divider_Image" }
divider_light: { index: 16, name: "Light - Divider" }
divider_dark: { index: 17, name: "Dark - Divider" }
# --- Impact / Statement ---
impact_dark: { index: 26, name: "Dark - Impact Statement" }
impact_light: { index: 27, name: "Light - Impact Statement" }
# --- Quote ---
quote_data_dark: { index: 28, name: "Dark - Quote with Data Texture Background" }
quote_data_light: { index: 29, name: "Light - Quote with Data Texture Background" }
# --- Single Metric ---
metric_dark: { index: 32, name: "Dark - Single metric" }
metric_light: { index: 33, name: "Light - Single metric" }
# --- Agenda / Table ---
agenda_dark: { index: 45, name: "Dark - Agenda Table" }
agenda_light: { index: 46, name: "Light - Agenda Table" }
# --- Multi Statement (3 blocks) ---
multi_statement_dark: { index: 47, name: "Multi Statement Dark" }
multi_statement_light: { index: 48, name: "Multi Statement Light" }
# --- 2 Column ---
two_col_light: { index: 66, name: "Light - Title/Subtitle 2 Column" }
two_col_dark: { index: 67, name: "Dark - Title/Subtitle 2 Column" }
# --- Content + Illustration (half image) ---
content_illust_light: { index: 78, name: "Content + Illustration_Light" }
content_illust_dark: { index: 79, name: "Content + Illustration_Dark" }
# --- Icons with text (3 or 4) ---
three_icons_light: { index: 80, name: "Light - 3 Icons, Subhead and text" }
three_icons_dark: { index: 81, name: "Dark - 3 Icons, Subhead and text" }
four_icons_light: { index: 82, name: "Light - 4 Icons, Subhead and text" }
four_icons_dark: { index: 83, name: "Dark - 4 Icons, Subhead and text" }
# --- Blank ---
blank_dark: { index: 84, name: "Dark - Blank" }
blank_light: { index: 85, name: "Light - Blank" }
# --- Split Content ---
split_dark: { index: 86, name: "Dark - Split content with line" }
split_light: { index: 87, name: "Light - Split content with line" }
# --- Content + Photo ---
content_photo_light: { index: 72, name: "Light - Title, Content and 1/3 Photo" }
content_photo_dark: { index: 73, name: "Dark - Title, Content and 1/3 Photo" }
# --- Safe Harbor ---
safe_harbor_dark: { index: 95, name: "Dark - Safe harbor - short" }
safe_harbor_light: { index: 96, name: "Light - Safe harbor - short" }
# ── Deck Type → Slide Mapping ──────────────────────────────────────
deck_types:
business_case:
description: "Business case for customer internal approval (CxO audience)"
slides:
- slide: cover
layout: cover_pillar_dark
content: "Customer Name — Business Case for OCI Migration"
- slide: executive_summary
layout: impact_light
content: "1-sentence bold statement of the opportunity"
- slide: business_drivers
layout: multi_statement_light
content: "3 key drivers: Why now, Cost of inaction, Strategic imperative"
- slide: tco_comparison
layout: two_col_light
content: "Current State vs OCI — 3-year TCO side by side"
- slide: roi_headline
layout: metric_light
content: "Key ROI number (e.g., '47% cost reduction over 3 years')"
- slide: value_drivers
layout: four_icons_light
content: "4 value categories: Cost, Risk, Agility, Innovation"
- slide: risk_assessment
layout: two_col_light
content: "Migration risks vs Do-nothing risks"
- slide: roadmap
layout: blank_light
content: "Implementation phases with timeline (custom shapes)"
- slide: recommendation
layout: impact_dark
content: "Clear ask: commitment amount, next steps"
- slide: safe_harbor
layout: safe_harbor_light
content: "Oracle safe harbor statement"
proposal:
description: "Technical architecture proposal (SA/technical audience)"
slides:
- slide: cover
layout: cover_pillar_dark
content: "Customer Name — OCI Architecture Proposal"
- slide: agenda
layout: agenda_light
content: "Agenda items"
- slide: executive_summary
layout: impact_light
content: "Value hypothesis statement"
- slide: current_state
layout: two_col_light
content: "Current architecture vs target"
- slide: architecture
layout: blank_light
content: "Architecture diagram (inserted as image)"
- slide: service_details
layout: content_illust_light
content: "Key services with descriptions"
- slide: environment_catalogue
layout: blank_light
content: "Environment matrix table (Prod/PreProd/Dev/DR)"
- slide: cost_estimate
layout: two_col_light
content: "PAYG vs BYOL, monthly breakdown"
- slide: wa_scorecard
layout: blank_light
content: "Well-Architected review results table"
- slide: operations_raci
layout: blank_light
content: "RACI matrix for operational model"
- slide: roadmap
layout: blank_light
content: "Migration phases with timeline"
- slide: next_steps
layout: impact_dark
content: "Next steps and ask"

218
config/output-formats.yaml Normal file
View File

@@ -0,0 +1,218 @@
# Output Format Configuration
# Defines the available output types and their default settings
output_selection:
description: |
The architect can specify output format when requesting deliverables:
deck ← default, just the slide deck
deck + drawio ← deck + editable diagram
deck + doc ← deck + detailed technical document
deck + xlsx ← deck + detailed cost spreadsheet
deck + pdf ← deck + customer-facing PDF
full ← everything: deck + drawio + doc + xlsx + pdf
doc only ← technical document without deck
pdf ← customer-facing PDF only (branded, no internal refs)
If not specified, produce "deck" only.
deliver ← handover + go-live checklist + success criteria
default: "deck"
formats:
deck:
extension: ".pptx"
generator: "tools/oci_deck_gen.py"
description: "10-12 slide architecture proposal"
drawio:
extension: ".drawio"
generator: "tools/oci_diagram_gen.py"
description: "Editable architecture diagram (draw.io)"
doc:
extension: ".docx"
generator: "tools/oci_doc_gen.py"
description: "Detailed technical document (15-25 pages)"
sections:
- number: 1
title: "Executive Summary"
tiers: [small, standard, complex]
content: "1-page summary: business driver, proposed solution, key outcomes"
- number: 2
title: "Current State"
tiers: [standard, complex]
content: "People, process, technology assessment from Workload Profile"
- number: 3
title: "Solution Architecture"
tiers: [small, standard, complex]
content: "Full architecture description, service rationale, topology diagram"
- number: 4
title: "Architecture Decision Records (ADRs)"
tiers: [standard, complex]
content: "Each key design decision with context, options considered, and rationale"
- number: 5
title: "High Availability & Disaster Recovery"
tiers: [small, standard, complex]
content: "HA/DR topology, RTO/RPO targets, failover procedures"
- number: 6
title: "Security & Compliance"
tiers: [small, standard, complex]
content: "Security controls, identity model, compliance framework mapping"
- number: 7
title: "Cost Estimate"
tiers: [small, standard, complex]
content: "Detailed cost breakdown with assumptions, PAYG vs BYOL, discount scenarios"
- number: 8
title: "Migration Plan"
tiers: [standard, complex]
content: "Migration strategy per component, tooling, phased plan, rollback"
- number: 9
title: "Operations Model"
tiers: [standard, complex]
content: "Day-2 operations: monitoring, patching, backup, incident response, RACI"
- number: 10
title: "Well-Architected Scorecard"
tiers: [standard, complex]
content: |
5-pillar WA assessment (Operational Excellence, Security, Reliability,
Performance, Cost Optimization). Standard tier: score per pillar + top
recommendations. Complex tier: full findings, gap analysis, and remediation roadmap.
deck_equivalent: "slide 12 (summary) — doc section is the full underlying report"
note: "Small tier: traffic-light summary stays in deck only, not expanded in doc"
- number: 11
title: "Risk Register"
tiers: [standard, complex]
content: "Full risk table with likelihood, impact, severity, owner, mitigation"
- number: 12
title: "Next Steps"
tiers: [small, standard, complex]
content: "3-5 SMART actions with owners and dates"
xlsx:
extension: ".xlsx"
generator: "tools/oci_cost_gen.py"
description: "Detailed cost spreadsheet with tabs"
pdf:
extension: ".pdf"
generator: "tools/oci_pdf_gen.py"
description: "Customer-facing PDF (branded, no internal KB references)"
deliver:
extension: ".yaml"
generator: "manual"
description: "DELIVER phase artifacts: handover, go-live checklist, success criteria"
artifacts:
- "templates/handover-document.yaml"
- "templates/go-live-checklist.yaml"
- "templates/success-criteria.yaml"
# Slide Deck Structure (10-12 slides)
deck_structure:
slides:
- number: 1
type: title
content: "Customer name, project, date, architect"
style: "Dark background (#312D2A), white text"
- number: 2
type: value_story
content: "Business driver, value hypothesis, desired outcomes (SMART)"
style: "Light background, left-aligned"
- number: 3
type: architecture_diagram
content: "Full architecture diagram (85% of slide)"
style: "White background, diagram fills slide"
- number: 4
type: decisions
content: "4-6 key decisions in two-column table"
style: "Clean table, alternating row shading"
- number: 5
type: ha_dr
content: "HA/DR topology + RTO/RPO table"
style: "Split layout: diagram left, table right"
- number: 6
type: security
content: "Compliance checkmarks, security controls grid"
style: "Icon grid, green checkmarks"
- number: 7
type: cost
content: "Summary table: PAYG vs BYOL, monthly/annual"
style: "Clean table, bold totals, assumptions below"
- number: 8
type: cost_comparison
optional: true
content: "Side-by-side: current vs OCI, or OCI vs AWS"
style: "Chart or comparison table"
- number: 9
type: migration
content: "Phased timeline, tools, downtime approach"
style: "Timeline visual, colored phases"
- number: 10
type: operations_summary
content: "Monitoring, patching, incident response, ops model highlights"
style: "Icon grid, clean layout"
- number: 11
type: risks
content: "Top 5-6 risks with severity and mitigation"
style: "Table with color-coded severity"
- number: 12
type: scorecard
content: "5-pillar WA scorecard + recommendations"
style: "Horizontal bars, traffic-light colors"
- number: 13
type: next_steps
content: "3-5 concrete SMART next steps with dates"
style: "Numbered list, forward-looking"
# Design Standards
design_standards:
colors:
background: "#FFFFFF"
dark_background: "#312D2A"
primary_accent: "#2D5967"
secondary_accent: "#AA643B"
tertiary_accent: "#804998"
text: "#312D2A"
success: "#5E9624"
warning: "#AE562C"
error: "#C74634"
table_alt_row: "#F5F4F2"
typography:
font: "Segoe UI"
titles: "24-28pt, bold, #312D2A"
subtitles: "16-18pt, regular, #70665E"
body: "12-14pt, regular, #312D2A"
table_headers: "11pt, bold, white on #2D5967"
table_body: "10-11pt, regular, #312D2A"
footnotes: "8-9pt, italic, #70665E"
layout:
margins: "0.5 inches all sides"
title_position: "top-left, consistent"
content_area: "below title bar, 85% of slide height"
footer: "slide number bottom-right"
rule: "No gradients, clip art, or stock photos"

View File

@@ -0,0 +1,206 @@
# Service → Category/Color Mapping
# Used by diagram generator and for consistent grouping across outputs
# last_verified: 2025-09-11
categories:
compute:
color: "#2D5967"
label: "Compute"
services:
- compute
- vm
- bare_metal
- gpu
- secure_desktops
- batch
containers:
color: "#2D5967"
label: "Containers & Serverless"
services:
- oke
- container_instances
- functions
networking:
color: "#2D5967"
label: "Networking"
services:
# Load Balancing
- load_balancer
- flexible_lb
- network_lb
# Gateways
- igw
- internet_gateway
- nat_gateway
- natgw
- service_gateway
- sgw
- drg
- dynamic_routing_gateway
# Connectivity
- fastconnect
- vpn
# DNS
- dns
- traffic_management
security:
color: "#2D5967"
label: "Security"
services:
- waf
- bastion
- network_firewall
- cloud_guard
- data_safe
- vault
- security_zone
- vulnerability_scanning
- certificates
- access_governance
storage:
color: "#2D5967"
label: "Storage"
services:
- object_storage
- block_storage
- file_storage
database:
color: "#AA643B"
label: "Database"
services:
# Oracle
- adb
- adb_s
- adb_d
- autonomous_db
- autonomous_json
- atp
- adw
- dbcs
- db_system
- exadata
- exacs
- exadata_exascale
- exadata_c_at_c
- timesten
# Open Source
- mysql
- mysql_heatwave
- postgresql
- opensearch
- nosql
- cache
- redis
# Replication & Management
- goldengate
- data_catalog
- database_migration
- database_autonomous_recovery
integration:
color: "#804998"
label: "Integration"
services:
- streaming
- kafka
- queue
- oci_queue
- oic
- integration_cloud
- api_gateway
- apigw
- api_management
- data_integration
- data_integrator
- service_connector_hub
- soa_suite
ai_ml:
color: "#1A8A72"
label: "AI & Machine Learning"
services:
- generative_ai
- generative_ai_agents
- data_science
- anomaly_detection
- document_understanding
- language
- vision
- speech
- digital_assistant
analytics:
color: "#1A8A72"
label: "Analytics & Data"
services:
- oracle_analytics_cloud
- essbase
- big_data_service
- data_flow
- ai_data_platform
observability:
color: "#2D5967"
label: "Observability"
services:
- monitoring
- logging
- logging_analytics
- apm
- db_management
- ops_insights
- notifications
- events
- email_delivery
- full_stack_dr
- fleet_app_management
- os_management
- os_management_hub
- java_management
- resource_analytics
- resource_manager
developer:
color: "#2D5967"
label: "Developer Services"
services:
- apex
- visual_builder
- devops
- blockchain
- iot
- media_flow
- media_streams
- tuxedo
- webcenter
hybrid:
color: "#2D5967"
label: "Hybrid Cloud"
services:
- vmware_solution
- compute_cloud_at_customer
- managed_mac
- roving_edge
dormant:
color: "#DFDCD8"
label: "Dormant/Standby"
border_color: "#9E9892"
text_color: "#70665E"
font_style: "italic"
services:
- dormant
- standby
legacy:
color: "#70665E"
label: "Legacy/External"
services:
- legacy
- external

View File

@@ -0,0 +1,475 @@
# Workload Profile Schema
# Defines all fields, types, defaults, and descriptions for the workload profile
schema:
version: "1.1"
description: "Schema for OCI Deal Accelerator Workload Profile"
fields:
engagement:
customer_name:
type: string
required: true
description: "Customer organization name"
industry:
type: enum
values: [financial_services, healthcare, retail, manufacturing, public_sector, technology, telecommunications, energy, education, other]
required: true
description: "Customer industry vertical"
decision_timeline:
type: string
required: false
description: "Target decision date or timeline (e.g., 'Q3 2026', '6 months')"
competitive_situation:
type: enum
values: [aws_incumbent, azure_incumbent, gcp_incumbent, on_prem_only, multi_cloud, no_competitor]
required: false
default: "on_prem_only"
description: "Current cloud/competitive landscape"
current_state:
databases:
type: list
required: false
default: []
item_schema:
name:
type: string
required: true
description: "Database identifier or application name"
engine:
type: enum
values: [oracle, mysql, postgresql, sql_server, mongodb, dynamodb, cassandra, redis, elasticsearch, other]
required: true
version:
type: string
required: false
description: "Database version (e.g., '19c', '21c', '8.0')"
size_gb:
type: integer
required: true
description: "Current data size in GB"
type:
type: enum
values: [OLTP, OLAP, mixed]
required: true
default: "OLTP"
current_platform:
type: enum
values: [on_prem, aws, azure, gcp, other_cloud]
required: true
ha_current:
type: string
required: false
description: "Current HA setup (e.g., 'RAC 2-node', 'Always On AG', 'none')"
replication:
type: string
required: false
description: "Current replication (e.g., 'Data Guard', 'GoldenGate', 'none')"
connections_peak:
type: integer
required: false
description: "Peak concurrent database connections"
cpu_metrics:
type: object
required: false
fields:
avg_pct:
type: float
description: "Average CPU utilization percentage"
p95_pct:
type: float
description: "P95 CPU utilization percentage"
vcpus:
type: integer
description: "Number of vCPUs on current platform"
storage_metrics:
type: object
required: false
fields:
iops_avg:
type: integer
description: "Average IOPS"
iops_peak:
type: integer
description: "Peak IOPS"
throughput_mbps:
type: float
description: "Storage throughput in MB/s"
notable_features:
type: list
item_type: enum
values: [partitioning, TDE, VPD, advanced_security, label_security, spatial, graph, text, APEX, DBMS_SCHEDULER, db_links, UTL_FILE, UTL_HTTP, external_tables, directory_objects, edition_based_redefinition, flashback, blockchain_tables, RAC, advanced_compression, in_memory]
required: false
default: []
description: "Oracle features in active use — affects service selection and compatibility"
tier:
type: enum
values: [platinum, gold, silver, bronze]
required: false
description: "Service tier assignment (Platinum/Gold/Silver/Bronze). Auto-assigned from SLA and compliance requirements using kb/patterns/service-tiering.yaml rules, then confirmed by architect."
compute:
type: list
required: false
default: []
item_schema:
name:
type: string
required: true
purpose:
type: string
required: false
description: "What this compute serves (e.g., 'WebLogic app servers')"
os:
type: string
required: false
description: "Operating system (e.g., 'Oracle Linux 8', 'RHEL 9')"
vcpus:
type: integer
required: false
memory_gb:
type: float
required: false
current_platform:
type: enum
values: [on_prem, aws, azure, gcp, other_cloud]
required: true
scaling_pattern:
type: enum
values: [steady, daily_peaks, seasonal, unpredictable]
required: false
default: "steady"
middleware:
type: list
required: false
default: []
item_schema:
name:
type: string
required: true
type:
type: enum
values: [WebLogic, Tomcat, WildFly, IIS, Node.js, other]
required: true
clustering:
type: string
required: false
description: "Clustering configuration (e.g., 'Active-Active 4 nodes')"
messaging_and_eventing:
type: list
required: false
default: []
item_schema:
name:
type: string
required: true
type:
type: enum
values: [Kafka, RabbitMQ, SQS, MQ_Series, Oracle_AQ, other]
required: true
throughput_msgs_sec:
type: integer
required: false
description: "Peak message throughput in messages/second"
pattern:
type: enum
values: [pub_sub, point_to_point, streaming, event_driven]
required: false
default: "pub_sub"
storage:
type: list
required: false
default: []
item_schema:
name:
type: string
required: true
type:
type: enum
values: [NFS, block, object, archive]
required: true
size_tb:
type: float
required: false
access_pattern:
type: enum
values: [frequent, infrequent, archive]
required: false
default: "frequent"
networking:
type: object
required: false
fields:
connectivity:
type: enum
values: [internet, VPN, dedicated, hybrid]
required: false
default: "internet"
bandwidth_gbps:
type: float
required: false
latency_requirement_ms:
type: float
required: false
description: "Max acceptable latency in milliseconds"
regions_needed:
type: list
item_type: string
required: false
default: []
on_prem_integration:
type: boolean
required: false
default: false
identity_and_security:
type: object
required: false
fields:
idp:
type: enum
values: [AD, Okta, SAML, OCI_IAM, other]
required: false
default: "OCI_IAM"
compliance:
type: list
item_type: enum
values: [PCI-DSS, HIPAA, SOC2, GDPR, FedRAMP, ISO27001]
required: false
default: []
encryption_requirements:
type: string
required: false
description: "Encryption requirements beyond default TDE (e.g., 'customer-managed keys via Vault')"
vpd_rls:
type: boolean
required: false
default: false
description: "Virtual Private Database or Row-Level Security in use"
data_masking:
type: boolean
required: false
default: false
audit_requirements:
type: string
required: false
description: "Audit requirements (e.g., 'SOC2 Type II annual', 'PCI QSA quarterly')"
nosql_and_other_data:
type: list
required: false
default: []
item_schema:
name:
type: string
required: true
type:
type: enum
values: [MongoDB, DynamoDB, Cassandra, Redis, Elasticsearch, other]
required: true
size_gb:
type: integer
required: false
access_pattern:
type: enum
values: [high_throughput, low_latency_cache, search, analytics]
required: false
integration:
type: list
required: false
default: []
item_schema:
name:
type: string
required: true
type:
type: enum
values: [API_Gateway, ESB, ETL, CDC, file_transfer, iPaaS]
required: true
tool:
type: string
required: false
description: "Specific tool (e.g., 'MuleSoft', 'Informatica', 'GoldenGate')"
requirements:
availability:
rto_hours:
type: float
required: true
default: 1.0
description: "Recovery Time Objective in hours"
rpo_hours:
type: float
required: true
default: 0.25
description: "Recovery Point Objective in hours"
sla_target:
type: string
required: true
default: "99.95%"
description: "Target availability SLA"
performance:
response_time_p95_ms:
type: integer
required: false
description: "P95 response time target in milliseconds"
throughput_tps:
type: integer
required: false
description: "Target transactions per second"
concurrent_users:
type: integer
required: false
description: "Peak concurrent users"
scalability:
growth_annual_pct:
type: float
required: false
default: 15
description: "Expected annual growth percentage"
peak_multiplier:
type: float
required: false
default: 1.5
description: "Peak load as multiplier of baseline (e.g., 3.0 for Black Friday)"
scaling_speed:
type: enum
values: [immediate, minutes, hours]
required: false
default: "minutes"
description: "How fast scaling needs to respond"
migration:
downtime_tolerance:
type: string
required: false
default: "4 hours"
description: "Acceptable migration downtime window"
migration_timeline:
type: string
required: false
description: "Target migration timeline (e.g., '6 months')"
parallel_run_needed:
type: boolean
required: false
default: false
description: "Whether old and new systems must run in parallel during cutover"
# --- People & Process (ECAL Current State expansion) ---
people:
team_size:
type: integer
required: false
description: "Total IT team size relevant to the engagement"
roles:
type: list
item_type: string
required: false
default: []
description: "Team roles (e.g., ['dba', 'cloud_engineer', 'devops', 'security', 'network'])"
skill_gaps:
type: list
item_type: string
required: false
default: []
description: "Skills the team lacks for the proposed solution (e.g., ['kubernetes', 'terraform', 'oci_console'])"
managed_services_preference:
type: enum
values: [self_managed, co_managed, fully_managed]
required: false
default: "co_managed"
description: "How much operational responsibility the customer wants to retain"
change_readiness:
type: enum
values: [resistant, cautious, open, eager]
required: false
default: "cautious"
description: "Organizational readiness for change"
process:
deployment_process:
type: enum
values: [manual, scripted, ci_cd_basic, ci_cd_advanced, gitops]
required: false
default: "manual"
description: "Current deployment maturity"
change_management:
type: enum
values: [none, informal, cab_based, automated]
required: false
default: "informal"
description: "Change approval process"
incident_response:
type: enum
values: [none, ad_hoc, on_call_rotation, noc_24x7, outsourced]
required: false
default: "ad_hoc"
description: "Current incident response model"
backup_testing_frequency:
type: enum
values: [never, annually, quarterly, monthly]
required: false
default: "never"
description: "How often backup/recovery is tested"
decision_drivers:
primary:
type: enum
values: [cost_reduction, modernization, performance, compliance, hardware_eol, contract_expiry, consolidation]
required: false
description: "Primary motivation for the engagement"
budget_sensitivity:
type: enum
values: [low, medium, high]
required: false
default: "medium"
licensing:
type: enum
values: [BYOL, new_licenses, ULA, reduce_oracle_footprint]
required: false
default: "new_licenses"
description: "Oracle licensing strategy"
team_skills:
type: list
item_type: string
required: false
default: []
description: "Team's existing skills (e.g., ['terraform', 'kubernetes', 'oracle_dba'])"
political_constraints:
type: string
required: false
description: "Non-technical constraints (e.g., 'board wants results by Q3', 'CTO prefers AWS')"
# Derived flags — auto-computed from the profile, not user-entered
derived_flags:
description: "Boolean flags computed from the workload profile for use by the WA validation engine"
flags:
- name: has_databases
computed_from: "any entry in current_state.databases[]"
- name: has_autonomous_database
computed_from: "architecture includes ADB-S or ADB-D"
- name: has_production_databases
computed_from: "has_databases AND criticality in [mission_critical, business_critical]"
- name: has_compute_instances
computed_from: "architecture includes VM, BM, or OKE"
- name: has_production_workloads
computed_from: "any application with criticality in [mission_critical, business_critical]"
- name: has_internet_facing_services
computed_from: "architecture includes public subnet with LB or WAF"
- name: has_fastconnect
computed_from: "connectivity in [dedicated, hybrid]"
- name: has_variable_workloads
computed_from: "any compute with scaling_pattern != 'steady'"
- name: requires_dr
computed_from: "requirements.availability.rto_hours < 4 or explicit DR requirement"
- name: enterprise_customer
computed_from: "compliance list is not empty OR team has > 3 members"
- name: has_oracle_licensed_services
computed_from: "licensing in [BYOL, ULA]"
- name: distributed_cloud_applicable
computed_from: "identity_and_security.compliance includes data residency or sovereign requirements"