bastionlab-server


Namebastionlab-server JSON
Version 0.3.7 PyPI version JSON
download
home_page
SummaryServer for BastionLab Confidential Analytics.
upload_time2023-01-06 17:46:52
maintainer
docs_urlNone
authorMithril Security
requires_python
license
keywords confidential computing training client enclave amd-sev machine learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img src="https://github.com/mithril-security/bastionlab/raw/master/docs/assets/logo.png" alt="BastionLab" width="200" height="200" />
</p>

<h1 align="center">Mithril Security – BastionLab</h1>

<h4 align="center">
  <a href="https://www.mithrilsecurity.io">Website</a> |
  <a href="https://bastionlab.readthedocs.io/en/latest/">Documentation</a> |
  <a href="https://discord.gg/TxEHagpWd4">Discord</a> |
  <a href="https://blog.mithrilsecurity.io/">Blog</a> |
  <a href="https://www.linkedin.com/company/mithril-security-company">LinkedIn</a> | 
  <a href="https://www.twitter.com/mithrilsecurity">Twitter</a>
</h4><br>

# πŸ‘‹ Welcome to BastionLab! 

Where data owners and data scientists can securely collaborate without exposing data - opening the way to projects that were too risky to consider.

## βš™οΈ What is BastionLab?

**BastionLab is a simple privacy framework for data science collaboration.** 

It acts like an **access control** solution, for data owners to protect the privacy of their datasets, **and stands as a guard**, to enforce that only privacy-friendly operations are allowed on the data and anonymized outputs are shown to the data scientist. 

- Data owners can let **external or internal data scientists explore and extract values from their datasets, according to a strict privacy policy they'll define in BastionLab**.
- Data scientists can **remotely run queries on data frames without seeing the original data or intermediary results**.

**BastionLab is an open-source project.** Our solution is coded in Rust πŸ¦€ and uses Polars 🐻, a pandas-like library for data exploration.

## πŸ‘Œ Built to be easy and safe to use

Collaborating remotely and safely when it came to data science wasn’t possible until now for highly regulated fields like health, finance, or advertising. When they wanted to put their assets to good use, data owners had to open unrestricted access to their dataset, often through a Jupyter notebook. This was dangerous because too many operations were allowed and the data scientist had numerous ways to extract information from the remote infrastructure (print the whole database, save the dataset in the weights, etc). 

That is why we built BastionLab with the aim to ensure privacy while fitting easily in the whole data science workflow of both data owners and data scientists.

## πŸš€ Quick tour

You can go try out our [Quick tour](https://github.com/mithril-security/bastionlab/tree/master/docs/docs/quick-tour/quick-tour.ipynb) in the documentation to discover BastionLab with a hands-on example using the famous Titanic dataset.

But here’s a taste of what using BastionLab could look like πŸ’

### Data Owner's side
```py
from bastionlab import Connection
import polars as pl

df = pl.read_csv("titanic.csv")

with Connection("bastionlab.example.com") as client:
    client.polars.send_df(df)
```

### Data Scientist's side
```py
from bastionlab import Connection

with Connection("bastionlab.example.com") as client:
    all_remote_dfs = client.polars.list_dfs()
    remote_df = all_remote_dfs[0]
    remote_df.head(5).collect().fetch()
```

## πŸ‘€ What is this wheel

This wheel was made to deploy very easily BastionLab's server on a Google Colab/Jupyter Notebook environments.

**Please remember that while you will have most of the functionality of BastionLab, this wheel was not made to be used in production environments. If you want to personalize more the server and get the security features, it is recommanded to deploy the server yourself. Please refer to the documentation for more information.**

## πŸ—οΈ Key Features

- **Access control**: data owners can define an interactive privacy policy that will filter the data scientist queries. They do not have to open unrestricted access to their datasets anymore. 
- **Limited expressivity**: BastionLab limits the type of operations that can be executed by the data scientists to avoid arbitrary code execution.
- **Transparent remote access**: the data scientists never access the dataset directly. They only manipulate a local object that contains metadata to interact with a remotely hosted dataset. Calls can always be seen by data owners.

## πŸ™‹ Getting Help

- Go to our [Discord](https://discord.com/invite/TxEHagpWd4) #support channel
- Report bugs by [opening an issue on our BastionLab Github](https://github.com/mithril-security/bastionlab/issues)
- [Book a meeting](https://calendly.com/contact-mithril-security/15mins?month=2022-11) with us

## 🚨 Disclaimer

BastionLab is still in development. **Do not use it yet in a production workload.** We will audit our solution in the future to attest that it enforces the security standards of the market. 

## πŸ“ License

BastionLab is licensed under the Apache License, Version 2.0.

*Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* 

*[See the License](http://www.apache.org/licenses/LICENSE-2.0) for the specific language governing permissions and limitations under the License.*

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "bastionlab-server",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "confidential computing training client enclave amd-sev machine learning",
    "author": "Mithril Security",
    "author_email": "contact@mithrilsecurity.io",
    "download_url": "https://files.pythonhosted.org/packages/6c/8e/1f82158c71e21248549c0ca411cb8e1c9fe3b4c1f66227dbf0c5820d477f/bastionlab_server-0.3.7.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img src=\"https://github.com/mithril-security/bastionlab/raw/master/docs/assets/logo.png\" alt=\"BastionLab\" width=\"200\" height=\"200\" />\n</p>\n\n<h1 align=\"center\">Mithril Security \u2013 BastionLab</h1>\n\n<h4 align=\"center\">\n  <a href=\"https://www.mithrilsecurity.io\">Website</a> |\n  <a href=\"https://bastionlab.readthedocs.io/en/latest/\">Documentation</a> |\n  <a href=\"https://discord.gg/TxEHagpWd4\">Discord</a> |\n  <a href=\"https://blog.mithrilsecurity.io/\">Blog</a> |\n  <a href=\"https://www.linkedin.com/company/mithril-security-company\">LinkedIn</a> | \n  <a href=\"https://www.twitter.com/mithrilsecurity\">Twitter</a>\n</h4><br>\n\n# \ud83d\udc4b Welcome to BastionLab! \n\nWhere data owners and data scientists can securely collaborate without exposing data - opening the way to projects that were too risky to consider.\n\n## \u2699\ufe0f What is BastionLab?\n\n**BastionLab is a simple privacy framework for data science collaboration.** \n\nIt acts like an **access control** solution, for data owners to protect the privacy of their datasets, **and stands as a guard**, to enforce that only privacy-friendly operations are allowed on the data and anonymized outputs are shown to the data scientist. \n\n- Data owners can let **external or internal data scientists explore and extract values from their datasets, according to a strict privacy policy they'll define in BastionLab**.\n- Data scientists can **remotely run queries on data frames without seeing the original data or intermediary results**.\n\n**BastionLab is an open-source project.** Our solution is coded in Rust \ud83e\udd80 and uses Polars \ud83d\udc3b, a pandas-like library for data exploration.\n\n## \ud83d\udc4c Built to be easy and safe to use\n\nCollaborating remotely and safely when it came to data science wasn\u2019t possible until now for highly regulated fields like health, finance, or advertising. When they wanted to put their assets to good use, data owners had to open unrestricted access to their dataset, often through a Jupyter notebook. This was dangerous because too many operations were allowed and the data scientist had numerous ways to extract information from the remote infrastructure (print the whole database, save the dataset in the weights, etc). \n\nThat is why we built BastionLab with the aim to ensure privacy while fitting easily in the whole data science workflow of both data owners and data scientists.\n\n## \ud83d\ude80 Quick tour\n\nYou can go try out our [Quick tour](https://github.com/mithril-security/bastionlab/tree/master/docs/docs/quick-tour/quick-tour.ipynb) in the documentation to discover BastionLab with a hands-on example using the famous Titanic dataset.\n\nBut here\u2019s a taste of what using BastionLab could look like \ud83c\udf52\n\n### Data Owner's side\n```py\nfrom bastionlab import Connection\nimport polars as pl\n\ndf = pl.read_csv(\"titanic.csv\")\n\nwith Connection(\"bastionlab.example.com\") as client:\n    client.polars.send_df(df)\n```\n\n### Data Scientist's side\n```py\nfrom bastionlab import Connection\n\nwith Connection(\"bastionlab.example.com\") as client:\n    all_remote_dfs = client.polars.list_dfs()\n    remote_df = all_remote_dfs[0]\n    remote_df.head(5).collect().fetch()\n```\n\n## \ud83d\udc40 What is this wheel\n\nThis wheel was made to deploy very easily BastionLab's server on a Google Colab/Jupyter Notebook environments.\n\n**Please remember that while you will have most of the functionality of BastionLab, this wheel was not made to be used in production environments. If you want to personalize more the server and get the security features, it is recommanded to deploy the server yourself. Please refer to the documentation for more information.**\n\n## \ud83d\udddd\ufe0f Key Features\n\n- **Access control**: data owners can define an interactive privacy policy that will filter the data scientist queries. They do not have to open unrestricted access to their datasets anymore. \n- **Limited expressivity**: BastionLab limits the type of operations that can be executed by the data scientists to avoid arbitrary code execution.\n- **Transparent remote access**: the data scientists never access the dataset directly. They only manipulate a local object that contains metadata to interact with a remotely hosted dataset. Calls can always be seen by data owners.\n\n## \ud83d\ude4b Getting Help\n\n- Go to our [Discord](https://discord.com/invite/TxEHagpWd4) #support channel\n- Report bugs by [opening an issue on our BastionLab Github](https://github.com/mithril-security/bastionlab/issues)\n- [Book a meeting](https://calendly.com/contact-mithril-security/15mins?month=2022-11) with us\n\n## \ud83d\udea8 Disclaimer\n\nBastionLab is still in development. **Do not use it yet in a production workload.** We will audit our solution in the future to attest that it enforces the security standards of the market. \n\n## \ud83d\udcdd License\n\nBastionLab is licensed under the Apache License, Version 2.0.\n\n*Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* \n\n*[See the License](http://www.apache.org/licenses/LICENSE-2.0) for the specific language governing permissions and limitations under the License.*\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Server for BastionLab Confidential Analytics.",
    "version": "0.3.7",
    "split_keywords": [
        "confidential",
        "computing",
        "training",
        "client",
        "enclave",
        "amd-sev",
        "machine",
        "learning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "377f151027b5f42d1f19a7ddf8df7bc4c8d11a5f8dc429c818b887edb7e75056",
                "md5": "6a6bafe218ada360146020947185bed7",
                "sha256": "98be6dd72f71f183c7887932ca63c89edc29a0f3f2c841b18f857702556890c7"
            },
            "downloads": -1,
            "filename": "bastionlab_server-0.3.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6a6bafe218ada360146020947185bed7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 5970,
            "upload_time": "2023-01-06T17:46:50",
            "upload_time_iso_8601": "2023-01-06T17:46:50.695036Z",
            "url": "https://files.pythonhosted.org/packages/37/7f/151027b5f42d1f19a7ddf8df7bc4c8d11a5f8dc429c818b887edb7e75056/bastionlab_server-0.3.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6c8e1f82158c71e21248549c0ca411cb8e1c9fe3b4c1f66227dbf0c5820d477f",
                "md5": "82b85f800335ee390191ddad56b9952f",
                "sha256": "86df7411888c101294cf02a110fb5720cafc49fd3385e62e54a0370dd02806c7"
            },
            "downloads": -1,
            "filename": "bastionlab_server-0.3.7.tar.gz",
            "has_sig": false,
            "md5_digest": "82b85f800335ee390191ddad56b9952f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 5923,
            "upload_time": "2023-01-06T17:46:52",
            "upload_time_iso_8601": "2023-01-06T17:46:52.030503Z",
            "url": "https://files.pythonhosted.org/packages/6c/8e/1f82158c71e21248549c0ca411cb8e1c9fe3b4c1f66227dbf0c5820d477f/bastionlab_server-0.3.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-06 17:46:52",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "bastionlab-server"
}
        
Elapsed time: 0.02399s