# [7.16.0](https://git.datacontroller.io/dc/dc/compare/v7.15.0...v7.16.0) (2026-09-28) ### Bug Fixes * **ci:** correct server-ci webSourcePath and build frontend before mock deploy ([a4ad4cb](a4ad4cba28)) * **client:** parse iOS browsers in parseUserAgent ([eec3438](eec3438de9)) * **diagnostics:** give the startup service a body for browser_info ([5538e0c](5538e0c575)) * **diagnostics:** treat _debug=128 as debug on ([8de9978](8de9978213)) * **loader:** abort when a post edit hook routes to an unregistered table ([171974b](171974bd41)) * **mocks:** keep the mock hook reader inside the Drive ([7fd8ae4](7fd8ae4629)) * **sas:** drop the duplicated abort in the target re-registration check ([48d45ac](48d45ac7f8)) * **sidebar:** drop the query string from the sub-page label ([d2dd46b](d2dd46bfdf)) ### Features * **client:** report the browser and both versions in browser_info ([a770f36](a770f3695c)) * **client:** send session_info with every service request ([50282f2](50282f2ddb)) * **filters:** make the applied-filter panel expandable ([fdaa249](fdaa249f44)) * **mocks:** emulate the %mpeinit diagnostics dump ([200ee89](200ee8931d)) * **mocks:** run pre/post edit hook programs in the JS mock services ([b5f2283](b5f228351b)) * **mpeinit:** dump session_info to the log when debug is on ([fbd77a5](fbd77a5334)) * **release:** publish SHA256SUMS and verify instructions with each release ([f1ae501](f1ae501d49))
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.
An individual Viya deploy can be done in just 2 lines of #SAS code!
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.
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!
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:
- Sets up the development environment with SASjs server and mocked services
- Builds and serves the Angular frontend
- Installs Chrome and runs
lhci autorun(Lighthouse CI) against key pages - Uploads results as artifacts for review
To run Lighthouse checks locally:
cd client
npm install
npm run lighthouse
Configuration is in client/lighthouserc.js (URL list, desktop preset, Chrome flags, assertions).