{"id":20207701,"url":"https://github.com/exasol/notebook-connector","last_synced_at":"2025-04-10T12:42:02.449Z","repository":{"id":199513805,"uuid":"703033820","full_name":"exasol/notebook-connector","owner":"exasol","description":"Connection configuration management and additional tools for Jupyter notebooks.","archived":false,"fork":false,"pushed_at":"2025-03-27T15:48:48.000Z","size":896,"stargazers_count":0,"open_issues_count":12,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-28T10:15:22.321Z","etag":null,"topics":["data-science","exasol-integration"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exasol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-10T13:22:00.000Z","updated_at":"2025-03-26T16:32:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"a9632495-bcb5-4c43-89b8-e35abcf4b129","html_url":"https://github.com/exasol/notebook-connector","commit_stats":null,"previous_names":["exasol/notebook-connector"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exasol%2Fnotebook-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exasol%2Fnotebook-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exasol%2Fnotebook-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exasol%2Fnotebook-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exasol","download_url":"https://codeload.github.com/exasol/notebook-connector/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217155,"owners_count":21066634,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","exasol-integration"],"created_at":"2024-11-14T05:31:30.777Z","updated_at":"2025-04-10T12:42:02.443Z","avatar_url":"https://github.com/exasol.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exasol Notebook Connector\n\nConnection configuration management and additional tools for Jupyter notebook applications provided by Exasol company.\n\n[![PyPI Version](https://img.shields.io/pypi/v/exasol-notebook-connector)](https://pypi.org/project/exasol-notebook-connector/)\n[![License](https://img.shields.io/pypi/l/exasol-notebook-connector)](https://opensource.org/licenses/MIT)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/exasol-notebook-connector)](https://pypi.org/project/exasol-notebook-connector)\n[![Last Commit](https://img.shields.io/github/last-commit/exasol/notebook-connector)](https://pypi.org/project/exasol-notebook-connector/)\n\n## Features\n\nExasol Notebook Connector (ENC) currently contains a **Secret Store** that can be used in Jupyter notebook applications to store arbitrary credentials and configuration items, such as user names, passwords, URLs, etc.\n\nBy that users of such notebook applications\n* need to enter their credentials and configuration items only once\n* can store them in a secure, encrypted, and persistent file based on SQLite and [coleifer/sqlcipher3](https://github.com/coleifer/sqlcipher3)\n* can use these credentials and configuration items in their notebook applications\n\n## Usage\n\n```python\nfrom pathlib import Path\nfrom exasol.nb_connector.secret_store import Secrets\n\nfile = \"password_db.sqlite\"\nsecrets = Secrets(Path(file), \"my secret password\")\nkey = \"my key\"\nsecrets.save(key, \"my value\")\nvalue = secrets.get(key)\n```\n\n#### Constraints and Special Situations\n\n* If file does not exist then SecretStore will create it.\n* If password is wrong then SecretStore will throw an exception.\n* If file contains key from a session in the past then method `secrets.save()` will overwrite the value for this key.\n* If key is not contained in file then SecretStore returns `None`.\n* Saving multiple keys can be chained: `secrets.save(\"key-1\", \"A\").save(\"key-2\", \"B\")`\n\n## Additional Information\n\n* [NC Developer Guide](doc/developer_guide/developer-guide.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexasol%2Fnotebook-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexasol%2Fnotebook-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexasol%2Fnotebook-connector/lists"}