# Data Controller for SAS

**Control your manual data modifications!**

_Alternatives to Data Controller include:_

* 💾 Developing / testing / deploying / scheduling overnight batch jobs to load files from shared drives
* 🔒 Opening (and locking) datasets in Enterprise Guide or SAS® Table Viewer to perform direct updates
* ❓ Asking a #DBA to run validated code after a change management process
* 🌐 Building & maintaining your own custom web application
* 🏃 Running #SAS or #SQL updates in production

_Problems with the above include:_

* Legacy 'black box' solutions with little to no testing, documentation or support
* End users requiring direct write access to critical data sources in production
* Upload routines that must be manually modified when the data model changes
* Breaches due to unnecessary parties having access to the data
* Inability to trace who made a change, when, and why
* Reliance on key individuals to perform updates
* Building bespoke ETL for every new data source
* High risk of manual error / data corruption

Data Controller for SAS® solves all these issues in a simple-to-install, user-friendly, secure, documented, battle-tested web application.  Available on Viya, SAS 9 EBI, and [SASjs Server](https://server.sasjs.io).

An individual Viya deploy can be done in just 2 lines of #SAS code!

```sas
filename dc url "https://git.datacontroller.io/dc/dc/releases/download/latest/viya.sas";
%inc dc;
```

For a multi-user deploy, using a shared system account, please see [deploy docs](https://docs.datacontroller.io/deploy-viya/).

For further information:

* Main site:  https://datacontroller.io
* Docs:  https://docs.datacontroller.io
* Code: https://code.datacontroller.io

For support, contact support@4gl.io or reach out on [Matrix](https://matrix.to/#/#dc:4gl.io)!

## Development

### Lighthouse CI

This project includes automated Lighthouse performance and accessibility checks that run on pull requests. The checks ensure:

- **Accessibility Score**: Minimum 1.0 (100%) median score across all tested pages

The Lighthouse CI workflow:
1. Sets up the development environment with SASjs server and mocked services
2. Builds and serves the Angular frontend
3. Installs Chrome and runs `lhci autorun` (Lighthouse CI) against key pages
4. Uploads results as artifacts for review

To run Lighthouse checks locally:
```bash
cd client
npm install
npm run lighthouse
```

Configuration is in `client/lighthouserc.js` (URL list, `desktop` preset, Chrome flags, assertions).
