Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/exasol/row-level-security-lua
Lua implementation of Exasol's row-level-security
https://github.com/exasol/row-level-security-lua
access-management exasol exasol-integration lua security virtual-schema
Last synced: 6 days ago
JSON representation
Lua implementation of Exasol's row-level-security
- Host: GitHub
- URL: https://github.com/exasol/row-level-security-lua
- Owner: exasol
- License: mit
- Created: 2020-07-31T10:39:06.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-07T13:29:01.000Z (7 months ago)
- Last Synced: 2024-05-08T08:50:03.130Z (7 months ago)
- Topics: access-management, exasol, exasol-integration, lua, security, virtual-schema
- Language: Java
- Homepage:
- Size: 518 KB
- Stars: 1
- Watchers: 9
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Row Level Security (Lua)
[![Build Status](https://github.com/exasol/row-level-security-lua/actions/workflows/ci-build.yml/badge.svg)](https://github.com/exasol/row-level-security-lua/actions/workflows/ci-build.yml)
Protect access to database tables on a per-row level based on roles and / or tenants.
## Features
Restrict access to rows (datasets) in tables to …
* set of roles
* tenants (owners)
* group of users
* combination of tenant and role
* combination of tenant and group## Table of Contents
### Information for Users
* [User Guide](doc/user_guide/user_guide.md)
* [Tutorial](doc/user_guide/tutorial.md)
* [Changelog](doc/changes/changelog.md)### Information for Contributors
Requirement, design documents and coverage tags are written in [OpenFastTrace](https://github.com/itsallcode/openfasttrace) format.
* [Developer Guide](doc/developer_guide/developer_guide.md)
### Runtime Dependencies
#### Lua Dependencies
Running the RLS Lua Virtual Schema requires a Exasol with built-in Lua 5.1 or later.
| Dependency | Purpose | License |
|------------------------------------------|--------------------------------------------------------|-------------------------------|
| [Lua CJSON][luacjson] | JSON parsing and writing | MIT License |
| [remotelog][remotelog] | Logging through a TCP socket | MIT License |`remotelog` has a transitive dependency to [LuaSocket][luasocket] (MIT License). Note that Lua CSON and LuaSucket are pre-installed on an Exasol database.
For local unit testing you need to install them on the test machine though.
[luacjson]: https://www.kyne.com.au/~mark/software/lua-cjson.php
[luasocket]: https://github.com/diegonehab/luasocket
[remotelog]: https://github.com/exasol/remotelog-lua### Test Dependencies
#### Unit Test Dependencies
Unit tests are written in Lua.
| Dependency | Purpose | License |
|------------------------------------------|--------------------------------------------------------|-------------------------------|
| [luaunit][luaunit] | Unit testing framework | BSD License |
| [Mockagne][mockagne] | Mocking framework | MIT License |[luaunit]: https://github.com/bluebird75/luaunit
[mockagne]: https://github.com/vertti/mockagne#### Integration Test Dependencies
The integration tests require `exasol-testcontainers` to provide an Exasol instance. They are written in Java and require version 11 or later.
See also: Java [Dependencies](dependencies.md).
### Build Dependencies
This project has a complex build setup due to the mixture of Lua and Java. [Apache Maven](https://maven.apache.org/) serves as the main build tool.
Lua build steps are also encapsulated by Maven.
| Dependency | Purpose | License |
|-------------------------------------------|--------------------------------------------------------|-------------------------------|
| [Amalg][amalg] | Bundling Lua modules (and scripts) | MIT License |
| [LuaRocks][luarocks] | Package management | MIT License |[amalg]: https://github.com/siffiejoe/lua-amalg
[luarocks]: https://luarocks.org/See also: Java [Dependencies](dependencies.md).