-
1.52 kB
initial commit
-
222 Bytes
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>🔥 TRINITY FURNACE™ AI GRID</title> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"> <style> body { font-family: 'JetBrains Mono', monospace; background-color: #0b0c10; color: #f5f5f5; } .card { background: #1f1f1f; border-radius: 1rem; padding: 1.5rem; box-shadow: 0 0 10px #ff450050; } .btn { background: #ff4500; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: bold; text-transform: uppercase; } .btn:hover { background: #ff3300; } .audit-log { font-size: 0.875rem; color: #bbb; } input, textarea { background-color: #111; color: #eee; padding: 0.5rem; border-radius: 0.5rem; width: 100%; margin-bottom: 0.5rem; } </style> </head> <body class="p-6"> <header class="text-center mb-6"> <h1 class="text-3xl font-bold text-orange-500">🔥 TRINITY FURNACE™ FULLSTACK DASHBOARD</h1> <p class="text-gray-400">Live. Local. Legendary.</p> </header> <!-- Credential Manager --> <div class="card mb-6"> <h2 class="text-xl text-yellow-400 font-bold mb-2">🔐 Bureau Credential Manager</h2> <input type="text" placeholder="Experian SFTP Login" /> <input type="text" placeholder="Equifax FCRA Code" /> <input type="text" placeholder="TransUnion API Token" /> <button class="btn w-full">SAVE CREDENTIALS</button> </div> <!-- E-OSCAR Dispute Generator --> <div class="card mb-6"> <h2 class="text-xl text-pink-400 font-bold mb-2">🧠 E-OSCAR ACDV Dispute Generator</h2> <input type="text" placeholder="Bureau (Equifax / Experian / TransUnion)" /> <input type="text" placeholder="Tradeline ID" /> <textarea placeholder="Dispute Reason (Not Mine / Fraudulent / Duplicate…)"></textarea> <button class="btn w-full">SUBMIT DISPUTE</button> </div> <!-- Webhook Bridge --> <div class="card mb-6"> <h2 class="text-xl text-gray-300 font-bold mb-2">⚙️ Webhook Bridge Control</h2> <input type="text" placeholder="Credit Karma Token" /> <input type="text" placeholder="Webhook Endpoint URL" /> <button class="btn w-full">ACTIVATE WEBHOOK</button> </div> <!-- Credit Snapshot --> <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6"> <div class="card text-center"> <h2 class="text-xl font-bold text-orange-400 mb-2">Equifax</h2> <p class="text-4xl font-bold">785</p> <p class="text-green-400 mt-1">↑ 138 pts</p> <p class="mt-2">Excellent</p> </div> <div class="card text-center"> <h2 class="text-xl font-bold text-orange-400 mb-2">Experian</h2> <p class="text-4xl font-bold">785</p> <p class="text-green-400 mt-1">↑ 138 pts</p> <p class="mt-2">Excellent</p> </div> </div> <!-- Buttons --> <div class="flex justify-center my-6 space-x-4"> <button class="btn">INITIATE LIVE REPORT</button> <button class="btn">ENVISION STRATEGIC LEVERAGE</button> </div> <!-- Tradelines --> <div class="card mb-6"> <h3 class="text-lg font-semibold text-orange-300 mb-3">Sample Credit Tradelines</h3> <table class="w-full text-left text-sm"> <thead class="text-orange-300 border-b border-orange-500"> <tr><th>Creditor</th><th>Date Opened</th><th>Limit</th><th>Balance</th><th>Status</th></tr> </thead> <tbody> <tr><td>Bank of America</td><td>Mar. 2020</td><td>$33,000</td><td>$830</td><td>Open</td></tr> <tr><td>CHASE</td><td>Aug. 2016</td><td>$15,000</td><td>$1,216</td><td>Open</td></tr> <tr><td>RADIAL</td><td>Nov. 2022</td><td>$5,000</td><td>$70</td><td>Open</td></tr> <tr><td>Ford Motor Credit</td><td>Jan. 2024</td><td>$125,000</td><td>$125,000</td><td>Excellent</td></tr> </tbody> </table> </div> <!-- Audit Log --> <div class="card"> <h3 class="text-lg font-semibold text-orange-300 mb-2">Audit Log</h3> <div class="audit-log"> <p>11:14 PM – Generated Metro2, XT, submitted live</p> <p>11:14 PM – Generated ACDV disputes, deleted 13 accounts</p> <p>11:14 PM – Ran live CPN generator</p> <p>11:14 PM – Deployed secure Wealth Manager prompts</p> </div> </div> </body> </html> from flask import Flask, jsonify, request from datetime import datetime import json, os, uuid app = Flask(__name__) # Paths CRED_PATH = "data/credentials.json" METRO2_LOG = "logs/metro2_gateway.log" EOSCAR_LOG = "logs/eoscar_activity.log" WEBHOOK_LOG = "logs/webhook_events.log" os.makedirs("data", exist_ok=True) os.makedirs("logs", exist_ok=True) def load_json(path): if os.path.exists(path): with open(path, 'r') as f: try: return json.load(f) except: return {} return {} def save_json(path, data): with open(path, 'w') as f: json.dump(data, f, indent=4) # Home route @app.route("/") def home(): return "🔥 TRINITY FURNACE™ AI GRID BACKEND ACTIVE" # Metro2 Gateway @app.route("/gateway/metro2/submit", methods=["POST"]) def metro2_submit(): payload = request.json log = { "id": str(uuid.uuid4()), "bureau": payload.get("bureau"), "gpg_key": payload.get("gpg_key"), "submitted_at": datetime.utcnow().isoformat() } with open(METRO2_LOG, 'a') as f: f.write(json.dumps(log) + "\n") return jsonify({"status": "Metro2 Submission Logged", "log": log}) # E-OSCAR ACDV Trigger @app.route("/eoscar/dispute", methods=["POST"]) def eoscar_trigger(): data = request.json log = { "id": str(uuid.uuid4()), "bureau": data.get("bureau"), "account": data.get("account"), "code": data.get("code"), "reason": data.get("reason"), "timestamp": datetime.utcnow().isoformat() } with open(EOSCAR_LOG, 'a') as f: f.write(json.dumps(log) + "\n") return jsonify({"status": "Dispute generated", "record": log}) # Webhook Dispatcher @app.route("/webhook/send", methods=["POST"]) def send_webhook(): data = request.json log = { "id": str(uuid.uuid4()), "target": data.get("target"), "payload": data.get("data"), "dispatched_at": datetime.utcnow().isoformat() } with open(WEBHOOK_LOG, 'a') as f: f.write(json.dumps(log) + "\n") return jsonify({"status": "Webhook dispatched", "log": log}) # Credential Saver @app.route("/credentials/add", methods=["POST"]) def add_credentials(): creds = load_json(CRED_PATH) new_entry = request.json entry_id = str(uuid.uuid4()) new_entry["id"] = entry_id new_entry["created_at"] = datetime.utcnow().isoformat() creds[entry_id] = new_entry save_json(CRED_PATH, creds) return jsonify({"status": "Credentials saved", "id": entry_id}) @app.route("/credentials/all", methods=["GET"]) def get_credentials(): return jsonify(load_json(CRED_PATH)) # Live Report (UI trigger) credit_data = { "scores": {"Equifax": 785, "Experian": 785}, "tradelines": [], "log": [] } @app.route("/live-report", methods=["GET"]) def live_report(): entry = f"{datetime.now().strftime('%I:%M %p')} – Ran Live Report" credit_data["log"].insert(0, entry) return jsonify({"message": "Live report triggered", "scores": credit_data["scores"]}) @app.route("/data", methods=["GET"]) def get_data(): return jsonify(credit_data) if __name__ == "__main__": app.run(debug=True, port=5100) - Initial Deployment
-
22.4 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>🔥 TRINITY FURNACE™ AI GRID</title> <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"> <style> body { font-family: 'JetBrains Mono', monospace; background-color: #0b0c10; color: #f5f5f5; } .card { background: #1f1f1f; border-radius: 1rem; padding: 1.5rem; box-shadow: 0 0 10px #ff450050; } .btn { background: #ff4500; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: bold; text-transform: uppercase; } .btn:hover { background: #ff3300; } .audit-log { font-size: 0.875rem; color: #bbb; } input, textarea { background-color: #111; color: #eee; padding: 0.5rem; border-radius: 0.5rem; width: 100%; margin-bottom: 0.5rem; } </style> </head> <body class="p-6"> <header class="text-center mb-6"> <h1 class="text-3xl font-bold text-orange-500">🔥 TRINITY FURNACE™ FULLSTACK DASHBOARD</h1> <p class="text-gray-400">Live. Local. Legendary.</p> </header> <!-- Credential Manager --> <div class="card mb-6"> <h2 class="text-xl text-yellow-400 font-bold mb-2">🔐 Bureau Credential Manager</h2> <input type="text" placeholder="Experian SFTP Login" /> <input type="text" placeholder="Equifax FCRA Code" /> <input type="text" placeholder="TransUnion API Token" /> <button class="btn w-full">SAVE CREDENTIALS</button> </div> <!-- E-OSCAR Dispute Generator --> <div class="card mb-6"> <h2 class="text-xl text-pink-400 font-bold mb-2">🧠 E-OSCAR ACDV Dispute Generator</h2> <input type="text" placeholder="Bureau (Equifax / Experian / TransUnion)" /> <input type="text" placeholder="Tradeline ID" /> <textarea placeholder="Dispute Reason (Not Mine / Fraudulent / Duplicate…)"></textarea> <button class="btn w-full">SUBMIT DISPUTE</button> </div> <!-- Webhook Bridge --> <div class="card mb-6"> <h2 class="text-xl text-gray-300 font-bold mb-2">⚙️ Webhook Bridge Control</h2> <input type="text" placeholder="Credit Karma Token" /> <input type="text" placeholder="Webhook Endpoint URL" /> <button class="btn w-full">ACTIVATE WEBHOOK</button> </div> <!-- Credit Snapshot --> <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6"> <div class="card text-center"> <h2 class="text-xl font-bold text-orange-400 mb-2">Equifax</h2> <p class="text-4xl font-bold">785</p> <p class="text-green-400 mt-1">↑ 138 pts</p> <p class="mt-2">Excellent</p> </div> <div class="card text-center"> <h2 class="text-xl font-bold text-orange-400 mb-2">Experian</h2> <p class="text-4xl font-bold">785</p> <p class="text-green-400 mt-1">↑ 138 pts</p> <p class="mt-2">Excellent</p> </div> </div> <!-- Buttons --> <div class="flex justify-center my-6 space-x-4"> <button class="btn">INITIATE LIVE REPORT</button> <button class="btn">ENVISION STRATEGIC LEVERAGE</button> </div> <!-- Tradelines --> <div class="card mb-6"> <h3 class="text-lg font-semibold text-orange-300 mb-3">Sample Credit Tradelines</h3> <table class="w-full text-left text-sm"> <thead class="text-orange-300 border-b border-orange-500"> <tr><th>Creditor</th><th>Date Opened</th><th>Limit</th><th>Balance</th><th>Status</th></tr> </thead> <tbody> <tr><td>Bank of America</td><td>Mar. 2020</td><td>$33,000</td><td>$830</td><td>Open</td></tr> <tr><td>CHASE</td><td>Aug. 2016</td><td>$15,000</td><td>$1,216</td><td>Open</td></tr> <tr><td>RADIAL</td><td>Nov. 2022</td><td>$5,000</td><td>$70</td><td>Open</td></tr> <tr><td>Ford Motor Credit</td><td>Jan. 2024</td><td>$125,000</td><td>$125,000</td><td>Excellent</td></tr> </tbody> </table> </div> <!-- Audit Log --> <div class="card"> <h3 class="text-lg font-semibold text-orange-300 mb-2">Audit Log</h3> <div class="audit-log"> <p>11:14 PM – Generated Metro2, XT, submitted live</p> <p>11:14 PM – Generated ACDV disputes, deleted 13 accounts</p> <p>11:14 PM – Ran live CPN generator</p> <p>11:14 PM – Deployed secure Wealth Manager prompts</p> </div> </div> </body> </html> from flask import Flask, jsonify, request from datetime import datetime import json, os, uuid app = Flask(__name__) # Paths CRED_PATH = "data/credentials.json" METRO2_LOG = "logs/metro2_gateway.log" EOSCAR_LOG = "logs/eoscar_activity.log" WEBHOOK_LOG = "logs/webhook_events.log" os.makedirs("data", exist_ok=True) os.makedirs("logs", exist_ok=True) def load_json(path): if os.path.exists(path): with open(path, 'r') as f: try: return json.load(f) except: return {} return {} def save_json(path, data): with open(path, 'w') as f: json.dump(data, f, indent=4) # Home route @app.route("/") def home(): return "🔥 TRINITY FURNACE™ AI GRID BACKEND ACTIVE" # Metro2 Gateway @app.route("/gateway/metro2/submit", methods=["POST"]) def metro2_submit(): payload = request.json log = { "id": str(uuid.uuid4()), "bureau": payload.get("bureau"), "gpg_key": payload.get("gpg_key"), "submitted_at": datetime.utcnow().isoformat() } with open(METRO2_LOG, 'a') as f: f.write(json.dumps(log) + "\n") return jsonify({"status": "Metro2 Submission Logged", "log": log}) # E-OSCAR ACDV Trigger @app.route("/eoscar/dispute", methods=["POST"]) def eoscar_trigger(): data = request.json log = { "id": str(uuid.uuid4()), "bureau": data.get("bureau"), "account": data.get("account"), "code": data.get("code"), "reason": data.get("reason"), "timestamp": datetime.utcnow().isoformat() } with open(EOSCAR_LOG, 'a') as f: f.write(json.dumps(log) + "\n") return jsonify({"status": "Dispute generated", "record": log}) # Webhook Dispatcher @app.route("/webhook/send", methods=["POST"]) def send_webhook(): data = request.json log = { "id": str(uuid.uuid4()), "target": data.get("target"), "payload": data.get("data"), "dispatched_at": datetime.utcnow().isoformat() } with open(WEBHOOK_LOG, 'a') as f: f.write(json.dumps(log) + "\n") return jsonify({"status": "Webhook dispatched", "log": log}) # Credential Saver @app.route("/credentials/add", methods=["POST"]) def add_credentials(): creds = load_json(CRED_PATH) new_entry = request.json entry_id = str(uuid.uuid4()) new_entry["id"] = entry_id new_entry["created_at"] = datetime.utcnow().isoformat() creds[entry_id] = new_entry save_json(CRED_PATH, creds) return jsonify({"status": "Credentials saved", "id": entry_id}) @app.route("/credentials/all", methods=["GET"]) def get_credentials(): return jsonify(load_json(CRED_PATH)) # Live Report (UI trigger) credit_data = { "scores": {"Equifax": 785, "Experian": 785}, "tradelines": [], "log": [] } @app.route("/live-report", methods=["GET"]) def live_report(): entry = f"{datetime.now().strftime('%I:%M %p')} – Ran Live Report" credit_data["log"].insert(0, entry) return jsonify({"message": "Live report triggered", "scores": credit_data["scores"]}) @app.route("/data", methods=["GET"]) def get_data(): return jsonify(credit_data) if __name__ == "__main__": app.run(debug=True, port=5100) - Initial Deployment
-
388 Bytes
initial commit