# Legacy Repositories (Pre-Mono-repo History)

Before the mono-repo migration, each component in [`Architecture.md`](./Architecture.md) lived in its own standalone Azure DevOps repository, named `Framework.NCore.<Component>`. Those 19 repositories have been **retired**: all source history was preserved and copied into this repository under `src/{component}`, and their build pipelines were retargeted to build from here (see [`Pipelines.md`](./Pipelines.md)).

The old repositories are kept **read-only** for historical reference — they can still be browsed and cloned, and their full commit history remains intact, but they **no longer accept commits, branches, tags, or pull requests** (write permissions have been denied for all users on `main`/`master` and every other ref). All future changes happen in this repository.

## Repository map

| Component (`src/...` here) | Legacy repository | Legacy default branch |
|---|---|---|
| `SAIF.NetCore.ServiceContracts` | [Framework.NCore.ServiceContracts](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.ServiceContracts) | `master` |
| `SAIF.NetCore.Common` | [Framework.NCore.Common](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.Common) | `master` |
| `SAIF.NetCore.AuthService` | [Framework.NCore.AuthService](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.AuthService) | `master` |
| `SAIF.NetCore.DbConnectionClient` | [Framework.NCore.DBConnectionClient](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.DBConnectionClient) | `master` |
| `SAIF.NetCore.EnvironmentClient` | [Framework.NCore.EnvironmentClient](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.EnvironmentClient) | `master` |
| `SAIF.NetCore.ErrorHandler` | [Framework.NCore.ErrorHandler](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.ErrorHandler) | `master` |
| `SAIF.NetCore.HashUtil` | [Framework.NCore.HashUtil](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.HashUtil) | `master` |
| `SAIF.NetCore.HttpClients` | [Framework.NCore.HttpClients](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.HttpClients) | `master` |
| `SAIF.NetCore.LegacyAuth` | [Framework.NCore.LegacyAuth](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.LegacyAuth) | `master` |
| `Messaging` | [Framework.NCore.Messaging](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.Messaging) | `master` |
| `SAIF.NetCore.Nhibernate` | [Framework.NCore.NHibernate](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.NHibernate) | `master` |
| `SAIF.NetCore.NtlmApiAuth` | [Framework.NCore.NtlmApiAuth](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.NtlmApiAuth) | `master` |
| `SAIF.NetCore.OIDC` | [Framework.NCore.OIDC](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.OIDC) | `master` |
| `SAIF.NetCore.PingableService` | [Framework.NCore.PingableService](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.PingableService) | `master` |
| `SAIF.NetCore.Logging` | [Framework.NCore.SaifLog](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.SaifLog) | `master` |
| `SAIF.NetCore.ServiceExtensions` | [Framework.NCore.ServiceExtensions](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.ServiceExtensions) | `master` |
| `SAIF.NetCore.SystemHash` | [Framework.NCore.SystemHash](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.SystemHash) | `master` |
| `SAIF.NetCore.Clients.UC4` | [Framework.NCore.UC4Client](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.UC4Client) | `master` |
| `SAIF.NetCore.WindowsService` | [Framework.NCore.WindowsService](https://dev.azure.com/SAIFCorporation/Architecture/_git/Framework.NCore.WindowsService) | `master` |

## What "read-only" means

For each legacy repository, the **Contribute**, **Contribute to pull requests**, **Force push**, **Create branch**, and **Create tag** permissions have been explicitly **denied** for all users at the repository level (via the `Git Repositories` security namespace). **Read** access is untouched, so:

- ✅ Browsing files, commit history, tags, and old branches still works.
- ✅ `git clone` / `git fetch` still works.
- ❌ `git push` (to any branch), creating a new branch or tag, and opening a pull request are all blocked.

Their build pipelines have also been disabled (see [`Pipelines.md`](./Pipelines.md) for the current, active pipeline set in this repository).
