42 - Action Center

Overview

The Action Center is a centralized order approval system for semi-automated trading. When enabled, orders are queued for manual approval before execution, essential for managed accounts and regulatory compliance (RA - Relationship Advisor mode).

Architecture Diagram

┌──────────────────────────────────────────────────────────────────────────────┐
│                        Action Center Architecture                            │
└──────────────────────────────────────────────────────────────────────────────┘

                           External Order Request
                           (TradingView, API, etc.)


┌─────────────────────────────────────────────────────────────────────────────┐
│                          Order Router Service                                │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │  should_route_to_pending(api_key, api_type)                          │   │
│  │                                                                      │   │
│  │  Check 1: Is user in semi_auto mode?                                │   │
│  │  Check 2: Is this a restricted operation?                           │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                    │                                         │
│              ┌─────────────────────┴─────────────────────┐                  │
│              │                                           │                   │
│         Auto Mode                                   Semi-Auto Mode           │
│         or Restricted                               (Queue Order)            │
│              │                                           │                   │
│              ▼                                           ▼                   │
│      Execute Immediately                        Create Pending Order         │
│      with Broker                                in Action Center             │
└─────────────────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────────────────────┐
│                          Action Center UI                                    │
│                          /action-center                                      │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │  [Pending (3)]  [Approved]  [Rejected]  [All Orders]                │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │  Statistics                                                          │   │
│  │  Pending: 3  │  Buy: 2  │  Sell: 1  │  Approved: 15  │  Rejected: 2 │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │  Strategy │ Symbol │ Exchange │ Action │ Qty │ Price │ Actions      │   │
│  ├─────────────────────────────────────────────────────────────────────┤   │
│  │  MyStrat  │ SBIN   │ NSE      │ BUY    │ 100 │ MKT   │ ✓ Approve    │   │
│  │           │        │          │        │     │       │ ✗ Reject     │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                              │
│                         [Approve All Pending]                               │
└─────────────────────────────────────────────────────────────────────────────┘

                          User clicks Approve


┌─────────────────────────────────────────────────────────────────────────────┐
│                    Pending Order Execution Service                           │
│                                                                              │
│  1. Mark order status = 'approved'                                          │
│  2. Execute order with broker API                                           │
│  3. Get broker order status                                                 │
│  4. Update broker_order_id and broker_status                                │
│  5. Emit SocketIO event                                                     │
└─────────────────────────────────────────────────────────────────────────────┘

Order Mode Configuration

Setting Order Mode

Mode Toggle API

Semi-Auto Workflow

Database Schema

pending_orders Table

Indexes

Supported Order Types

API Type
Description

placeorder

Standard order

smartorder

Position-aware order

basketorder

Multiple orders

splitorder

Split large orders

optionsorder

Options contracts

Restricted Operations

These operations ALWAYS execute immediately, even in semi-auto mode:

Operation
Reason

closeposition

Prevent stuck positions

closeallpositions

Emergency close

cancelorder

Order management

cancelallorder

Bulk cancel

modifyorder

Order adjustment

orderstatus

Status query

orderbook

Data retrieval

tradebook

Data retrieval

positions

Data retrieval

holdings

Data retrieval

funds

Data retrieval

API Endpoints

Get Orders

Response:

Approve Order

Response:

Reject Order

Approve All

Response:

Delete Order

Note: Only approved or rejected orders can be deleted.

Get Pending Count

Response:

Real-Time Updates

SocketIO Events

Event
Trigger
Data

pending_order_created

New order queued

order_id, user_id

pending_order_updated

Approve/Reject

order_id, status

Frontend Handling

React Component Features

Tabbed Interface

Statistics Dashboard

Order Table Columns

Column
Content

Strategy

Strategy name

Symbol

Trading symbol

Exchange

NSE/NFO/MCX badge

Action

BUY (green) / SELL (red)

Quantity

Order quantity

Price

Price or "MARKET"

Order Type

placeorder/smartorder/etc

Product

CNC/MIS/NRML badge

Created

Relative time ("5 min ago")

Actions

Approve/Reject/Delete buttons

Expandable Details

Click chevron to view raw order data:

Service Implementation

Order Router

Queue Order

Execute Approved Order

Security & Compliance

Audit Trail

All actions are logged with:

  • Timestamp (IST)

  • Username

  • Action taken

  • Reason (for rejections)

API Key Security

  • API keys never stored in pending_orders

  • Only user_id reference maintained

  • Keys retrieved at execution time

Analyzer Mode Restriction

When in semi_auto mode, analyzer toggle is blocked to ensure RA compliance.

Key Files Reference

File
Purpose

database/action_center_db.py

PendingOrder model

services/action_center_service.py

Order parsing, stats

services/order_router_service.py

Route decisions

services/pending_order_execution_service.py

Execute approved

blueprints/orders.py

Action center routes

blueprints/apikey.py

Mode toggle

frontend/src/pages/ActionCenter.tsx

React UI

Last updated