{"id":19745518,"url":"https://github.com/cossacklabs/acra-engineering-demo","last_synced_at":"2025-04-30T07:34:26.478Z","repository":{"id":38191160,"uuid":"147238814","full_name":"cossacklabs/acra-engineering-demo","owner":"cossacklabs","description":"Acra-based example projects: check how easy it is to deploy data security in typical web infrastructures.","archived":false,"fork":false,"pushed_at":"2023-09-18T08:35:10.000Z","size":11814,"stargazers_count":25,"open_issues_count":1,"forks_count":13,"subscribers_count":10,"default_branch":"master","last_synced_at":"2023-09-18T09:54:50.948Z","etag":null,"topics":["acra","data-security","django","docker","encryption","playground","python","themis"],"latest_commit_sha":null,"homepage":"https://www.cossacklabs.com/acra/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cossacklabs.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}},"created_at":"2018-09-03T18:13:39.000Z","updated_at":"2023-04-11T03:45:34.000Z","dependencies_parsed_at":"2023-01-19T15:03:52.350Z","dependency_job_id":null,"html_url":"https://github.com/cossacklabs/acra-engineering-demo","commit_stats":null,"previous_names":[],"tags_count":2,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Facra-engineering-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Facra-engineering-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Facra-engineering-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Facra-engineering-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cossacklabs","download_url":"https://codeload.github.com/cossacklabs/acra-engineering-demo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224202862,"owners_count":17272807,"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":["acra","data-security","django","docker","encryption","playground","python","themis"],"created_at":"2024-11-12T02:09:20.529Z","updated_at":"2024-11-12T02:09:21.376Z","avatar_url":"https://github.com/cossacklabs.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is this?\n\nAcra Engineering Examples illustrate the integration\nof [Acra data protection suite](https://github.com/cossacklabs/acra) into your existing application. Protecting the data\nis completely transparent for the users and requires minimal changes in the infrastructure.\n\nThis collection has several example applications. Each folder contains docker-compose file, that describes key\nmanagement procedures and configurations of Acra.\n\n| #  | Example                                                                                                                                                     | What's inside                                                                                         |\n|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|\n| 1  | [Intrusion detection system, transparent encryption, PostgreSQL](https://github.com/cossacklabs/acra-poison-records-demo)                                   | Go application, transparent encryption/decryption, poison records, PostgreSQL                         |\n| 2  | [SQL injection prevention, AcraCensor](https://github.com/cossacklabs/acra-censor-demo)                                                                     | OWASP Mutillidae vulnerable web application, AcraConnector, AcraServer, AcraCensor (SQL firewall)     |\n| 3  | [Load balancing](https://github.com/cossacklabs/acra-balancer-demo)                                                                                         | python client application, AcraServer, HAProxy                                                        |\n| 4  | [Transparent encryption, Django, PostgreSQL](https://github.com/cossacklabs/acra-engineering-demo/blob/master/django-transparent/README.md)                 | Django web application, transparent encryption/decryption, AcraServer, PostgreSQL                     |\n| 5  | [Transparent encryption, TimescaleDB](https://github.com/cossacklabs/acra-engineering-demo/blob/master/timescaledb/README.md)                               | TimescaleDB, transparent encryption/decryption, AcraServer                                            |\n| 6  | [Transparent encryption, Python app, MySQL, PostgreSQL](https://github.com/cossacklabs/acra-engineering-demo/blob/master/python-mysql-postgresql/README.md) | MySQL, PostgreSQL, transparent encryption/masking/tokenization, Python, AcraServer                    |\n| 7  | [Client-side encryption, Django, PostgreSQL](https://github.com/cossacklabs/acra-engineering-demo/blob/master/django/README.md)                             | Django web application with client-side encryption (AcraWriter), decryption on AcraServer, PostgreSQL |\n| 8  | [Client-side encryption, python app, PostgreSQL](https://github.com/cossacklabs/acra-engineering-demo/blob/master/python/README.md)                         | Simple python client application, client-side encryption, decryption on AcraServer, PostgreSQL        |\n| 9  | [Client-side encryption, Ruby on Rails app, PostgreSQL](https://github.com/cossacklabs/acra-engineering-demo/blob/master/rails/README.md)                   | Ruby on Rails web application, client-side encryption, decryption on AcraServer, PostgreSQL           |\n| 10 | [Transparent encryption, python app, CockroachDB](https://github.com/cossacklabs/acra-engineering-demo/blob/master/cockroachdb/README.md)                   | Simple python client application, transparent encryption/decryption on AcraServer, CockroachDB        |\n| 11 | [Search in encrypted data](https://github.com/cossacklabs/acra-engineering-demo/blob/master/python-searchable/README.md)                                    | python client app, AcraServer, MySQL / PostreSQL database                                             |\n| 12 | [AcraTranslator Demo](https://github.com/cossacklabs/acra-engineering-demo/blob/master/acra-translator/README.md)                                           | Go API Server, AcraTranslator, MongoDB                                                                |\n| 13 | [DB Migration Demo](https://github.com/cossacklabs/acra-engineering-demo/blob/master/db-acra-migration/README.md)                                           | python client app, AcraServer, PostreSQL database                                                     |\n\n# Overview\n\nIntegrating Acra into any application requires 3 steps:\n\n1. **Generate cryptographic keys**. In this examples, we generate only required keys for each example (Master key, and\n   data encryption keys, rarely others). Refer\n   to [Key management](https://docs.cossacklabs.com/acra/security-controls/key-management/) to learn more about keys.\n2. **Configure and deploy services**.\n    1. **transparent encryption** for SQL databases – configure and deploy AcraServer. Configure AcraServer's behavior,\n       set up TLS, connect to the database, select which fields/columns to encrypt.\n    2. **encryption-as-a-service** for NoSQL databases – configure and deploy AcraTranslator. Configure AcraTranslator's\n       behavior, set up TLS, select gRPC or REST API.\n    3. **client-side encryption** – you can encrypt data in the client application using AcraWriter, then decrypt data\n       on AcraServer or AcraTranslator.\n3. **Update client-side code**.\n    1. **transparent encryption** for SQL databases – just point client-side app to AcraServer instead of the database.\n    2. **encryption-as-a-service** for NoSQL databases – call AcraTranslator API from client-side app and\n       encrypt/decrypt fields on AcraTranslator.\n    3. **client-side encryption** – integrate AcraWriter, call it to encrypt fields in the app before sending them to\n       the database.\n\nPlease refer to the [Acra Data flows](https://docs.cossacklabs.com/acra/acra-in-depth/data-flow/) for more detailed\ndescription and schemes.\n\n---\n\n# Further steps\n\nLet us know if you have any questions by dropping an email to [dev@cossacklabs.com](mailto:dev@cossacklabs.com).\n\n1. [Acra website](https://cossacklabs.com/acra/) – learn about all Acra features, defense in depth, how it's better\n   than \"just TLS\" and available licenses.\n2. [Acra Community Edition](https://github.com/cossacklabs/acra) – Acra Community Edition repository.\n3. [Acra docs](https://docs.cossacklabs.com/acra/what-is-acra/) – all Acra docs and guides.\n\n# Need help?\n\nNeed help in configuring Acra? Read more\nabout [support options and Acra Enterprise Edition](https://www.cossacklabs.com/acra/#pricing).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcossacklabs%2Facra-engineering-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcossacklabs%2Facra-engineering-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcossacklabs%2Facra-engineering-demo/lists"}