Package ecosystem¶
OHLCX is built from private Composer packages under the github.com/ohlcx organization. This page lists every ohlcx/* package the two applications install, what each one is for, and how they depend on each other. Source requires authorized access.
The lists on this page are read from the applications' composer.json and composer.lock. A version is the package's current release. The dependency diagram is read from each package's own composer.json.
Applications¶
| Repository | Edition | ohlcx/* packages installed |
|---|---|---|
| ohlcx/ohlcx | Pro | 21: alpaca-trade-api-php, analysis, booking, chat-bots, development-features, goals, mail-kit, news, node-license-client, node-management, pricefeed, pulse, referrals, schwab-integration, sectors, strategies, stripe-credits-billing, tdameritrade-laravel, trading-app, trading-rooms, user-profile |
| ohlcx/ohlcx-light | Light | 13: booking, chat-bots, goals, mail-kit, node-license-client, pulse, referrals, schwab-integration, stripe-credits-billing, tdameritrade-laravel, trading-app, trading-rooms, user-profile |
Pro installs everything Light installs, plus eight packages of its own.
Packages in both editions¶
| Package | Responsibility | Version | Page |
|---|---|---|---|
| trading-app | The application layer: trading UI, API routes, relay to the hosted API on Light, knowledge base, in-app assistant, MCP server | 1.0.355 | trading-app |
| schwab-integration | Schwab account and token management: linked accounts, balances, profit and loss, cash transfers, order reads | 1.0.49 | schwab-integration |
| tdameritrade-laravel | Low-level client for the TD Ameritrade / Schwab API | 1.0.20 | tdameritrade-laravel |
| stripe-credits-billing | Credits bought through Stripe Checkout, and their use | 1.0.34 | stripe-credits-billing |
| trading-rooms | Realtime messaging: direct messages, rooms, invites, live sessions | 1.0.49 | trading-rooms |
| user-profile | Profile management components and API | 1.0.22 | user-profile |
| goals | Realized P&L goals per linked account: daily, weekly and monthly targets and a progress calendar, read from schwab-integration's P&L | 1.0.11 | goals |
| mail-kit | Shared branded email layout and notification theme, with unsubscribe and suppression for every outgoing email | 1.0.15 | mail-kit |
| booking | Self-hosted scheduling: session types, availability, public booking without an account, admin management, reminder emails | 1.0.18 | booking |
| referrals | Invitations between users and a referral program: referral codes, qualification, and a credit reward for the referrer | 1.0.24 | referrals |
| pulse | Operator visibility: Slack alerts, digests and scheduled reports from the events of the installed packages | 1.0.23 | pulse |
| node-license-client | Licensing of a self-hosted deployment (a node): registers with the license server, reports to it, and blocks the application while unlicensed | 1.0.14 | node-license-client |
| chat-bots | Simulated chat users for load-testing and demonstrating trading-rooms' realtime messaging. A testing tool | 1.0.7 | chat-bots |
Pro-only packages¶
| Package | Responsibility | Version | Page |
|---|---|---|---|
| strategies | Strategies center: conditions, signals, trades, backtests, the screener, and routing a strategy's orders to the owner's linked brokerage accounts | 1.5.0 | strategies |
| pricefeed | Market and ticker price data, technical analysis, live price publishing | 1.0.44 | pricefeed |
| sectors | Sector definitions, sector tickers, sector balance snapshots and charts | 1.0.12 | sectors |
| news | Featured news and articles | 1.0.15 | news |
| analysis | Scheduled ticker analysis snapshots | 1.0.14 | analysis |
| alpaca-trade-api-php | PHP SDK for the Alpaca API. In OHLCX it is used for market data and news | 1.0.15 | alpaca-trade-api-php |
| development-features | Development features: market data stream listeners, broadcast channels and components built on them | 1.0.2 | development-features |
| node-management | The license server for self-hosted deployments: node registration, heartbeat, admin approval. Dormant except on the one license authority | 1.0.13 | node-management |
OHLCX Light does not install these. It reaches strategies, markets, sectors, news and analysis through the hosted OHLCX API, relayed by trading-app. See Light vs Pro.
Not installed by either application¶
Two packages of the organization are not required by Pro or Light and are not part of this section: proxymanager (an HTTP proxy manager, listed here in earlier editions) and support (a client support and ticketing platform).
Dependencies¶
The packages require each other in 23 places. Each one is a require in a package's own composer.json. The two diagrams and the note between them show all 23: 9 in the first diagram, 5 in the note, 9 in the second diagram. An arrow points from a package to the package it requires. Each diagram reads left to right and grows downward, so it stays readable on a narrow screen.
Shared packages: who requires whom¶
The 13 packages both editions install. 9 requirements are drawn.
flowchart LR
classDef shared fill:#0e7490,stroke:#67e8f9,color:#ffffff,stroke-width:1px;
ta[trading-app]:::shared
schwab[schwab-integration]:::shared
rooms[trading-rooms]:::shared
bots[chat-bots]:::shared
td[tdameritrade-laravel]:::shared
billing[stripe-credits-billing]:::shared
profile[user-profile]:::shared
goals[goals]:::shared
license[node-license-client]:::shared
ta --> schwab
ta --> rooms
ta --> td
ta --> billing
ta --> profile
ta --> goals
ta --> license
schwab --> td
bots --> rooms
Not drawn, to keep the picture readable: mail-kit is required by trading-app, schwab-integration, trading-rooms, booking and referrals (5 requirements). booking and referrals require nothing else. pulse requires no other package and none requires it.
Pro-only packages and what they build on¶
The 8 packages only OHLCX Pro installs, in blue, with the shared packages they require, in teal. 9 requirements are drawn. sectors, news and analysis require no other package.
flowchart LR
classDef shared fill:#0e7490,stroke:#67e8f9,color:#ffffff,stroke-width:1px;
classDef pro fill:#1d4ed8,stroke:#93c5fd,color:#ffffff,stroke-width:1px;
strategies[strategies]:::pro
dev[development-features]:::pro
nodes[node-management]:::pro
pricefeed[pricefeed]:::pro
alpaca[alpaca-trade-api-php]:::pro
schwab[schwab-integration]:::shared
td[tdameritrade-laravel]:::shared
mail[mail-kit]:::shared
strategies --> pricefeed
strategies --> alpaca
strategies --> schwab
strategies --> td
strategies --> mail
dev --> alpaca
dev --> schwab
dev --> td
nodes --> mail
The same as a table¶
| Package | Edition | Requires | Required by |
|---|---|---|---|
| trading-app | Pro, Light | node-license-client, tdameritrade-laravel, schwab-integration, stripe-credits-billing, user-profile, trading-rooms, goals, mail-kit | none |
| schwab-integration | Pro, Light | tdameritrade-laravel, mail-kit | trading-app, strategies, development-features |
| tdameritrade-laravel | Pro, Light | none | trading-app, schwab-integration, strategies, development-features |
| stripe-credits-billing | Pro, Light | none | trading-app |
| trading-rooms | Pro, Light | mail-kit | trading-app, chat-bots |
| user-profile | Pro, Light | none | trading-app |
| goals | Pro, Light | none | trading-app |
| mail-kit | Pro, Light | none | trading-app, schwab-integration, trading-rooms, booking, referrals, strategies, node-management |
| booking | Pro, Light | mail-kit | none |
| referrals | Pro, Light | mail-kit | none |
| pulse | Pro, Light | none | none |
| node-license-client | Pro, Light | none | trading-app |
| chat-bots | Pro, Light | trading-rooms | none |
| strategies | Pro | alpaca-trade-api-php, tdameritrade-laravel, schwab-integration, pricefeed, mail-kit | none |
| pricefeed | Pro | none | strategies |
| sectors | Pro | none | none |
| news | Pro | none | none |
| analysis | Pro | none | none |
| alpaca-trade-api-php | Pro | none | strategies, development-features |
| development-features | Pro | alpaca-trade-api-php, tdameritrade-laravel, schwab-integration | none |
| node-management | Pro | mail-kit | none |
Optional packages¶
Some packages name others as optional (suggest) and work with them when the application installs them:
| Package | Suggests |
|---|---|
| trading-app | booking, referrals, pulse |
| pricefeed | alpaca-trade-api-php, strategies |
| news | alpaca-trade-api-php, pricefeed |
| analysis | pricefeed, strategies |
| sectors | pricefeed |
Request access¶
See Contributor access.