Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
57119e5
Enhance README for Orchestrator module with detailed scope, definitio…
Acon3078 Jan 10, 2026
265fe7a
Added sections for run storage and assumptions to call modules to the…
Acon3078 Jan 10, 2026
2c2e002
Initial commit
Acon3078 Jan 28, 2026
be8f234
Nothing to commit.
Acon3078 Jan 28, 2026
72b19a0
Merge branch 'main' of https://github.com/OscarDiez/OpenPolicyStack i…
Acon3078 Feb 2, 2026
a7b7127
Added a monitor module outputs section to. All generated outputs from…
Acon3078 Feb 2, 2026
d5aaf9a
Created a new README.md in the modules/monitor folder with an initial…
Acon3078 Feb 4, 2026
6e7412f
Added monitor_adapter.py under the monitor module. This is the Python…
Acon3078 Feb 4, 2026
81e21c0
Deleted unnecessary files (I previously added) from the monitor module.
Acon3078 Mar 16, 2026
b27e078
Adding the INTEGRATION_SPEC.md file to the orchestrator branch.
Acon3078 Mar 16, 2026
41111f7
Added MODULE_INTEGRATION_GUIDE.md to provide comprehensive guidelines…
Acon3078 Mar 16, 2026
a4cd73c
Add COMPOSE_DERIVATION_MATRIX.md to outline the service composition a…
Acon3078 Mar 16, 2026
f7869da
Add compose.yaml file to define the orchestration services and their …
Acon3078 Mar 16, 2026
f468e85
Created a new folder at project root to have a clear deployment path,…
Acon3078 Mar 16, 2026
5513e6d
Moved file to the folder Deploy at root.
Acon3078 Mar 16, 2026
aac612f
Moved the compose.yaml file to the root of the repo.
Acon3078 Mar 16, 2026
3da64b2
Renamed the file to have a full intended architecture
Acon3078 Mar 16, 2026
3bd3d1a
Added the yaml file for the active minimal runnable stack (for the in…
Acon3078 Mar 16, 2026
6070fc2
Added the the actual minimal root compose.yaml for the integration-pi…
Acon3078 Mar 16, 2026
c65860e
Added files for requirements.txt and Dockerfile for the orchestrator …
Acon3078 Mar 16, 2026
7a62370
Added files requirements.txt and Dockerfile to the integration-pilot …
Acon3078 Mar 16, 2026
363e739
Add pilot runnable stack with orchestrator and integration-pilot
Acon3078 Mar 16, 2026
33e3903
Moved main.py to the correct location.
Acon3078 Mar 16, 2026
22285f2
Updated the guide after successful end-to-end run of the integration-…
Acon3078 Mar 17, 2026
b0abafc
Updated the guide after successful end-to-end run of the integration-…
Acon3078 Mar 17, 2026
9ebed43
Modified the .gitignore to support the .env.example file.
Acon3078 Mar 17, 2026
fdb724c
Modified the .gitignore to support the .env.example file.
Acon3078 Mar 17, 2026
43b7881
Modified the .gitignore to support the .env.example file.
Acon3078 Mar 17, 2026
5f72062
Created the env.example files for both modules orchestrator and integ…
Acon3078 Mar 17, 2026
a4ad579
Updated the MODULE_INTEGRATION_GUIDE to include instructions for trac…
Acon3078 Mar 17, 2026
366d0c1
Add deployment and validation guide for OpenPolicyStack
Acon3078 Mar 18, 2026
1d929d0
Expand orchestrator metadata schema to runs module_calls artifacts
Acon3078 Mar 18, 2026
9a33f86
Removed the temporary beta file of main for the orchestrator.
Acon3078 Mar 18, 2026
e9c8f45
Removed the temporary beta file of main for the orchestrator.
Acon3078 Mar 18, 2026
3a69c77
Hashing enhancement applied.
Acon3078 Mar 18, 2026
838b755
Eliminated changes.
Acon3078 Mar 18, 2026
dd8105d
Changed the main.py I was suppossed to.
Acon3078 Mar 18, 2026
7e0493d
Refactor execute function to use stable input hashing and improve JSO…
Acon3078 Mar 18, 2026
1df636c
Minimal changes for testing E2.
Acon3078 Mar 18, 2026
1088369
Changed to prove E2.
Acon3078 Mar 18, 2026
bd42c18
Added a controlled failure trigger to test E5.
Acon3078 Mar 19, 2026
a3e3132
Commented-out the failure trigger implemented previously for E5.
Acon3078 Apr 10, 2026
4d8bb98
Added md file to the root of the branch.
Acon3078 Apr 10, 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
13 changes: 5 additions & 8 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
## What does this PR change?
-

## Which module?
-
## Summary
Explain what changed and why.

## Checklist
- [ ] README updated (how to run + demo)
- [ ] Inputs/outputs documented
- [ ] No credentials / private data
- [ ] No secrets/credentials committed
- [ ] Docs updated (if needed)
- [ ] Tests added/updated (if applicable)
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ ENV/
env.bak/
venv.bak/


# Spyder project settings
.spyderproject
.spyproject
Expand Down Expand Up @@ -236,5 +237,17 @@ __pycache__/
.DS_Store
Thumbs.db

# Monitor module generated outputs
modules/monitor/data/
modules/monitor/deliverables/
modules/monitor/embedding/
modules/monitor/*.log
modules/monitor/*.dat
modules/monitor/**/*.db
modules/monitor/**/*.db-journal

OpenPolicyStack/

# Allow example env templates (must be AFTER any .env / .env.* ignores)
!.env.example
!**/.env.example
46 changes: 46 additions & 0 deletions ADRIAN_CON_THESIS_SCOPE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Thesis Scope – Adrian Con García

This repository is part of the broader OpenPolicyStack project.
This document clarifies the scope of the work developed and evaluated in the corresponding thesis.

## Scope of Contribution

The thesis focuses specifically on the design, implementation, and evaluation of the **orchestration layer** and its integration interface.

The evaluated software artifact consists of:

- `modules/orchestrator/` → central orchestration service (primary contribution)
- `modules/integration-pilot/` → controlled validation module used to test integration and evaluation conditions
- `compose.yaml` → minimal deployment configuration used to run the system

Other modules present in the repository are part of the wider collaborative project and are **not part of the evaluated contribution**.

## Evaluated System State

The version contained in this branch corresponds to the **instrumented evaluation state** of the system.

Starting from a working end-to-end orchestration prototype (baseline MVP), the system was incrementally extended to enable empirical evaluation of the following properties:

- reproducibility
- traceability
- artifact integrity
- execution trace reconstruction
- failure handling robustness

These properties were evaluated through a structured experimental framework (E1–E5) as described in the thesis.

## Important Notes

- The orchestrator was extended with structured metadata capture and hashing mechanisms to support empirical validation.
- The integration-pilot module was intentionally used as a controlled environment to isolate and test orchestration behavior before integrating external modules.
- A controlled failure trigger used exclusively for evaluation purposes has been disabled in this version.

## How to Navigate

For reviewers interested in the evaluated artifact:

1. Start with: `modules/orchestrator/`
2. See integration behavior in: `modules/integration-pilot/`
3. Use `compose.yaml` to understand how services are connected

This subset of the repository corresponds to the system evaluated in the thesis.
81 changes: 81 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: openpolicystack-pilot

services:
orchestrator:
build:
context: ./modules/orchestrator
dockerfile: Dockerfile
image: openpolicystack/orchestrator:dev
env_file:
- ./modules/orchestrator/.env
environment:
OPS_ENV: dev
OPS_MODULE_NAME: orchestrator
OPS_PORT: 8080
OPS_LOG_LEVEL: INFO
OPS_ARTIFACT_ROOT: /var/openpolicystack/artifacts
ORCHESTRATOR__SQLITE_PATH: /var/openpolicystack/metadata/orchestrator.db
ORCHESTRATOR__INTEGRATION_PILOT_URL: http://integration-pilot:8080
ports:
- "8100:8080"
volumes:
- ops-artifacts:/var/openpolicystack/artifacts
- ops-metadata:/var/openpolicystack/metadata
networks:
- ops-core
depends_on:
- integration-pilot
healthcheck:
test:
[
"CMD",
"python",
"-c",
"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/health')"
]
interval: 15s
timeout: 5s
retries: 5
start_period: 20s

integration-pilot:
build:
context: ./modules/integration-pilot
dockerfile: Dockerfile
image: openpolicystack/integration-pilot:dev
env_file:
- ./modules/integration-pilot/.env
environment:
OPS_ENV: dev
OPS_MODULE_NAME: integration-pilot
OPS_PORT: 8080
OPS_LOG_LEVEL: INFO
OPS_ARTIFACT_ROOT: /var/openpolicystack/artifacts
OPS_ORCHESTRATOR_URL: http://orchestrator:8080
PILOT_MODULE_VERSION: 0.1.1
ports:
- "8101:8080"
volumes:
- ops-artifacts:/var/openpolicystack/artifacts
networks:
- ops-core
healthcheck:
test:
[
"CMD",
"python",
"-c",
"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/health')"
]
interval: 15s
timeout: 5s
retries: 5
start_period: 20s

networks:
ops-core:
driver: bridge

volumes:
ops-artifacts:
ops-metadata:
108 changes: 108 additions & 0 deletions deploy/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# OpenPolicyStack – Deployment & Validation Guide

## Purpose
This folder contains deployment-related artifacts for OpenPolicyStack, including the full architecture skeleton and basic validation instructions.

At this stage, the system is validated through a **minimal runnable pilot stack** composed of:
- `orchestrator` (system coordinator)
- `integration-pilot` (reference module)

---

## Deployment Files

- `../compose.yaml`
→ Current **runnable pilot stack** (validated baseline)

- `compose.target-skeleton.yaml`
→ **Full intended architecture** (not yet fully runnable; used as integration target)

---

## Pilot Validation Procedure

Run all commands from the repository root:

```bash
docker compose config
docker compose build
docker compose up -d
docker compose ps
```
Test the orchestrator:

```
curl http://localhost:8100/health
```

Execute a sample workflow:

```
curl-X POST http://localhost:8100/execute \
-H"Content-Type: application/json" \
-d'{"test":"hello","source":"vm-check"}'
```

Inspect shared artifacts:

```
docker compose exec orchestratorls-R /var/openpolicystack/artifacts
```

Inspect metadata:

```
docker compose exec orchestratorls-R /var/openpolicystack/metadata
```

---

## Expected Outcome

A successful validation should confirm:

- Both containers build and run successfully
- Both services report **healthy** status
- Orchestrator responds on `http://localhost:8100`
- Orchestrator can resolve `integration-pilot` via Docker network
- Shared artifact volume is written and visible across containers
- Metadata database (`orchestrator.db`) is created

---

## Current Scope

The pilot validates:

- Basic orchestration flow (`/execute`)
- Service-to-service communication
- Shared artifact storage
- Metadata persistence (SQLite)
- Contract-compliant module execution

Not yet covered:

- Multi-module integration
- Real module onboarding from teammates
- Full evaluation framework (E1–E5)
- Production deployment considerations

---

## Common Issues

- Missing `.env` files (must be created from `.env.example`)
- Incorrect file paths or build contexts
- Missing or incorrect Dockerfile
- Wrong application entrypoint (`app.main`)
- Running commands outside repo root

---

## Next Steps

- Expand orchestrator metadata layer (`runs`, `module_calls`, `artifacts`)
- Strengthen determinism and reproducibility guarantees
- Introduce evaluation tests (E1–E5)
- Onboard first real module into the stack
- Progressively align with `compose.target-skeleton.yaml`
Loading