{"id":13799675,"url":"https://github.com/aprismatic/prismadb","last_synced_at":"2025-04-19T12:46:56.358Z","repository":{"id":81476226,"uuid":"83745928","full_name":"aprismatic/prismadb","owner":"aprismatic","description":"Prisma/DB public releases and documentation.","archived":false,"fork":false,"pushed_at":"2020-08-24T07:55:09.000Z","size":341,"stargazers_count":35,"open_issues_count":10,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-12T17:06:49.259Z","etag":null,"topics":["database","database-proxy","db-proxy","encrypted-database","encryption-tool","homomorphic-encryption","proxy","security"],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aprismatic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/supported-clients.md","governance":null,"roadmap":null,"authors":null}},"created_at":"2017-03-03T02:04:07.000Z","updated_at":"2024-11-12T21:06:37.000Z","dependencies_parsed_at":"2024-01-07T08:10:19.974Z","dependency_job_id":null,"html_url":"https://github.com/aprismatic/prismadb","commit_stats":null,"previous_names":["prismadb/prismadb"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aprismatic%2Fprismadb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aprismatic%2Fprismadb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aprismatic%2Fprismadb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aprismatic%2Fprismadb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aprismatic","download_url":"https://codeload.github.com/aprismatic/prismadb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249582955,"owners_count":21294815,"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":["database","database-proxy","db-proxy","encrypted-database","encryption-tool","homomorphic-encryption","proxy","security"],"created_at":"2024-08-04T00:01:05.022Z","updated_at":"2025-04-19T12:46:56.341Z","avatar_url":"https://github.com/aprismatic.png","language":"PowerShell","funding_links":[],"categories":["Databases","PowerShell"],"sub_categories":[],"readme":"# Prisma/DB\n\n[Prisma/DB](https://prismadb.com/) (https://prismadb.com/) is a cryptographic security layer for relational database systems, that currently supports Microsoft SQL Server, MySQL, MariaDB, PostgreSQL and CockroachDB.\nStarted as a research project in [Nanyang Technological University](http://www.ntu.edu.sg/Pages/home.aspx) (Singapore), it is now a fast-growing product developed by [Aprismatic](https://aprismatic.com).\n\n**Links**: [📚 Documentation](https://prismadb.readthedocs.io/en/latest/)  |  [📦 Docker images](https://prismadb.readthedocs.io/en/latest/docker-images/)  |  [Prisma/DB website](https://prismadb.com/)  |  [Aprismatic website](https://aprismatic.com)\n\n[![Documentation Status](https://readthedocs.org/projects/prismadb/badge/?version=latest)](https://prismadb.readthedocs.io/en/latest/?badge=latest)\n![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/aprismatic/prismadb?include_prereleases)\n[![](https://img.shields.io/docker/pulls/aprismatic/prismadb-proxy-mysql.svg)](https://hub.docker.com/r/aprismatic/prismadb-proxy-mysql \"MySQL\")\n[![](https://img.shields.io/docker/pulls/aprismatic/prismadb-proxy-mssql.svg)](https://hub.docker.com/r/aprismatic/prismadb-proxy-mssql \"SQL Server\")\n[![](https://img.shields.io/docker/pulls/aprismatic/prismadb-proxy-postgres.svg)](https://hub.docker.com/r/aprismatic/prismadb-proxy-postgres \"PostgreSQL\")\n\n## Quickstart Guide\nThe easiest way to try out Prisma/DB is to use Docker containers.\nThis will also keep your computer clutter-free.\nFor a more comprehensive guide on working with Prisma/DB CE or Enterprise, please head over to [documentation](https://prismadb.readthedocs.io/en/latest/getting-started-proxies/).\n\n**Important for Windows users**: Enabling Hyper-V (required by Docker for Windows) will disable VirtualBox or any other virtualization manager.\nYou won't be able to start your VirtualBox VMs until you disable Hyper-V (or migrate your VMs to Hyper-V).\n\n### 1. Installing Docker\nInstall Docker by following the instructions at https://docs.docker.com/install/.\n\nOn Windows, after the installation is finished, make sure that Docker is switched to Linux containers.\nIt could be done by right-clicking the Docker icon in the taskbar and choosing the respective menu item.\n\nOn Linux, Docker Compose may not be installed automatically with Docker,\nyou can follow the instructions at https://docs.docker.com/compose/install/ to install Compose.\n\n### 2. Launching Prisma/DB Demo Suite\n\nTo launch the demo suite you will need to open your command line interface. On Windows, you may launch PowerShell; on Mac, you can launch Terminal app; if you are on Linux, you sure know what to do :)\n\n**1)** Obtain the Docker Compose file:\n\nDownload/save the following YAML Docker Compose file to your machine:\n[/sample-scripts/postgres/docker-compose/linux/docker-compose.yml](https://github.com/aprismatic/prismadb/blob/master/sample-scripts/postgres/docker-compose/linux/docker-compose.yml) [[Raw File](https://raw.githubusercontent.com/aprismatic/prismadb/master/sample-scripts/postgres/docker-compose/linux/docker-compose.yml)]\n\nThis Docker Compose file will start a PostgreSQL server with Prisma/DB UDFs, as well as the Prisma/DB Proxy (trial mode) for PostgreSQL. Importing/exporting of encryption keys is disabled in the trial mode of Prisma/DB Proxy, but other than that, it is a fully featured build.\n\n**2)** Run the containers in detached mode:\n\n`\u003e docker-compose up -d`\n\n**3)** Launch Psql command line tool to connect to the database through the Prisma/DB Proxy:\n\n`\u003e docker exec -it prismadb_postgres_db psql -U postgres -h prismadb_postgres_proxy -p 4000 testdb`\n\nUse password `Qwer!234` to authenticate as `postgres` user, and enter `\\q` anytime to quit.\n\n**4)** Use some of the following queries to try out the encrypted database:\n\n```SQL\nCREATE TABLE t1\n(\n\ta INT ENCRYPTED FOR (MULTIPLICATION, ADDITION, RANGE),\n\tb INT ENCRYPTED FOR (MULTIPLICATION, ADDITION, RANGE),\n\tc INT,\n\td VARCHAR(30) ENCRYPTED FOR (STORE, SEARCH),\n\te VARCHAR(30)\n);\n\n-- Display column details\nSHOW COLUMNS FROM t1;\n\nINSERT INTO t1 (a, b, c, d, e) VALUES\n( 1,  2,   3, 'Hello', 'Prisma/DB'),\n(12,  0,   7, 'Test', 'data'),\n( 0,  2, 123, 'This is encrypted', 'And this is not'),\n(71, 67,  13, 'Last', 'row');\n\n-- Arithmetic operations and search over encrypted values\nSELECT a, b, a + b, b * a, (b * a) + b, c, d, e\nFROM   t1\nWHERE  b = 2;\n```\n\n**5)** Stop and remove containers:\n\n`\u003e docker-compose down`\n\n---\n\nPlease note that Prisma/DB currently supports only a subset of the full SQL.\nWe are constantly working to support more.\nIf you encounter a problem with your queries, please head to the Issues section and let us know!\n\nConnect to the database server directly (it's at `localhost:5432`) using any database management tool (HeidiSQL, Psql, etc.) or Psql directly from the PostgreSQL container:\n\n`\u003e docker exec -it prismadb_postgres_db psql -U postgres -h 127.0.0.1 -p 5432 testdb`\n\nand you would be able to see the partially encrypted database as it is stored on the server, with the data in selected columns being encrypted.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faprismatic%2Fprismadb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faprismatic%2Fprismadb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faprismatic%2Fprismadb/lists"}