559 lines
50 KiB
Markdown
559 lines
50 KiB
Markdown
# ACI JIRA AI Fixer - Admin Portal
|
||
|
||
**Version:** 1.0
|
||
**Date:** 2026-02-18
|
||
**Classification:** Internal - Product Vision
|
||
|
||
---
|
||
|
||
## 1. Overview
|
||
|
||
The ACI JIRA AI Fixer Admin Portal is a modern, intuitive web interface that allows managing all system configurations without the need to modify code or configuration files manually.
|
||
|
||
### 1.1 Objectives
|
||
|
||
- **Zero code** for configuration
|
||
- **Intuitive interface** for medium/large enterprises
|
||
- **Multi-tenant** to support multiple teams
|
||
- **Complete auditing** of all actions
|
||
- **Integrated SSO** with corporate providers
|
||
|
||
---
|
||
|
||
## 2. Portal Screens
|
||
|
||
### 2.1 Main Dashboard
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ 🤖 JIRA AI Fixer admin@aci.com ⚙️ 🔔 │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||
│ │Dashboard│ │ Issues │ │ Code │ │ Config │ │ Logs │ │
|
||
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ 📊 DASHBOARD │ │
|
||
│ │ │ │
|
||
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
|
||
│ │ │ 12 │ │ 78% │ │ 2.3min │ │ │
|
||
│ │ │ Issues/month │ │ Success Rate │ │ Avg Time │ │ │
|
||
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ 📈 Last 30 days │ │
|
||
│ │ ████████████████████░░░░░░ 78% fixes accepted │ │
|
||
│ │ │ │
|
||
│ │ ┌─ Recent Activity ───────────────────────────────────────────┐ │ │
|
||
│ │ │ ✅ SUPPORT-4521 - Fix accepted 2 hours ago │ │ │
|
||
│ │ │ ⏳ SUPPORT-4519 - Awaiting review 5 hours ago │ │ │
|
||
│ │ │ ❌ SUPPORT-4515 - Fix rejected 1 day ago │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**Displayed metrics:**
|
||
- Issues processed (day/week/month)
|
||
- Success rate (accepted vs rejected fixes)
|
||
- Average analysis time
|
||
- Trend chart
|
||
- Recent activity
|
||
|
||
---
|
||
|
||
### 2.2 Settings - Integrations
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ ⚙️ SETTINGS > Integrations │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─ JIRA ────────────────────────────────────────────────────────────────┐ │
|
||
│ │ ✅ Connected │ │
|
||
│ │ │ │
|
||
│ │ Server URL │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ https://gojira.tsacorp.com │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ API Token │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ •••••••••••••••••••••••••••••••• 👁️ │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ Webhook URL (copy and configure in JIRA) │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ https://ai-fixer.aci.com/api/webhook/jira 📋 │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ Monitored Projects │ │
|
||
│ │ ☑️ ACQ - Acquirer ☑️ ICG - Interchange ☐ CORE - Core System │ │
|
||
│ │ │ │
|
||
│ │ [ 🔄 Test Connection ] │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Bitbucket ───────────────────────────────────────────────────────────┐ │
|
||
│ │ ✅ Connected │ │
|
||
│ │ │ │
|
||
│ │ Server URL │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ https://bitbucket.tsacorp.com │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ Access Token │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ •••••••••••••••••••••••••••••••• 👁️ │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ [ 🔄 Test Connection ] │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ LLM Provider ────────────────────────────────────────────────────────┐ │
|
||
│ │ ✅ Azure OpenAI │ │
|
||
│ │ │ │
|
||
│ │ Provider │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ Azure OpenAI ▼ │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ Options: Azure OpenAI | OpenAI | OpenRouter (Free) | Self-hosted │ │
|
||
│ │ │ │
|
||
│ │ Endpoint │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ https://aci-openai.openai.azure.com │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ API Key │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ •••••••••••••••••••••••••••••••• 👁️ │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ Model │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ gpt-4o ▼ │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ [ 🔄 Test Connection ] │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Embeddings ──────────────────────────────────────────────────────────┐ │
|
||
│ │ ✅ Self-hosted │ │
|
||
│ │ │ │
|
||
│ │ Provider │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ Self-hosted (MiniLM-L6) ▼ │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ Options: Self-hosted | Azure OpenAI | OpenAI │ │
|
||
│ │ │ │
|
||
│ │ ℹ️ For production, we recommend Azure OpenAI for compliance. │ │
|
||
│ │ │ │
|
||
│ │ [ 🔄 Test Connection ] │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ [ 💾 Save All ] │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
### 2.3 Repository Management
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ 📁 REPOSITORIES [ + Add New ] │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌───────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ 📦 ACQ-MF-safra-fork [ ⚙️ ] [ 🗑️ ]│ │
|
||
│ │ │ │
|
||
│ │ URL: bitbucket.tsacorp.com/projects/ACQ/repos/ACQ-MF-safra-fork │ │
|
||
│ │ │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ Status │ ✅ Indexed │ │ │
|
||
│ │ │ Files │ 2,847 files indexed │ │ │
|
||
│ │ │ Last Sync │ 02/18/2026 11:30 │ │ │
|
||
│ │ │ AI Fork │ ACQ-MF-safra-ai ✅ │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ Detected languages: │ │
|
||
│ │ ████████████████████░░░░░░░░░░ COBOL 68% │ │
|
||
│ │ ██████░░░░░░░░░░░░░░░░░░░░░░░░ SQL 22% │ │
|
||
│ │ ███░░░░░░░░░░░░░░░░░░░░░░░░░░░ JCL 10% │ │
|
||
│ │ │ │
|
||
│ │ [ 🔄 Re-index Now ] [ 📊 View Details ] [ ⏰ Schedule Sync ] │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌───────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ 📦 ICG-MF-safra-fork [ ⚙️ ] [ 🗑️ ]│ │
|
||
│ │ │ │
|
||
│ │ URL: bitbucket.tsacorp.com/projects/ICG/repos/ICG-MF-safra-fork │ │
|
||
│ │ │ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ Status │ ✅ Indexed │ │ │
|
||
│ │ │ Files │ 1,923 files indexed │ │ │
|
||
│ │ │ Last Sync │ 02/18/2026 11:30 │ │ │
|
||
│ │ │ AI Fork │ ICG-MF-safra-ai ✅ │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ [ 🔄 Re-index Now ] [ 📊 View Details ] [ ⏰ Schedule Sync ] │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
### 2.4 Business Rules Editor
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ 🧠 BUSINESS RULES [ + New Module ] │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Configured modules: │
|
||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||
│ │ Author. │ │Clearing │ │HostComm │ │ Batch │ │
|
||
│ │ ● │ │ │ │ │ │ │ │
|
||
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
||
│ │
|
||
│ ═══════════════════════════════════════════════════════════════════════ │
|
||
│ │
|
||
│ 📌 Module: Authorization │
|
||
│ │
|
||
│ ┌─ Description ─────────────────────────────────────────────────────────┐ │
|
||
│ │ Card transaction authorization module. Responsible for validation, │ │
|
||
│ │ HOST communication, and response generation. │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Related Programs ────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
|
||
│ │ │ ACQAUTH* ✕ │ │ ACQVALD* ✕ │ │ ACQHOST* ✕ │ [ + Add ] │ │
|
||
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
|
||
│ │ │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Detection Keywords ──────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ ┌──────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
|
||
│ │ │authorization✕│ │ decline ✕ │ │ code 51 ✕ │ │ timeout ✕ │ [+] │ │
|
||
│ │ └──────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ℹ️ When an issue contains these words, the system automatically │ │
|
||
│ │ associates it with the Authorization module. │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Context Rules (instructions for AI) ─────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ 📋 Rule 1 [ ✏️ ] [ 🗑️ ]│ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ Transactions above $10,000 require additional validation in │ │ │
|
||
│ │ │ program ACQVALD through SECTION 5000-VALIDATE-HIGH-VALUE │ │ │
|
||
│ │ │ before sending to HOST. │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ 📋 Rule 2 [ ✏️ ] [ 🗑️ ]│ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ Response codes follow ISO 8583 standard: │ │ │
|
||
│ │ │ - 00: Approved │ │ │
|
||
│ │ │ - 51: Insufficient funds (check WS-AVAILABLE-BALANCE) │ │ │
|
||
│ │ │ - 14: Invalid card │ │ │
|
||
│ │ │ - 91: Issuer unavailable │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ 📋 Rule 3 [ ✏️ ] [ 🗑️ ]│ │
|
||
│ │ ┌─────────────────────────────────────────────────────────────────┐ │ │
|
||
│ │ │ WS-AVAILABLE-BALANCE field must have PIC 9(11)V99 for │ │ │
|
||
│ │ │ compatibility with HOST return. Check for truncation in │ │ │
|
||
│ │ │ comparisons. │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ [ + Add New Rule ] │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Restrictions (files AI cannot modify) ───────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ ┌────────────────┐ ┌──────────────────┐ │ │
|
||
│ │ │ /interfaces/* ✕│ │ /copybooks/HOST* ✕│ [ + Add ] │ │
|
||
│ │ └────────────────┘ └──────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ⚠️ Files in these folders will only be analyzed, never modified. │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ [ Cancel ] [ 💾 Save Module ] │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
### 2.5 Issues View
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ 📋 ANALYZED ISSUES │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 🔍 Search... Status: [ All ▼ ] [ 📅 Period ] │
|
||
│ │
|
||
│ ┌───────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ ┌─ SUPPORT-4521 ──────────────────────────────────────────────────┐ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ Transaction declined code 51 with available balance │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │
|
||
│ │ │ │ ✅ Accepted│ │ 🎯 87% │ │ ⏱️ 2m 34s │ │ 📁 1 file │ │ │ │
|
||
│ │ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ Module: Authorization Created: 02/18/2026 09:15 │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ [ 👁️ View Full Analysis ] [ 📝 View PR ] [ 🔗 Open JIRA ] │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌─ SUPPORT-4519 ──────────────────────────────────────────────────┐ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ Formatting error in clearing file │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │
|
||
│ │ │ │ ⏳ Review │ │ 🎯 72% │ │ ⏱️ 3m 12s │ │ 📁 2 files │ │ │ │
|
||
│ │ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ Module: Clearing Created: 02/18/2026 06:45 │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ [ 👁️ View Full Analysis ] [ 📝 View PR ] [ 🔗 Open JIRA ] │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌─ SUPPORT-4515 ──────────────────────────────────────────────────┐ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ JCL failing with return code 12 │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │
|
||
│ │ │ │ ❌ Rejected│ │ 🎯 45% │ │ ⏱️ 4m 01s │ │ 📁 1 file │ │ │ │
|
||
│ │ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ Reason: "Incorrect dataset analysis PROD.CLEARING.INPUT" │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ [ 👁️ View Analysis ] [ 🔄 Re-analyze ] [ 🔗 Open JIRA ] │ │ │
|
||
│ │ └─────────────────────────────────────────────────────────────────┘ │ │
|
||
│ │ │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ Showing 1-10 of 47 issues [ ← Previous ] [ Next → ] │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
### 2.6 Analysis Details
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ 👁️ ANALYSIS: SUPPORT-4521 [ ← Back ]│
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─ Issue Information ───────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ Title: Transaction declined code 51 with available balance │ │
|
||
│ │ Status: ✅ Fix Accepted │ │
|
||
│ │ Confidence: 87% │ │
|
||
│ │ Analysis time: 2 minutes 34 seconds │ │
|
||
│ │ Analyzed at: 02/18/2026 09:17:34 │ │
|
||
│ │ │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Original Description ────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ Safra client reports that transactions are being declined with │ │
|
||
│ │ code 51 (insufficient funds) even when the customer has available │ │
|
||
│ │ balance. Occurs on transactions above $100,000.00. │ │
|
||
│ │ │ │
|
||
│ │ Stack trace: │ │
|
||
│ │ ACQAUTH - SECTION 3000-VALIDATE - EVALUATE WS-RESPONSE-CODE │ │
|
||
│ │ │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ AI Analysis ─────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ 🔍 IDENTIFIED ROOT CAUSE │ │
|
||
│ │ │ │
|
||
│ │ The ACQAUTH.CBL program is comparing the WS-AVAILABLE-BALANCE │ │
|
||
│ │ field with format PIC 9(9)V99 (maximum 9,999,999.99), but the │ │
|
||
│ │ value returned from HOST uses PIC 9(11)V99 (max 999,999,999.99). │ │
|
||
│ │ │ │
|
||
│ │ This causes truncation on values above $100,000.00, │ │
|
||
│ │ making the balance appear as insufficient. │ │
|
||
│ │ │ │
|
||
│ │ 📁 AFFECTED FILES │ │
|
||
│ │ • src/cobol/ACQAUTH.CBL (lines 1234-1256) │ │
|
||
│ │ │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Proposed Fix ────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ ```cobol │ │
|
||
│ │ * BEFORE (line 1234) │ │
|
||
│ │ 05 WS-AVAILABLE-BALANCE PIC 9(9)V99. │ │
|
||
│ │ │ │
|
||
│ │ * AFTER │ │
|
||
│ │ 05 WS-AVAILABLE-BALANCE PIC 9(11)V99. │ │
|
||
│ │ ``` │ │
|
||
│ │ │ │
|
||
│ │ Also adjust SECTION 3000-VALIDATE to use the new size. │ │
|
||
│ │ │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─ Links ───────────────────────────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ 🔗 Issue in JIRA: gojira.tsacorp.com/browse/SUPPORT-4521 │ │
|
||
│ │ 📝 Pull Request: bitbucket.tsacorp.com/.../pull-requests/142 │ │
|
||
│ │ 💬 AI Comment: View in JIRA │ │
|
||
│ │ │ │
|
||
│ └───────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ [ 🔄 Re-analyze ] [ 📥 Export PDF ] │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 3. Portal Technology Stack
|
||
|
||
### 3.1 Frontend
|
||
```yaml
|
||
Framework: React 18 + TypeScript
|
||
Styling: Tailwind CSS + shadcn/ui
|
||
Components:
|
||
- Tables with sorting and filters
|
||
- Forms with validation
|
||
- Charts (Recharts)
|
||
- Code editor (Monaco Editor)
|
||
- Toast notifications
|
||
State Management: React Query + Zustand
|
||
Routing: React Router v6
|
||
Build: Vite
|
||
```
|
||
|
||
### 3.2 Backend (API)
|
||
```yaml
|
||
Framework: FastAPI (Python 3.11+)
|
||
Documentation: Automatic OpenAPI/Swagger
|
||
Authentication: JWT + OAuth2/OIDC
|
||
Rate Limiting: slowapi
|
||
Validation: Pydantic v2
|
||
```
|
||
|
||
### 3.3 Database
|
||
```yaml
|
||
Primary: PostgreSQL 15+
|
||
Cache: Redis 7+
|
||
Vector DB: Qdrant (embeddings)
|
||
Migrations: Alembic
|
||
```
|
||
|
||
### 3.4 Authentication
|
||
```yaml
|
||
Supported options:
|
||
- Azure AD (SAML/OIDC)
|
||
- Okta
|
||
- Google Workspace
|
||
- Email/Password with MFA (TOTP)
|
||
|
||
Permissions (RBAC):
|
||
- Admin: Full access
|
||
- Editor: Configure rules, view everything
|
||
- Viewer: View only
|
||
- API: Programmatic access only
|
||
```
|
||
|
||
---
|
||
|
||
## 4. Configuration Simplicity
|
||
|
||
| Action | Method | Time |
|
||
|--------|--------|------|
|
||
| Connect JIRA | Paste URL + Token | 2 minutes |
|
||
| Connect Bitbucket | Paste URL + Token | 2 minutes |
|
||
| Change LLM provider | Select from dropdown | 30 seconds |
|
||
| Add repository | Paste URL + Configure AI fork | 5 minutes |
|
||
| Create business rule | Visual editor | 5-10 minutes |
|
||
| Add restriction | Type path | 30 seconds |
|
||
| View logs | Click on tab | Immediate |
|
||
| Export report | "Export" button | Immediate |
|
||
|
||
**Principle: Zero code for any configuration.**
|
||
|
||
---
|
||
|
||
## 5. Multi-Tenant (Multiple Companies)
|
||
|
||
The portal supports multiple isolated tenants:
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ MULTI-TENANT ARCHITECTURE │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Tenant: ACI Safra Tenant: ACI Itaú │
|
||
│ ┌─────────────────────────┐ ┌─────────────────────────┐ │
|
||
│ │ - Safra Repos │ │ - Itaú Repos │ │
|
||
│ │ - Safra Rules │ │ - Itaú Rules │ │
|
||
│ │ - Safra Users │ │ - Itaú Users │ │
|
||
│ │ - Isolated Logs │ │ - Isolated Logs │ │
|
||
│ └─────────────────────────┘ └─────────────────────────┘ │
|
||
│ │ │ │
|
||
│ └────────────────┬───────────────────┘ │
|
||
│ │ │
|
||
│ ┌──────────▼──────────┐ │
|
||
│ │ Shared │ │
|
||
│ │ Infrastructure │ │
|
||
│ │ (LLM, Embeddings) │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**Guaranteed isolation:**
|
||
- Data from one tenant never visible to another
|
||
- Independent configurations
|
||
- Separate billing (if applicable)
|
||
- Audit logs per tenant
|
||
|
||
---
|
||
|
||
## 6. Responsiveness
|
||
|
||
The portal is responsive and works on:
|
||
|
||
| Device | Support |
|
||
|--------|---------|
|
||
| Desktop (1920px+) | ✅ Optimized |
|
||
| Laptop (1366px) | ✅ Optimized |
|
||
| Tablet (768px) | ✅ Adapted |
|
||
| Mobile (375px) | ⚠️ View only |
|
||
|
||
---
|
||
|
||
## 7. Accessibility
|
||
|
||
- Full keyboard navigation
|
||
- Screen reader compatible (ARIA)
|
||
- Adequate contrast (WCAG 2.1 AA)
|
||
- Resizable text
|
||
|
||
---
|
||
|
||
## 8. Roadmap
|
||
|
||
1. **Phase 1:** Basic portal with Dashboard and Settings
|
||
2. **Phase 2:** Business rules editor
|
||
3. **Phase 3:** Multi-tenant and SSO
|
||
4. **Phase 4:** Advanced reports and export
|
||
5. **Phase 5:** Public API for integrations
|
||
|
||
---
|
||
|
||
**Document prepared for product presentation.**
|