## Description

As the emphasis of data privacy has been imposed by many legal regulations, 
companies and individuals are becoming aware of the protection of sensitive 
data in use. However, currently there is no good tool to enforce data privacy 
policies on the cloud while providing automatic enforcement with formal 
guarantees. This data analysis framework (though work in progress) adds support 
for *automatic and formal* data privacy policy enforcement. 

This framework is not finished yet and has the following ongoing tasks:

* Access control design – policy semiring
* Data privacy scheme enforcement
* Formal models and proofs
* Policy language design and automatic generation of executors

While this is not finished, it should be able to perform basic data analysis 
jobs.

## Type of change (select or add applied and delete the others)

- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality 
to not work as expected)
- [ ] API change with a documentation update
- [ ] Additional test coverage
- [ ] Code cleanup or just sync with upstream third-party crates

## How has this been tested?

## Checklist

- [x] Fork the repo and create your branch from `master`.
- [x] If you've added code that should be tested, add tests.
- [ ] If you've changed APIs, update the documentation.
- [x] Ensure the tests pass (see CI results).
- [x] Make sure your code lints/format.

You can view, comment on, or merge this pull request online at:

  https://github.com/apache/incubator-teaclave/pull/716

-- Commit Summary --

  * Fix advertised address
  * Add data analysis example
  * Add privacy policy enforcement PoC
  * Merge branch 'apache:master' into master

-- File Changes --

    A examples/python/builtin_policy_enforcement.py (78)
    M executor/Cargo.toml (2)
    M executor/src/builtin.rs (4)
    M function/Cargo.toml (4)
    M function/src/lib.rs (3)
    A function/src/policy_enforcement.rs (90)
    M third_party/README.md (1)
    A third_party/pcd/docs/algebraic_structures.md (7)
    A third_party/pcd/docs/differential_privacy.md (35)
    A third_party/pcd/docs/formal_foundations.md (5)
    A third_party/pcd/docs/overview.md (52)
    A third_party/pcd/docs/policy_language.md (3)
    A third_party/pcd/docs/policy_to_executors.md (44)
    A third_party/pcd/docs/query_plan.md (24)
    A third_party/pcd/examples/builtin_executor/Cargo.toml (12)
    A third_party/pcd/examples/builtin_executor/src/main.rs (56)
    A third_party/pcd/examples/simple_executor/Cargo.lock (1245)
    A third_party/pcd/examples/simple_executor/Cargo.toml (3)
    A third_party/pcd/examples/simple_executor/Makefile (44)
    A third_party/pcd/examples/simple_executor/executor_lib/Cargo.toml (20)
    A third_party/pcd/examples/simple_executor/executor_lib/build.rs (6)
    A third_party/pcd/examples/simple_executor/executor_lib/src/lib.rs (234)
    A third_party/pcd/examples/simple_executor/executor_user/Cargo.toml (18)
    A third_party/pcd/examples/simple_executor/executor_user/build.rs (14)
    A third_party/pcd/examples/simple_executor/executor_user/src/main.rs (55)
    A third_party/pcd/policy_algebra/Cargo.toml (9)
    A third_party/pcd/policy_algebra/src/lib.rs (174)
    A third_party/pcd/policy_carrying_data/Cargo.toml (24)
    A third_party/pcd/policy_carrying_data/src/arithmetic.rs (291)
    A third_party/pcd/policy_carrying_data/src/comparator.rs (499)
    A third_party/pcd/policy_carrying_data/src/field.rs (829)
    A third_party/pcd/policy_carrying_data/src/group.rs (248)
    A third_party/pcd/policy_carrying_data/src/lib.rs (504)
    A third_party/pcd/policy_carrying_data/src/macros.rs (46)
    A third_party/pcd/policy_carrying_data/src/pretty.rs (34)
    A third_party/pcd/policy_carrying_data/src/row.rs (84)
    A third_party/pcd/policy_carrying_data/src/schema.rs (139)
    A third_party/pcd/policy_core/Cargo.toml (20)
    A third_party/pcd/policy_core/src/ast.rs (106)
    A third_party/pcd/policy_core/src/error.rs (168)
    A third_party/pcd/policy_core/src/expr.rs (548)
    A third_party/pcd/policy_core/src/lib.rs (17)
    A third_party/pcd/policy_core/src/macros.rs (54)
    A third_party/pcd/policy_core/src/policy.rs (166)
    A third_party/pcd/policy_core/src/types.rs (498)
    A third_party/pcd/policy_execution/Cargo.toml (30)
    A third_party/pcd/policy_execution/src/context.rs (446)
    A third_party/pcd/policy_execution/src/executor/apply.rs (29)
    A third_party/pcd/policy_execution/src/executor/arena.rs (129)
    A third_party/pcd/policy_execution/src/executor/built_in.rs (258)
    A third_party/pcd/policy_execution/src/executor/distinct.rs (41)
    A third_party/pcd/policy_execution/src/executor/filter.rs (32)
    A third_party/pcd/policy_execution/src/executor/groupby_partitioned.rs (160)
    A third_party/pcd/policy_execution/src/executor/join.rs (74)
    A third_party/pcd/policy_execution/src/executor/mod.rs (317)
    A third_party/pcd/policy_execution/src/executor/projection.rs (44)
    A third_party/pcd/policy_execution/src/executor/scan.rs (59)
    A third_party/pcd/policy_execution/src/lazy.rs (331)
    A third_party/pcd/policy_execution/src/lib.rs (54)
    A third_party/pcd/policy_execution/src/plan/mod.rs (1358)
    A third_party/pcd/policy_execution/src/plan/physical_expr.rs (871)
    A third_party/pcd/policy_execution/src/sql.rs (78)
    A third_party/pcd/policy_execution/src/udf.rs (30)
    A third_party/pcd/policy_ffi/Cargo.toml (20)
    A third_party/pcd/policy_ffi/build.rs (7)
    A third_party/pcd/policy_ffi/src/lib.rs (81)
    A third_party/pcd/policy_ffi/src/so_impl.rs (280)
    A third_party/pcd/policy_ffi/src/static_impl.rs (118)
    A third_party/pcd/policy_function/Cargo.toml (14)
    A third_party/pcd/policy_function/src/lib.rs (108)
    A third_party/pcd/policy_generator/Cargo.toml (17)
    A third_party/pcd/policy_generator/api.rs (54)
    A third_party/pcd/policy_generator/build.rs (31)
    A third_party/pcd/policy_generator/grammar/README.md (5)
    A 
third_party/pcd/policy_generator/grammar/policy_definition_language.lalrpop 
(151)
    A third_party/pcd/policy_generator/grammar/test.lalrpop (10)
    A third_party/pcd/policy_generator/src/generator.rs (118)
    A third_party/pcd/policy_generator/src/lib.rs (90)
    A third_party/pcd/policy_generator/src/main.rs (106)
    A third_party/pcd/policy_generator/templates/build.rstp (4)
    A third_party/pcd/policy_generator/templates/ld.rstp (40)
    A third_party/pcd/policy_privacy/Cargo.toml (14)
    A third_party/pcd/policy_privacy/src/dp.rs (222)
    A third_party/pcd/policy_privacy/src/k_anon.rs (15)
    A third_party/pcd/policy_privacy/src/lib.rs (86)
    A third_party/pcd/policy_proc_macro/Cargo.toml (21)
    A third_party/pcd/policy_proc_macro/dfscan_template.rstp (0)
    A third_party/pcd/policy_proc_macro/src/executors.rs (227)
    A third_party/pcd/policy_proc_macro/src/fields.rs (182)
    A third_party/pcd/policy_proc_macro/src/lib.rs (28)
    A third_party/pcd/policy_proc_macro/tests/policy_derive.rs (8)
    A third_party/pcd/policy_utils/Cargo.toml (9)
    A third_party/pcd/policy_utils/src/lib.rs (26)

-- Patch Links --

https://github.com/apache/incubator-teaclave/pull/716.patch
https://github.com/apache/incubator-teaclave/pull/716.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-teaclave/pull/716
You are receiving this because you are subscribed to this thread.

Message ID: <apache/incubator-teaclave/pull/7...@github.com>

Reply via email to