Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Add ability on first start up for TDE #70

Closed
astb01 opened this issue Dec 20, 2021 · 5 comments
Closed

Feature request: Add ability on first start up for TDE #70

astb01 opened this issue Dec 20, 2021 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@astb01
Copy link

astb01 commented Dec 20, 2021

Hi

I would like to be able to use TDE but haven’t got an idea where to start as the documentation talks about setting up a keystore/wallet etc and trying ALTER SYSTEM SET ENCRYPTION… doesn’t work due to not being in the root container?

Please could you add this feature in or show an example of how it can be enabled on an 18x XE image?

Suggestion perhaps in the docker image:

ENABLE_TDE=yes
WALLET_PASSWORD=foo

then on first start up these environment variables are read and the sqlora.net file is edited and the wallet set up with the instance created with encryption?

Obviously it would require the init.sql to contain encrypted table spaces etc and the start up be slower as I read that TDE may require a database reboot for it to initiate?!

@astb01 astb01 changed the title Feature request: How to enable TDE on an 18XE image? Feature request: Add ability on start up for TDE on an 18XE image? Dec 21, 2021
@astb01 astb01 changed the title Feature request: Add ability on start up for TDE on an 18XE image? Feature request: Add ability on first start up for TDE Dec 21, 2021
@gvenzl gvenzl self-assigned this Jan 5, 2022
@gvenzl gvenzl added the enhancement New feature or request label Jan 5, 2022
@gvenzl
Copy link
Owner

gvenzl commented Jan 5, 2022

Hi @astb01,

Thanks a lot for your feature request!

Oracle Database provides a lot of features and functionalities that make it the number 1 database on the market.
However, abstracting all of the bells and whistles of Oracle Database into container parameters is unfortunately not feasible nor desirable. These images aim to provide easy-to-use, general-purpose Oracle Database containers. Additional setup of any and many of the features and functionalities of Oracle DB is left to startup scripts or, of course, to users to extend these images, where they can tailor the database setup to their needs and decide on the many parameters and choices they have.

That being said, I can see the usefulness of an example of how to set up encrypted tablespaces and thanks to @dhaanpaa-lab0 we now have an examples directory where this will fit in nicely.

So instead of adding this as a feature, I will work on adding this as an example.

@gvenzl gvenzl added the example label Jan 5, 2022
@astb01
Copy link
Author

astb01 commented Jan 5, 2022

Hi @gvenzl - I was thinking it could be an enhancement that allows you to enable TDE on the image (on the initial run - subsequent re-use would imply TDE is enabled/ignored) such that when you want to apply TDE at a tablespace/table/column level you can do easily?

This is very useful if you want to have a non-production image for local testing that has TDE enabled.

I.e so you can the initialise an instance using SQL:

create tablespace BLAH ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT) ...

@gvenzl
Copy link
Owner

gvenzl commented Jan 6, 2022

Hi @astb01,

All that is necessary to create an encrypted tablespace is to first create a keystore (wallet) to store the TDE master encryption key.

However, as it is so often with security, there are many choices depending on how secure one wants to be.

For example, whether that keystore should be software-based, Key Vault, OCI Vault, or hardware-based.
If it is a software-based one, the next question would be whether it should be password-protected, an auto-login keystore, or a local auto-login keystore.

Next, whether that keystore should be for the entire CDB (United Mode), or separate keystores for each PDB (Isolation Mode), each of which could now again be of different types above.
Additionally, the United Mode will make it more difficult to unplug a PDB and plug it in somewhere else.

Then there is the question of where the keystore(s) should be stored on the filesystem.
If it's ever lost or the password is forgotten, nobody will be able to ever unencrypt the data.
On the other hand, if it's using a default password or is an auto-login one, if it's put in an insecure location, anybody who gets hold of it is now able to unencrypt the data. It would be just like handing out a private SSH key.

I understand that probably nothing of that matters to someone who wants to just quickly test something against an encrypted tablespace and throw away the data again.
But it will matter a lot to anybody who does care about the security of the data and who will find a standard mechanism quickly insecure and insufficient.
Users who do care about security will know what they want and how to configure it.

For the user who just wants to quickly test something against an encrypted tablespace, I rather prefer to provide an example on how to create a default keystore with I think three or four commands that he or she can copy/paste into an initialization script first before creating the encrypted tablespaces – and with a big disclaimer that this is not a reliable secure way to encrypt the data.

@astb01
Copy link
Author

astb01 commented Jan 7, 2022

@gvenzl - a set of commands and configuration for the encryption would be ideal - hopefully someone can upload one.

gvenzl added a commit that referenced this issue Jan 17, 2022
gvenzl added a commit that referenced this issue Jan 17, 2022
* ER #61: introduce container minimum memory check

Signed-off-by: gvenzl <[email protected]>

* Update utPLSQL references as per #77

Signed-off-by: gvenzl <[email protected]>

* Provide TDE setup script example as per #70

Signed-off-by: gvenzl <[email protected]>
@gvenzl
Copy link
Owner

gvenzl commented Jan 17, 2022

Hi @astb01,

You can now find a little example setup script and the necessary steps to configure the database for tablespace encryption in examples/setup-tde.sh.

You can, for example, just copy it under /tmp/tde (making sure that the container user has read privileges) and run it as initialization script:

podman run --name test -p 1521:1521 -e ORACLE_PASSWORD=LetsTest1 -v /tmp/tde:/container-entrypoint-initdb.d gvenzl/oracle-xe:21-slim
CONTAINER: starting up...
...
...
...
CONTAINER: Executing user defined scripts...
CONTAINER: running /container-entrypoint-initdb.d/setup-tde.sh ...

System altered.

Database closed.
Database dismounted.
ORACLE instance shut down.
ORACLE instance started.

Total System Global Area 1241512272 bytes
Fixed Size		    9685328 bytes
Variable Size		  603979776 bytes
Database Buffers	  620756992 bytes
Redo Buffers		    7090176 bytes
Database mounted.
Database opened.

System altered.


keystore altered.


keystore altered.


keystore altered.

Database is now configured for Transparent Data Encryption in United Mode.
CONTAINER: DONE: running /container-entrypoint-initdb.d/setup-tde.sh

CONTAINER: DONE: Executing user defined scripts.


#########################
DATABASE IS READY TO USE!
#########################

From then on, you can create encrypted tablespaces:

SQL> CREATE BIGFILE TABLESPACE DATA
     DATAFILE '/opt/oracle/oradata/XE/XEPDB1/data01.dbf'
     SIZE 10m ENCRYPTION USING 'AES256' ENCRYPT;

TABLESPACE DATA created.

Thanks a lot for your suggestion and of course feel free to use that example script as a template to amend for your encryption configuration needs.

@gvenzl gvenzl closed this as completed Jan 17, 2022
gvenzl added a commit that referenced this issue Dec 2, 2024
* Update tests and retries

Signed-off-by: gvenzl <[email protected]>

* Update all references to REGULAR images

Signed-off-by: gvenzl <[email protected]>

* Clean zip files in lib dir

Signed-off-by: gvenzl <[email protected]>

* Remove not needed deps from fortran runtime

Signed-off-by: gvenzl <[email protected]>

* Remove inventory directory

Signed-off-by: gvenzl <[email protected]>

* Move zip file to ORACLE_BASE for host-only vols

Signed-off-by: gvenzl <[email protected]>

* Use SHRINK SPACE for TEMP files

Signed-off-by: gvenzl <[email protected]>

* Exit SQL*Plus on SQL errors

Signed-off-by: gvenzl <[email protected]>

* Add tag and upload scripts

Signed-off-by: gvenzl <[email protected]>

* Remove XDB

Signed-off-by: gvenzl <[email protected]>

* Remove Oracle Text

Signed-off-by: gvenzl <[email protected]>

* Remove Spatial

Signed-off-by: gvenzl <[email protected]>

* Escape $ signs

Signed-off-by: gvenzl <[email protected]>

* Fix rm ctx typo

Signed-off-by: gvenzl <[email protected]>

* Create new TEMP tablespace for SEED

Signed-off-by: gvenzl <[email protected]>

* Shrink UNDO tablespaces

Signed-off-by: gvenzl <[email protected]>

* Intro Artifactory uploads

Signed-off-by: gvenzl <[email protected]>

* Add fully qualified tags

Signed-off-by: gvenzl <[email protected]>

* Update ReadMe

Signed-off-by: gvenzl <[email protected]>

* Undo retention no longer required

Signed-off-by: gvenzl <[email protected]>

* Further reduce 11g slim image

Signed-off-by: gvenzl <[email protected]>

* No longer needed due to new UNDO tablespace creation

Signed-off-by: gvenzl <[email protected]>

* Remove OJVM and Java Packages + Multimedia and XDK dependencies

Signed-off-by: gvenzl <[email protected]>

* Update ReadMe

Signed-off-by: gvenzl <[email protected]>

* Introduce tests for ORACLE_PASSWORD and ORACLE_RANDOM_PASSWORD

Signed-off-by: gvenzl <[email protected]>

* ER #16: provide APP user variables

Signed-off-by: gvenzl <[email protected]>

* Add Ora pwd, random pwd and app user/pwd tests

Signed-off-by: gvenzl <[email protected]>

* Remove workspace manager

Signed-off-by: gvenzl <[email protected]>

* Remove OLAP

Signed-off-by: gvenzl <[email protected]>

* Update package dependencies removal

Signed-off-by: gvenzl <[email protected]>

* Make removal messages consistent

Signed-off-by: gvenzl <[email protected]>

* Fix Java Packages removal

Signed-off-by: gvenzl <[email protected]>

* ER #22: provide GitHub Actions snippet

Signed-off-by: gvenzl <[email protected]>

* Remove Java Package leftovers

Signed-off-by: gvenzl <[email protected]>

* Do not remove SLAX, used for PL/SQL

Signed-off-by: gvenzl <[email protected]>

* Remove Oracle Text, produce SLIM image

Signed-off-by: gvenzl <[email protected]>

* Update dep removal

Signed-off-by: gvenzl <[email protected]>

* Add 18c slim tests

Signed-off-by: gvenzl <[email protected]>

* Do not remove LDAP folder

Signed-off-by: gvenzl <[email protected]>

* Update test descriptions

Signed-off-by: gvenzl <[email protected]>

* SQLPlus: fail on error

Signed-off-by: gvenzl <[email protected]>

* Remove OJVMSYS leftover

Signed-off-by: gvenzl <[email protected]>

* ER #23: Support ORACLE_DATABASE

Signed-off-by: gvenzl <[email protected]>

* Add checkpoint after UNDO switch

Signed-off-by: gvenzl <[email protected]>

* Remove GPX, standalone, can be downloaded

Signed-off-by: gvenzl <[email protected]>

* Update container test run script

Signed-off-by: gvenzl <[email protected]>

* Update ReadMe for OARCLE_DATABASE 18c only

Signed-off-by: gvenzl <[email protected]>

* Update ReadMe with SLIM image

Signed-off-by: gvenzl <[email protected]>

* Add slim images to upload scripts

Signed-off-by: gvenzl <[email protected]>

* Remove Spatial

Signed-off-by: gvenzl <[email protected]>

* Remove Oracle R

Signed-off-by: gvenzl <[email protected]>

* Remove Cluster Ready Services (crs)

Signed-off-by: gvenzl <[email protected]>

* Remove Clsuter Verification Utility

Signed-off-by: gvenzl <[email protected]>

* Remove deinstall directory

Signed-off-by: gvenzl <[email protected]>

* Remove Oracle Database Provider for Distributed Relational Database Architecture (DRDA)

Signed-off-by: gvenzl <[email protected]>

* Remove install directory

Signed-off-by: gvenzl <[email protected]>

* Update ReadMe

Signed-off-by: gvenzl <[email protected]>

* Remove 'ord' and 'ordim' directories

Signed-off-by: gvenzl <[email protected]>

* Remove Universal Installer

Signed-off-by: gvenzl <[email protected]>

* Remove additional components

Signed-off-by: gvenzl <[email protected]>

* update option flag for build script

Signed-off-by: gvenzl <[email protected]>

* Fix typo in sqlnet.ora

Signed-off-by: gvenzl <[email protected]>

* disable netca

Signed-off-by: gvenzl <[email protected]>

* Register new PDB with Listener

Signed-off-by: gvenzl <[email protected]>

* set shared servers to 0

Signed-off-by: gvenzl <[email protected]>

* Fix cleanup for non-localhost bulid containers

Signed-off-by: gvenzl <[email protected]>

* Remove unnecessary bianries and libraries

Signed-off-by: gvenzl <[email protected]>

* Doc: Remove unnecessary bianries and libraries

Signed-off-by: gvenzl <[email protected]>

* Add backup for old images

Signed-off-by: gvenzl <[email protected]>

* use fully qualified image urls

Signed-off-by: gvenzl <[email protected]>

* invoke backup of old images by default

Signed-off-by: gvenzl <[email protected]>

* Add users to ReadMe

Signed-off-by: gvenzl <[email protected]>

* List RPM package removal alphabetically

Signed-off-by: gvenzl <[email protected]>

* List RPM package removal alphabetically

Signed-off-by: gvenzl <[email protected]>

* Gracefully stop listener (now that listener is started manually)

Signed-off-by: gvenzl <[email protected]>

* Fix typo in RPM package removal

Signed-off-by: gvenzl <[email protected]>

* Introducing 21c-full

Signed-off-by: gvenzl <[email protected]>

* Fixing minor Doc bug

Signed-off-by: gvenzl <[email protected]>

* Add image users

Signed-off-by: gvenzl <[email protected]>

* Add 21c supported tags

Signed-off-by: gvenzl <[email protected]>

* Explain persistent containers

Signed-off-by: gvenzl <[email protected]>

* Update 18c to '18c and onwards'

Signed-off-by: gvenzl <[email protected]>

* Add cleanup to 21c images

Signed-off-by: gvenzl <[email protected]>

* Add jOOQ as image user

Signed-off-by: gvenzl <[email protected]>

* Introducing 21c regular

Signed-off-by: gvenzl <[email protected]>

* Fix static ora* location scripts

Signed-off-by: gvenzl <[email protected]>

* Add 21c images for upload

Signed-off-by: gvenzl <[email protected]>

* Update Readme with 21c tags

Signed-off-by: gvenzl <[email protected]>

* Add artifactory upload

Signed-off-by: gvenzl <[email protected]>

* Adding Container Example Start/Creation Script

* Incorporated feedback and fixes from pull request in example script

* Fix for #43

Signed-off-by: gvenzl <[email protected]>

* Remove Oracle Memory Speed (OMS) PMEM binaries

Signed-off-by: gvenzl <[email protected]>

* Remove MLE

Signed-off-by: gvenzl <[email protected]>

* Added PWgen check

* Clean lastlog

Signed-off-by: gvenzl <[email protected]>

* Add 21c backups

Signed-off-by: gvenzl <[email protected]>

* Fix typo for 21 tests

Signed-off-by: gvenzl <[email protected]>

* Fix for #50, set exec permissions for shell scripts

Signed-off-by: gvenzl <[email protected]>

* Add utPLSQL as users

Signed-off-by: gvenzl <[email protected]>

* Better GitHub Actions documentation as per #45

Signed-off-by: gvenzl <[email protected]>

* Document Upscheme user (#56)

Signed-off-by: gvenzl <[email protected]>

* Update RPM package uninstall for new OL image

Signed-off-by: gvenzl <[email protected]>

* Introducing 21c-slim

Signed-off-by: gvenzl <[email protected]>

* Remove ore.so in 18c

Signed-off-by: gvenzl <[email protected]>

* Move REDO resize to other resize operations to avoid 'checkpoint incomplete' during setup

Signed-off-by: gvenzl <[email protected]>

* Resize REDO logs at end to avoid 'checkpoint incomplete' during setup

Signed-off-by: gvenzl <[email protected]>

* Add Sqitch to users as per #46

Signed-off-by: gvenzl <[email protected]>

* 21-slim GA ready

Signed-off-by: gvenzl <[email protected]>

* Put Docker.io login as first step

Signed-off-by: gvenzl <[email protected]>

* Remove Examples folder from main ReadMe

Signed-off-by: gvenzl <[email protected]>

* Assign variable values before input check

Signed-off-by: gvenzl <[email protected]>

* Fix example script 'pwgen' check

Signed-off-by: gvenzl <[email protected]>

* Introduce fix for #64 (Increase SGA_TARGET on high CPU count)

Signed-off-by: gvenzl <[email protected]>

* Remove Replay Upgrade feature

Signed-off-by: gvenzl <[email protected]>

* Clean up METASTYLESHEET LOBs

Signed-off-by: gvenzl <[email protected]>

* Rebuild pdbsync indexes

Signed-off-by: gvenzl <[email protected]>

* Clean up fed blocks

Signed-off-by: gvenzl <[email protected]>

* Shrink CDB SYSTEM tablespace datafile

Signed-off-by: gvenzl <[email protected]>

* List Ruby packages users (#66)

Signed-off-by: gvenzl <[email protected]>

* Shrink 21c CDB TEMP datafile

Signed-off-by: gvenzl <[email protected]>

* Shrink 18c TEMP datafile

Signed-off-by: gvenzl <[email protected]>

* Remove OLAP library

Signed-off-by: gvenzl <[email protected]>

* Do not increase SGA_TARGET for 11g (fixes #71) (#72)

Oracle Database 11g XE is restricted to use no more than 1 GB of memory. The
fix for #64 sets the memory to 1.5 GB, so that the database fails to start with
the error:

ORA-47500: XE edition memory parameter invalid or not specified

* Update note for #72

Signed-off-by: gvenzl <[email protected]>

* ER #60: introduce container minimum memory check

Signed-off-by: gvenzl <[email protected]>

* ER #61: introduce container minimum memory check

Signed-off-by: gvenzl <[email protected]>

* Update utPLSQL references as per #77

Signed-off-by: gvenzl <[email protected]>

* Provide TDE setup script example as per #70

Signed-off-by: gvenzl <[email protected]>

* More solid fix for #64

Signed-off-by: gvenzl <[email protected]>

* Enhance documentation for secrets (#69)

Signed-off-by: gvenzl <[email protected]>

* Document HitHub Action container label usage (#81)

Signed-off-by: gvenzl <[email protected]>

* Fix doc bug for APP_USER

Signed-off-by: gvenzl <[email protected]>

* Add CREATE SYNONYM permission to APP_USER. (#94)

* Externalise script createAppUser (#103)

Closes #102

* Modularize app user creation

Signed-off-by: gvenzl <[email protected]>

* Update image users

Signed-off-by: gvenzl <[email protected]>

* Fix typo

Signed-off-by: gvenzl <[email protected]>

* Fix #104

Signed-off-by: gvenzl <[email protected]>

* Inlcude pam package for OS based auth (#57)

Signed-off-by: gvenzl <[email protected]>

* Generic fix for #64

Signed-off-by: gvenzl <[email protected]>

* Include 21-slim in backups

Signed-off-by: gvenzl <[email protected]>

* Pre-create container init folders (#108)

Signed-off-by: gvenzl <[email protected]>

* Enable Diag and Tuning packs (and EM Express) #112

Signed-off-by: gvenzl <[email protected]>

* Disable audit log

Signed-off-by: gvenzl <[email protected]>

* Update ImageDetails.md

Signed-off-by: gvenzl <[email protected]>

* Fix for #109

Signed-off-by: gvenzl <[email protected]>

* Reorder references

Signed-off-by: gvenzl <[email protected]>

* Update references

Signed-off-by: gvenzl <[email protected]>

* Document Apple M chips (#63)

Signed-off-by: gvenzl <[email protected]>

* Implemented --nowait (#119)

Signed-off-by: gvenzl <[email protected]>

* Fix missing link for colima install

Signed-off-by: gvenzl <[email protected]>

* Introduce faststart images ER #36

Signed-off-by: gvenzl <[email protected]>

* Introduce faststart images (ER #36)

Signed-off-by: gvenzl <[email protected]>

* Provide images on GHCR (ER #131)

Signed-off-by: gvenzl <[email protected]>

* fix #144

Signed-off-by: gvenzl <[email protected]>

* Include -faststart images in backup

Signed-off-by: gvenzl <[email protected]>

* Document recursive init scripts, make output a bit more readable

Signed-off-by: gvenzl <[email protected]>

* Fix #142, use default memory for BUILDKIT

Signed-off-by: gvenzl <[email protected]>

* #157: Futher specify faststart image use not being for persistency

Signed-off-by: gvenzl <[email protected]>

* Fix typo #168

Signed-off-by: gvenzl <[email protected]>

* #171 Allow mounting external volume for oradata subfolders (#172)

Signed-off-by: Loïc LEFEVRE <[email protected]>

* Fix #171: do not delete directory structure

Signed-off-by: gvenzl <[email protected]>

* Make init script against XE more prominent in README

Signed-off-by: gvenzl <[email protected]>

* Add 'find' utility for 11.2 build

Signed-off-by: gvenzl <[email protected]>

* Add details for enabling In-Memory Columnar processing on XE #188 (#189)

* 21c multiple layers

Signed-off-by: gvenzl <[email protected]>

* multiple layers faststart

Signed-off-by: gvenzl <[email protected]>

* Multiple layers 18c

Signed-off-by: gvenzl <[email protected]>

* Update faststart for 11g

Signed-off-by: gvenzl <[email protected]>

* harmonize Dockerfiles

Signed-off-by: gvenzl <[email protected]>

* multi-layer 11g

Signed-off-by: gvenzl <[email protected]>

* Use user- / group name for chown

Signed-off-by: gvenzl <[email protected]>

* Document -x buildContainerImage.sh parameter

Signed-off-by: gvenzl <[email protected]>

* use env vars instead of literal

Signed-off-by: gvenzl <[email protected]>

* Remove unnecessary timezone files

Signed-off-by: gvenzl <[email protected]>

* Remove unecessary binaries

Signed-off-by: gvenzl <[email protected]>

* Update ImageDetails with timezone files

Signed-off-by: gvenzl <[email protected]>

* Cleanup comments

Signed-off-by: gvenzl <[email protected]>

* Remove old timezone info 18c

Signed-off-by: gvenzl <[email protected]>

* Further remove binaries in 18c

Signed-off-by: gvenzl <[email protected]>

* Use 7z for data files uncompress

Signed-off-by: gvenzl <[email protected]>

* Don't shasum faststart image build

Signed-off-by: gvenzl <[email protected]>

* Run ORACLE_DATABASE case insensitive tests

Signed-off-by: gvenzl <[email protected]>

* Use docker.io login

Signed-off-by: gvenzl <[email protected]>

* Update Quarkus Reference

Signed-off-by: gvenzl <[email protected]>

* Migrate Benthos

Signed-off-by: gvenzl <[email protected]>

* Migrate Hibernate Reactive

Signed-off-by: gvenzl <[email protected]>

* Healthcheck PDB status for 18c+

Signed-off-by: gvenzl <[email protected]>

* Update resetPassword param documentation

Signed-off-by: gvenzl <[email protected]>

* Update Spring Data reference

Signed-off-by: gvenzl <[email protected]>

* Update .bash_profile variables

Signed-off-by: gvenzl <[email protected]>

* Backport healthcheck from Free images (#215)

Signed-off-by: gvenzl <[email protected]>

* Use XEPDB1 as default

Signed-off-by: gvenzl <[email protected]>

* Update jOOQ reference and 'sqlplus'

Signed-off-by: gvenzl <[email protected]>

* Fix #202, /oradata permissions

Signed-off-by: gvenzl <[email protected]>

* Provide user warning of old images

Signed-off-by: gvenzl <[email protected]>

* Update Ruby on Rails ActiveRecord user

Signed-off-by: gvenzl <[email protected]>

* Provide FREE,FREEPDB1 service names (ER #238)

Signed-off-by: Gerald Venzl <[email protected]>

* Update readme

Signed-off-by: Gerald Venzl <[email protected]>

* Update labels

Signed-off-by: Gerald Venzl <[email protected]>

* Fix for #57

Signed-off-by: Gerald Venzl <[email protected]>

* Upgrade 7zip

Signed-off-by: Gerald Venzl <[email protected]>

* Update ReadMe and docker startup script

Signed-off-by: Gerald Venzl <[email protected]>

---------

Signed-off-by: gvenzl <[email protected]>
Signed-off-by: Loïc LEFEVRE <[email protected]>
Signed-off-by: Gerald Venzl <[email protected]>
Co-authored-by: Daniel Haanpaa [Lab0] <[email protected]>
Co-authored-by: cedric-v3 <[email protected]>
Co-authored-by: Simon Potter <[email protected]>
Co-authored-by: Neil Crow <[email protected]>
Co-authored-by: Loïc LEFEVRE <[email protected]>
Co-authored-by: Loïc LEFEVRE <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants