Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
9e35b34
docs(data-layer): fast-track Rust authority cutover
BobbyAxerol Aug 20, 2026
df94a51
docs(data-layer): record fast-track cutover SHA
BobbyAxerol Aug 20, 2026
fb8b4f4
docs(data-layer): define production V2 consumer gates
BobbyAxerol Aug 20, 2026
ec80faf
feat(sdk): publish standalone V2 consumer contract
BobbyAxerol Aug 20, 2026
364b7a5
feat(catalog): generate production V2 bindings from venue metadata
BobbyAxerol Aug 20, 2026
2f6cd10
feat(authority): persist V2 authority transitions
BobbyAxerol Aug 20, 2026
56ca153
feat(core): add long-running Rust V2 authority runtime
BobbyAxerol Aug 20, 2026
e5d4853
fix(sdk): support declared Python 3.10 runtime
BobbyAxerol Aug 20, 2026
da79c40
feat(sdk): project canonical V2 stream events
BobbyAxerol Aug 20, 2026
26903bf
fix(sdk): enforce alpha stream continuity policies
BobbyAxerol Aug 20, 2026
f93b7f0
fix(contracts): preserve frozen V2 enum schema
BobbyAxerol Aug 20, 2026
005fa66
test(runtime): certify isolated V2 shadow deployment
BobbyAxerol Aug 20, 2026
8c8fa9d
feat(security): close V2 workload ingress
BobbyAxerol Aug 20, 2026
7039376
feat(v2): wire durable Rust authority cutover
BobbyAxerol Aug 20, 2026
5823d64
build(v2): pin Python release base image
BobbyAxerol Aug 20, 2026
3d3af1c
fix(v2): scope initial Rust authority promotion
BobbyAxerol Aug 20, 2026
533f7c6
docs(v2): record final authority release pair
BobbyAxerol Aug 20, 2026
a4c283c
docs(v2): record scoped release cleanup
BobbyAxerol Aug 20, 2026
be35aa7
fix(v2): expose stable ingress to governed consumer network
BobbyAxerol Aug 20, 2026
a621e40
docs(v2): freeze final consumer-ready release pair
BobbyAxerol Aug 20, 2026
d55ec69
docs(v2): record final artifact cleanup
BobbyAxerol Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,24 @@ jobs:
tar --no-same-owner -xzf "${archive}"
"./${directory}/cargo-deny" check

sdk-python310:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

- name: Set up declared minimum Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
with:
python-version: "3.10"

- name: Build and import standalone SDK wheel
run: |
python scripts/build_qdl_sdk_release.py --output-dir /tmp/qdl-sdk
python -m pip install --disable-pip-version-check /tmp/qdl-sdk/qdl_sdk-2.0.0-py3-none-any.whl
cd "$(mktemp -d)"
PYTHONPATH= python -c 'import qdl_sdk; assert qdl_sdk.__version__ == "2.0.0"'

unit-tests:
runs-on: ubuntu-latest
steps:
Expand Down
571 changes: 528 additions & 43 deletions DATA_LAYER_UNIFIED_IMPLEMENTATION_PLAN.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.12-slim AS builder
FROM python:3.12-slim@sha256:2c941e860699f878900b0edc2403613c234d4b32eda3cc9fa7036991a2a63c4a AS builder

ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
Expand All @@ -17,7 +17,7 @@ RUN python -m venv /opt/venv && \
poetry install --no-root --only main --no-ansi && \
/opt/venv/bin/python -m pip install --no-cache-dir --upgrade "setuptools>=78.1.1"

FROM python:3.12-slim AS runtime
FROM python:3.12-slim@sha256:2c941e860699f878900b0edc2403613c234d4b32eda3cc9fa7036991a2a63c4a AS runtime

ARG QDL_UID=10001
ARG QDL_GID=10001
Expand Down
3 changes: 3 additions & 0 deletions Dockerfile.phase8-rust
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ COPY generated/rust ./generated/rust
# Rust unit/parity tests compile against immutable provider and contract oracles.
COPY contracts/golden ./contracts/golden
COPY tests/fixtures/phase2 ./tests/fixtures/phase2
COPY tests/fixtures/phase9 ./tests/fixtures/phase9
RUN cargo build --release --locked \
--bin qdl-kafka-smoke \
--bin qdl-authority-rehearsal \
Expand All @@ -22,6 +23,7 @@ RUN cargo build --release --locked \
--bin qdl-binance-shadow \
--bin qdl-native-raw-ingestor \
--bin qdl-realtime-core \
--bin qdl-production-core \
--bin qdl-parity-replay \
--bin qdl-venue-core-certify

Expand All @@ -44,6 +46,7 @@ COPY --from=builder /src/target/release/qdl-phase92-primary-rehearsal /usr/local
COPY --from=builder /src/target/release/qdl-binance-shadow /usr/local/bin/qdl-binance-shadow
COPY --from=builder /src/target/release/qdl-native-raw-ingestor /usr/local/bin/qdl-native-raw-ingestor
COPY --from=builder /src/target/release/qdl-realtime-core /usr/local/bin/qdl-realtime-core
COPY --from=builder /src/target/release/qdl-production-core /usr/local/bin/qdl-production-core
COPY --from=builder /src/target/release/qdl-parity-replay /usr/local/bin/qdl-parity-replay
COPY --from=builder /src/target/release/qdl-venue-core-certify /usr/local/bin/qdl-venue-core-certify
USER 10001:10001
Expand Down
9 changes: 6 additions & 3 deletions app/entrypoints/query_v2_stable.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
"""Isolated Data Layer 2.0.0 stable query edge; V1 remains authoritative."""
"""Stable Data Layer 2.0.0 query edge with mandatory workload mTLS."""

from qdl.runtime.stable import create_stable_query_app
import asyncio

from qdl.runtime.stable import serve_stable_query

app = create_stable_query_app()

if __name__ == "__main__":
asyncio.run(serve_stable_query())
15 changes: 15 additions & 0 deletions config/v2/stable-authority-promotion-scope.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
schema: qdl.v2.authority-promotion-scope.v1
revision: 1
binding_ids:
- binance-spot-btcusdt-bar-1m
- binance-spot-btcusdt-quote
- binance-spot-btcusdt-trade
- binance-usdm-btcusdt-bar-1m
- binance-usdm-btcusdt-quote
- binance-usdm-btcusdt-trade
- okx-spot-btcusdt-bar-1m
- okx-spot-btcusdt-quote
- okx-spot-btcusdt-trade
- okx-swap-btcusdt-bar-1m
- okx-swap-btcusdt-quote
- okx-swap-btcusdt-trade
26 changes: 26 additions & 0 deletions consumers/stable/trading-system-paper.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,19 @@ spec:
gap_policy: BLOCK
recovery: SNAPSHOT_AND_REPLAY
bar_revision_policy: LATEST
- instrument_uid: a953e16e-7138-5562-b5e8-c337a44d0b65
feed: BAR
consumer_grade: EXECUTION
source_policy_id: crypto_primary_v2
interval: 1m
warmup_limit: 1000
max_freshness_ms: 180000
require_full_coverage: true
require_final_bars: true
stale_policy: BLOCK
gap_policy: BLOCK
recovery: SNAPSHOT_AND_REPLAY
bar_revision_policy: LATEST
- instrument_uid: fb26214c-7b9b-5961-95b2-55154755af0f
feed: TRADE
consumer_grade: EXECUTION
Expand All @@ -74,6 +87,19 @@ spec:
gap_policy: BLOCK
recovery: SNAPSHOT_AND_REPLAY
bar_revision_policy: LATEST
- instrument_uid: fb26214c-7b9b-5961-95b2-55154755af0f
feed: BAR
consumer_grade: EXECUTION
source_policy_id: crypto_primary_v2
interval: 1m
warmup_limit: 1000
max_freshness_ms: 180000
require_full_coverage: true
require_final_bars: true
stale_policy: BLOCK
gap_policy: BLOCK
recovery: SNAPSHOT_AND_REPLAY
bar_revision_policy: LATEST
- instrument_uid: d0ac3d4c-2374-5690-8af5-b970448f91d3
feed: TRADE
consumer_grade: EXECUTION
Expand Down
Loading
Loading