Update README.md to provide a comprehensive overview of The Order monorepo, including repository structure, quickstart guide, development workflow, and contribution guidelines.
This commit is contained in:
18
services/arromis-brand/README.md
Normal file
18
services/arromis-brand/README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# ARROMIS Brand Service
|
||||
|
||||
Branded version of ARROMIS as a service/app shell.
|
||||
|
||||
## Note
|
||||
|
||||
This directory is intended to be a Git submodule. To add it as a submodule:
|
||||
|
||||
```bash
|
||||
git submodule add <repository-url> services/arromis-brand
|
||||
```
|
||||
|
||||
Or use the provided script:
|
||||
|
||||
```bash
|
||||
./scripts/add-submodules.sh
|
||||
```
|
||||
|
||||
44
services/dataroom/README.md
Normal file
44
services/dataroom/README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Dataroom Service
|
||||
|
||||
Service for secure VDR (Virtual Data Room), deal rooms, and document access control.
|
||||
|
||||
## Features
|
||||
|
||||
- Deal space management
|
||||
- Folder ACLs (OPA policies)
|
||||
- Watermarking
|
||||
- Expiring links
|
||||
- Activity logs
|
||||
- Integration with finance service for deal states
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Run development server
|
||||
pnpm dev
|
||||
|
||||
# Build
|
||||
pnpm build
|
||||
|
||||
# Start production server
|
||||
pnpm start
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
- `GET /health` - Health check
|
||||
- `POST /deals` - Create deal room
|
||||
- `GET /deals/:dealId` - Get deal room
|
||||
- `POST /deals/:dealId/documents` - Upload document
|
||||
- `GET /deals/:dealId/documents/:documentId/url` - Get presigned URL
|
||||
|
||||
## Environment Variables
|
||||
|
||||
- `PORT` - Server port (default: 4004)
|
||||
- `DATABASE_URL` - PostgreSQL connection string
|
||||
- `STORAGE_BUCKET` - Storage bucket for documents
|
||||
- `OPA_URL` - Open Policy Agent URL for access control
|
||||
|
||||
27
services/dataroom/package.json
Normal file
27
services/dataroom/package.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "@the-order/dataroom",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "Dataroom service: secure VDR, deal room APIs",
|
||||
"main": "./src/index.ts",
|
||||
"scripts": {
|
||||
"dev": "tsx watch src/index.ts",
|
||||
"build": "tsc",
|
||||
"start": "node dist/index.js",
|
||||
"lint": "eslint src --ext .ts",
|
||||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"fastify": "^4.25.2",
|
||||
"@the-order/storage": "workspace:*",
|
||||
"@the-order/auth": "workspace:*",
|
||||
"@the-order/schemas": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.10.6",
|
||||
"typescript": "^5.3.3",
|
||||
"tsx": "^4.7.0",
|
||||
"eslint": "^8.56.0"
|
||||
}
|
||||
}
|
||||
|
||||
54
services/dataroom/src/index.ts
Normal file
54
services/dataroom/src/index.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* Dataroom Service
|
||||
* Handles secure VDR, deal rooms, and document access control
|
||||
*/
|
||||
|
||||
import Fastify from 'fastify';
|
||||
|
||||
const server = Fastify({
|
||||
logger: true,
|
||||
});
|
||||
|
||||
// Health check
|
||||
server.get('/health', async () => {
|
||||
return { status: 'ok' };
|
||||
});
|
||||
|
||||
// Create deal room
|
||||
server.post('/deals', async (request, reply) => {
|
||||
// TODO: Implement deal room creation
|
||||
return { message: 'Deal creation endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Get deal room
|
||||
server.get('/deals/:dealId', async (request, reply) => {
|
||||
// TODO: Implement deal room retrieval
|
||||
return { message: 'Deal retrieval endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Upload document to deal room
|
||||
server.post('/deals/:dealId/documents', async (request, reply) => {
|
||||
// TODO: Implement document upload
|
||||
return { message: 'Document upload endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Get presigned URL for document access
|
||||
server.get('/deals/:dealId/documents/:documentId/url', async (request, reply) => {
|
||||
// TODO: Implement presigned URL generation
|
||||
return { message: 'Presigned URL endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Start server
|
||||
const start = async () => {
|
||||
try {
|
||||
const port = Number(process.env.PORT) || 4004;
|
||||
await server.listen({ port, host: '0.0.0.0' });
|
||||
console.log(`Dataroom service listening on port ${port}`);
|
||||
} catch (err) {
|
||||
server.log.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
start();
|
||||
|
||||
10
services/dataroom/tsconfig.json
Normal file
10
services/dataroom/tsconfig.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
|
||||
}
|
||||
|
||||
40
services/finance/README.md
Normal file
40
services/finance/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Finance Service
|
||||
|
||||
Service for payments, ledgers, rate models, and invoicing.
|
||||
|
||||
## Features
|
||||
|
||||
- Double-entry ledger
|
||||
- Payment processing
|
||||
- Rate models
|
||||
- Invoicing
|
||||
- Deal milestone tracking
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Run development server
|
||||
pnpm dev
|
||||
|
||||
# Build
|
||||
pnpm build
|
||||
|
||||
# Start production server
|
||||
pnpm start
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
- `GET /health` - Health check
|
||||
- `POST /ledger/entry` - Create ledger entry
|
||||
- `POST /payments` - Process payment
|
||||
|
||||
## Environment Variables
|
||||
|
||||
- `PORT` - Server port (default: 4003)
|
||||
- `DATABASE_URL` - PostgreSQL connection string
|
||||
- `PAYMENT_PROVIDER` - Payment provider configuration
|
||||
|
||||
25
services/finance/package.json
Normal file
25
services/finance/package.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "@the-order/finance",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "Finance service: payments, ledgers, rates",
|
||||
"main": "./src/index.ts",
|
||||
"scripts": {
|
||||
"dev": "tsx watch src/index.ts",
|
||||
"build": "tsc",
|
||||
"start": "node dist/index.js",
|
||||
"lint": "eslint src --ext .ts",
|
||||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"fastify": "^4.25.2",
|
||||
"@the-order/schemas": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.10.6",
|
||||
"typescript": "^5.3.3",
|
||||
"tsx": "^4.7.0",
|
||||
"eslint": "^8.56.0"
|
||||
}
|
||||
}
|
||||
|
||||
42
services/finance/src/index.ts
Normal file
42
services/finance/src/index.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* Finance Service
|
||||
* Handles payments, ledgers, rate models, and invoicing
|
||||
*/
|
||||
|
||||
import Fastify from 'fastify';
|
||||
|
||||
const server = Fastify({
|
||||
logger: true,
|
||||
});
|
||||
|
||||
// Health check
|
||||
server.get('/health', async () => {
|
||||
return { status: 'ok' };
|
||||
});
|
||||
|
||||
// Ledger operations
|
||||
server.post('/ledger/entry', async (request, reply) => {
|
||||
// TODO: Implement ledger entry
|
||||
return { message: 'Ledger entry endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Payment processing
|
||||
server.post('/payments', async (request, reply) => {
|
||||
// TODO: Implement payment processing
|
||||
return { message: 'Payment endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Start server
|
||||
const start = async () => {
|
||||
try {
|
||||
const port = Number(process.env.PORT) || 4003;
|
||||
await server.listen({ port, host: '0.0.0.0' });
|
||||
console.log(`Finance service listening on port ${port}`);
|
||||
} catch (err) {
|
||||
server.log.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
start();
|
||||
|
||||
10
services/finance/tsconfig.json
Normal file
10
services/finance/tsconfig.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
|
||||
}
|
||||
|
||||
41
services/identity/README.md
Normal file
41
services/identity/README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Identity Service
|
||||
|
||||
Service for eIDAS/DID, verifiable credentials, and identity management.
|
||||
|
||||
## Features
|
||||
|
||||
- Wallet/IDP integration
|
||||
- Verifiable credential issuance and verification
|
||||
- Qualified signatures for eIDAS
|
||||
- DID resolution and management
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Run development server
|
||||
pnpm dev
|
||||
|
||||
# Build
|
||||
pnpm build
|
||||
|
||||
# Start production server
|
||||
pnpm start
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
- `GET /health` - Health check
|
||||
- `POST /vc/issue` - Issue verifiable credential
|
||||
- `POST /vc/verify` - Verify verifiable credential
|
||||
- `POST /sign` - Sign document
|
||||
|
||||
## Environment Variables
|
||||
|
||||
- `PORT` - Server port (default: 4002)
|
||||
- `OIDC_ISSUER` - OIDC issuer URL
|
||||
- `EIDAS_PROVIDER_URL` - eIDAS provider URL
|
||||
- `KMS_KEY_ID` - KMS key ID for signing
|
||||
|
||||
27
services/identity/package.json
Normal file
27
services/identity/package.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "@the-order/identity",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "Identity service: eIDAS/DID, verifiable credentials",
|
||||
"main": "./src/index.ts",
|
||||
"scripts": {
|
||||
"dev": "tsx watch src/index.ts",
|
||||
"build": "tsc",
|
||||
"start": "node dist/index.js",
|
||||
"lint": "eslint src --ext .ts",
|
||||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"fastify": "^4.25.2",
|
||||
"@the-order/auth": "workspace:*",
|
||||
"@the-order/crypto": "workspace:*",
|
||||
"@the-order/schemas": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.10.6",
|
||||
"typescript": "^5.3.3",
|
||||
"tsx": "^4.7.0",
|
||||
"eslint": "^8.56.0"
|
||||
}
|
||||
}
|
||||
|
||||
48
services/identity/src/index.ts
Normal file
48
services/identity/src/index.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* Identity Service
|
||||
* Handles eIDAS/DID, verifiable credentials, and identity management
|
||||
*/
|
||||
|
||||
import Fastify from 'fastify';
|
||||
|
||||
const server = Fastify({
|
||||
logger: true,
|
||||
});
|
||||
|
||||
// Health check
|
||||
server.get('/health', async () => {
|
||||
return { status: 'ok' };
|
||||
});
|
||||
|
||||
// Issue verifiable credential
|
||||
server.post('/vc/issue', async (request, reply) => {
|
||||
// TODO: Implement VC issuance
|
||||
return { message: 'VC issuance endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Verify verifiable credential
|
||||
server.post('/vc/verify', async (request, reply) => {
|
||||
// TODO: Implement VC verification
|
||||
return { message: 'VC verification endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Sign document
|
||||
server.post('/sign', async (request, reply) => {
|
||||
// TODO: Implement document signing
|
||||
return { message: 'Sign endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Start server
|
||||
const start = async () => {
|
||||
try {
|
||||
const port = Number(process.env.PORT) || 4002;
|
||||
await server.listen({ port, host: '0.0.0.0' });
|
||||
console.log(`Identity service listening on port ${port}`);
|
||||
} catch (err) {
|
||||
server.log.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
start();
|
||||
|
||||
10
services/identity/tsconfig.json
Normal file
10
services/identity/tsconfig.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
|
||||
}
|
||||
|
||||
40
services/intake/README.md
Normal file
40
services/intake/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Intake Service
|
||||
|
||||
Service for document ingestion, OCR, classification, and routing.
|
||||
|
||||
## Features
|
||||
|
||||
- Document upload and ingestion
|
||||
- OCR processing
|
||||
- Content classification (legal/treaty/finance/history)
|
||||
- Entity extraction
|
||||
- Routing to appropriate workflows
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Run development server
|
||||
pnpm dev
|
||||
|
||||
# Build
|
||||
pnpm build
|
||||
|
||||
# Start production server
|
||||
pnpm start
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
- `GET /health` - Health check
|
||||
- `POST /ingest` - Ingest document
|
||||
|
||||
## Environment Variables
|
||||
|
||||
- `PORT` - Server port (default: 4001)
|
||||
- `DATABASE_URL` - PostgreSQL connection string
|
||||
- `STORAGE_PROVIDER` - Storage provider (s3/gcs)
|
||||
- `STORAGE_BUCKET` - Storage bucket name
|
||||
|
||||
27
services/intake/package.json
Normal file
27
services/intake/package.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "@the-order/intake",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "Intake service: ingestion → OCR → classify → route",
|
||||
"main": "./src/index.ts",
|
||||
"scripts": {
|
||||
"dev": "tsx watch src/index.ts",
|
||||
"build": "tsc",
|
||||
"start": "node dist/index.js",
|
||||
"lint": "eslint src --ext .ts",
|
||||
"type-check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"fastify": "^4.25.2",
|
||||
"@the-order/schemas": "workspace:*",
|
||||
"@the-order/storage": "workspace:*",
|
||||
"@the-order/workflows": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.10.6",
|
||||
"typescript": "^5.3.3",
|
||||
"tsx": "^4.7.0",
|
||||
"eslint": "^8.56.0"
|
||||
}
|
||||
}
|
||||
|
||||
36
services/intake/src/index.ts
Normal file
36
services/intake/src/index.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Intake Service
|
||||
* Handles document ingestion, OCR, classification, and routing
|
||||
*/
|
||||
|
||||
import Fastify from 'fastify';
|
||||
|
||||
const server = Fastify({
|
||||
logger: true,
|
||||
});
|
||||
|
||||
// Health check
|
||||
server.get('/health', async () => {
|
||||
return { status: 'ok' };
|
||||
});
|
||||
|
||||
// Ingest endpoint
|
||||
server.post('/ingest', async (request, reply) => {
|
||||
// TODO: Implement document ingestion
|
||||
return { message: 'Ingestion endpoint - not implemented yet' };
|
||||
});
|
||||
|
||||
// Start server
|
||||
const start = async () => {
|
||||
try {
|
||||
const port = Number(process.env.PORT) || 4001;
|
||||
await server.listen({ port, host: '0.0.0.0' });
|
||||
console.log(`Intake service listening on port ${port}`);
|
||||
} catch (err) {
|
||||
server.log.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
start();
|
||||
|
||||
10
services/intake/tsconfig.json
Normal file
10
services/intake/tsconfig.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src"
|
||||
},
|
||||
"include": ["src/**/*"],
|
||||
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
|
||||
}
|
||||
|
||||
18
services/omnis-brand/README.md
Normal file
18
services/omnis-brand/README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# OMNIS Brand Service
|
||||
|
||||
Branded version of OMNIS as a service/app shell.
|
||||
|
||||
## Note
|
||||
|
||||
This directory is intended to be a Git submodule. To add it as a submodule:
|
||||
|
||||
```bash
|
||||
git submodule add <repository-url> services/omnis-brand
|
||||
```
|
||||
|
||||
Or use the provided script:
|
||||
|
||||
```bash
|
||||
./scripts/add-submodules.sh
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user