74 lines
4.6 KiB
PHP
74 lines
4.6 KiB
PHP
<?php
|
|
// BPMN + SOA AUTO-DISCOVERY ENGINE
|
|
// Included by architecture-autonomous.php
|
|
|
|
function discover_bpmn_soa(&$T) {
|
|
$T['bpmn_processes'] = [
|
|
['id'=>'P01','name'=>'Client Acquisition','status'=>'active','swimlanes'=>['Marketing','Sales','Delivery'],
|
|
'steps'=>[
|
|
['task'=>'Lead Generation','type'=>'service','actor'=>'WEVIA Chatbot','status'=>'automated'],
|
|
['task'=>'Lead Qualification','type'=>'service','actor'=>'Ethica HCP','status'=>'automated'],
|
|
['task'=>'Demo Booking','type'=>'user','actor'=>'Calendly','status'=>'semi-auto'],
|
|
['task'=>'Proposal','type'=>'user','actor'=>'Sales Team','status'=>'manual'],
|
|
['task'=>'Onboarding','type'=>'service','actor'=>'Arsenal','status'=>'automated'],
|
|
]],
|
|
['id'=>'P02','name'=>'AI Request Pipeline','status'=>'active','swimlanes'=>['Client','CORTEX','Providers'],
|
|
'steps'=>[
|
|
['task'=>'User Message','type'=>'start','actor'=>'Browser','status'=>'trigger'],
|
|
['task'=>'CORTEX Router','type'=>'gateway','actor'=>'weval-ia-fast.php','status'=>'automated'],
|
|
['task'=>'T0 Ollama','type'=>'service','actor'=>'Ollama :11434','status'=>'automated'],
|
|
['task'=>'T1 Free APIs','type'=>'service','actor'=>'Cerebras/Groq','status'=>'automated'],
|
|
['task'=>'RAG Enrichment','type'=>'service','actor'=>'Qdrant','status'=>'automated'],
|
|
['task'=>'Response Stream','type'=>'end','actor'=>'SSE','status'=>'automated'],
|
|
]],
|
|
['id'=>'P03','name'=>'Email Campaign','status'=>'standby','swimlanes'=>['Strategy','Arsenal','MTA'],
|
|
'steps'=>[
|
|
['task'=>'Audience Build','type'=>'user','actor'=>'Arsenal Hub','status'=>'manual'],
|
|
['task'=>'Creative Design','type'=>'service','actor'=>'Brain Engine','status'=>'automated'],
|
|
['task'=>'Send Queue','type'=>'service','actor'=>'Brain Pipeline','status'=>'standby'],
|
|
['task'=>'MTA Delivery','type'=>'service','actor'=>'PMTA/KumoMTA','status'=>'standby'],
|
|
['task'=>'Tracking','type'=>'service','actor'=>'S151','status'=>'active'],
|
|
]],
|
|
['id'=>'P04','name'=>'Quality Assurance','status'=>'active','swimlanes'=>['Scanner','Tests','Report'],
|
|
'steps'=>[
|
|
['task'=>'Cron Trigger','type'=>'start','actor'=>'*/30','status'=>'automated'],
|
|
['task'=>'L99 Master','type'=>'service','actor'=>'253+ tests','status'=>'automated'],
|
|
['task'=>'Architecture Scan','type'=>'service','actor'=>'scanner.php','status'=>'automated'],
|
|
['task'=>'Auto-Fix','type'=>'gateway','actor'=>'Reco Engine','status'=>'automated'],
|
|
['task'=>'KB Log','type'=>'end','actor'=>'PostgreSQL','status'=>'automated'],
|
|
]],
|
|
['id'=>'P05','name'=>'SSO Authentication','status'=>'active','swimlanes'=>['Browser','Nginx','Authentik'],
|
|
'steps'=>[
|
|
['task'=>'HTTPS Request','type'=>'start','actor'=>'Browser','status'=>'trigger'],
|
|
['task'=>'Cloudflare WAF','type'=>'gateway','actor'=>'Cloudflare','status'=>'automated'],
|
|
['task'=>'auth_request','type'=>'gateway','actor'=>'Nginx','status'=>'automated'],
|
|
['task'=>'Outpost Check','type'=>'service','actor'=>'Authentik :9090','status'=>'automated'],
|
|
['task'=>'Session Cookie','type'=>'end','actor'=>'.weval-consulting.com','status'=>'automated'],
|
|
]],
|
|
['id'=>'P06','name'=>'Knowledge Pipeline','status'=>'active','swimlanes'=>['Sources','Processing','Storage'],
|
|
'steps'=>[
|
|
['task'=>'Conversation Mining','type'=>'service','actor'=>'WEVIA Dream','status'=>'automated'],
|
|
['task'=>'Web Scraping','type'=>'service','actor'=>'Scrapy/SearXNG','status'=>'automated'],
|
|
['task'=>'Embedding','type'=>'service','actor'=>'Nomic-Embed','status'=>'automated'],
|
|
['task'=>'Vector Index','type'=>'end','actor'=>'Qdrant','status'=>'automated'],
|
|
]],
|
|
];
|
|
|
|
// SOA from topology nodes
|
|
$T['soa_services'] = [];
|
|
foreach ($T['nodes'] as $n) {
|
|
if (in_array($n['type'], ['docker','api','ai','vectordb','database','auth'])) {
|
|
$T['soa_services'][] = [
|
|
'name' => $n['label'], 'type' => $n['type'],
|
|
'server' => $n['server'], 'status' => $n['status'],
|
|
'group' => $n['group'], 'protocol' => 'HTTP',
|
|
'discovery' => 'auto',
|
|
];
|
|
}
|
|
}
|
|
$T['soa_stats'] = [
|
|
'total_services' => count($T['soa_services']),
|
|
'active' => count(array_filter($T['soa_services'], fn($s) => in_array($s['status'], ['active','up','healthy']))),
|
|
];
|
|
}
|