You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Summary
Refs #109
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **Documentation**
* Added comprehensive deployment documentation covering prerequisites,
networking setup, and service deployment procedures.
* Introduced data architecture documentation describing layered data
models and catalogue structure.
* Expanded system architecture documentation outlining key services and
their interactions.
* **Chores**
* Updated configuration tooling and development infrastructure.
<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Copy file name to clipboardExpand all lines: AGENTS.md
+9-40Lines changed: 9 additions & 40 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,16 +17,7 @@ common developer tasks.
17
17
18
18
## Repository layout (high level)
19
19
20
-
```text
21
-
.
22
-
├── certs/ # Certificate request configurations used for HTTPS/SSL
23
-
├── elt-common/ # Reusable Python package with common ETL/ELT helpers used by the warehouses
24
-
├── docs/ # User and developer documentation using MkDocs. See `docs/src` for content used in the published docs site.
25
-
├── infra/
26
-
│ ├── ansible-docker/ # Ansible playbooks/roles to deploy the system to the STFC (OpenStack) cloud.
27
-
│ └── local/ # docker-compose configuration for a local development environment and end-to-end CI tests.
28
-
└── warehouses/ # One subdirectory per (Lakekeeper) warehouse. Each contains ELT code to extract, transform and load data from external sources into Iceberg tables.
29
-
```
20
+
-[`docs-devel/src/index.md#repository-overview`](./docs-devel/src/index.md#repository-overview) describes the repository layout.
30
21
31
22
## Pre-commit hooks
32
23
@@ -37,31 +28,8 @@ common developer tasks.
37
28
38
29
- There are both unit and e2e tests for the `elt-common` package under `elt-common/tests/`. They are
39
30
written using `pytest`.
40
-
- Install the package in editable mode + dev dependencies in a Python environment, e.g. with `uv`
41
-
42
-
```bash
43
-
cd elt-common/
44
-
uv venv
45
-
uv install . --editable --group dev
46
-
```
47
-
48
-
- Run unit tests with:
49
-
50
-
```bash
51
-
cd elt-common/
52
-
uv run pytest unit_tests
53
-
```
54
-
55
-
- The e2e tests require a running data platform stack. Use the docker-based setup in `infra/local`
56
-
to start the stack, run the tests and bring down the stack:
57
-
58
-
```bash
59
-
pushd infra/local; docker compose up -d;popd# start the services
60
-
echo"127.0.0.1 adp-router"| sudo tee -a /etc/hosts # edit /etc/hosts
61
-
cd elt-common/
62
-
uv run pytest e2e_tests
63
-
pushd infra/local; docker compose down -v;popd# stop the services
64
-
```
31
+
-[`elt-common/README.md`](./elt-common/README.md) explains how to run tests for the `elt-common`
32
+
Python package
65
33
66
34
## Cloud deployment
67
35
@@ -73,11 +41,12 @@ pushd infra/local; docker compose down -v; popd # stop the services
73
41
74
42
- When creating pull requests:
75
43
76
-
1.**Read the current PR template**: Always check `.github/PULL_REQUEST_TEMPLATE.md` for the latest format
77
-
2.**Follow PR title conventions**: Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
78
-
- Format: `type(scope): description`
79
-
- Example: `fix(warehouse/accelerator): fix join in model`
**Important**: Always reference the actual template file at `.github/PULL_REQUEST_TEMPLATE.md` instead of using cached content, as the template may be updated over time.
to organise data as it flows from source systems through to analytics consumers.
6
+
7
+
## High-level view
8
+
9
+
We use the standard layer names `bronze`/`silver`/`gold` where each layer has a clear responsibility. See diagram below
10
+
11
+
### Bronze
12
+
13
+
The landing zone for ingested data. Data is pushed into Iceberg tables either in its original state
14
+
or minimally cleaned/normalised. The bronze layer is the single source of truth for all subsequent
15
+
transformations and supports full reprocessing to regenerate the tables in the subsequent layers.
16
+
This layer is not intended for use by end consumers.
17
+
18
+
### Silver
19
+
20
+
Data is cleaned and validated, including enforcing quality checks. The silver layer typically
21
+
applies little to no aggregation leaving detailed information for end users to perform their
22
+
own analyses.
23
+
24
+
### Gold
25
+
26
+
Data is curated, typically with aggregation applied, into consumption-ready datasets built for business intelligence (BI), reporting and machine learning.
27
+
28
+
An example diagram of this architecture for a business operations domain is reproduced here:
0 commit comments