Skip to content

Repository containing the Destroy Claim Model Specification and the destroyclaim-js library that helps building your own DCAs.

License

Notifications You must be signed in to change notification settings

DaTebe/destroyclaims

Repository files navigation

Destroy Claims Banner

Modelling the End of the Data Lifecycle

model version dca version node-current open issues license code-size last-commit codecoverage Snyk Vulnerabilities for GitHub Repo

🚀 Introduction

Data is one of the most important assets in the 21th century. While a lot of work has been done in the field of selecting, using and transforming data for our needs, little to no work has been done when it comes to the deletion of data. This repository is intended to contribute in closing one of the fundamental gaps concerning the end of the data life cycle.

The main contribution is a specification for modeling the end of the data lifecycle. With the so-called Destroy Claims (written in JSON), it is possible to plan the end of the data lifecycle in advance. It allows to model what, when, where, how, why and by whom data should be deleted. The model is designed around an extension system, which allows to represent and add any use cases, even future ones. A number of standardized extensions are available to start with. Also, Destroy Claims can be used to automate the deletion of data in heterogeneous, distributed systems by providing a unified understanding. For this purpose, Destroy Claim Agents (DCA) are used. DCAs are connected to the environment in which the data to be deleted are located. They evaluate Destroy Claims and execute the deletion of data in the environment. DCAs can be developed for different purposes and technologies such as databases, file systems or web APIs. To simplify the implementation of a DCA, a JavaScript library that can be used to easily bootstrap new DCAs is provided. The DCAs generated using the library already adhere to the Destroy Claim Model Specification.

📑 Documentation

💥 Colorized footage of Destroy Claim execution

Destroy Claims Banner

(source: https://giphy.com/gifs/starwars-star-wars-episode-4-3K0D1Dkqh9MOmLSjzW)

{
  "id": "6f526380-d3fd-4ffc-86e7-720f08ff6cbc",
  "isActive": true,
  "strictMode": false,
  "title": "Destroy home planet of Leia Organa",
  "description": "Senator Leia Organa stole the Death Star plans and handed them over to the rebels. We have to find out the location of the rebel base. For this we blackmail the senator by destroying her home planet in case of non-cooperation or lie."
  "destroyContacts": [
    {
      "id": "0aef0f41-41f1-4cd3-8c1f-d974e64779f8",
      "name": "std:agent",
      "payload": {
        "name": "Moff Tarkin"
      },
      "refs": ["02faafea-1c31-4771-b90b-2e8380af06dd"]
    },
    {
      "id": "384cfe80-888e-4650-90cd-2c093ec5d918",
      "name": "std:agent",
      "payload": {
        "name": "Darth Vader"
      },
      "refs": ["02faafea-1c31-4771-b90b-2e8380af06dd"]
    },
    {
      "id": "072bd12e-65a7-4095-9616-e2a4fc1f3b47",
      "name": "std:agent",
      "payload": {
        "name": "Leia Organa"
      },
      "refs": ["9ee452d1-b649-4129-83c2-b57ef308ef20"]
    },
  ],
  "destroyReasons": [
    "https://example.com/destroyclaim/reasons/compliance/laws/crimes/betrayal-of-secrets",
    "blackmail base of the rebels"
  ],
  "destroySubjects": [
    {
      "id": "9ee452d1-b649-4129-83c2-b57ef308ef20",
      "name": "planetIdentifier",
      "payload": {
        "name": "Alderaan"
      },
      "conditions": {
        "and": [
          { "var": "9ee452d1-b649-4129-83c2-b57ef308ef20" },
          { "var": "35f33c3d-50e2-4b33-bd23-2230d5445fc2" },
          { 
            "or": [
              { "var": "bb7f2dac-6c04-4ede-93aa-bbcb8f189f88" },
              { "var": "82eedac3-75ef-425b-9834-6df9f2a32e34" },
              { "var": "2265a240-e795-4a8d-860b-e008d8188d38" }
            ] 
          }
        ]
      },
      "action": "d815f135-8723-407b-9549-aae65dae9ae8"
    }
  ],
  "destroyConditions": [
    {
      "id": "35f33c3d-50e2-4b33-bd23-2230d5445fc2",
      "name": "deathstar:inFireRange",
      "payload": {
        "planet": "Alderaan"
      }
    },
    {
      "id": "82eedac3-75ef-425b-9834-6df9f2a32e34",
      "name": "event:lie",
      "payload": {
        "by": "Leia Organa"
      }
    },
    {
      "id": "2265a240-e795-4a8d-860b-e008d8188d38",
      "name": "event:nonCooperation",
      "payload": {
        "by": "Leia Organa"
      }
    },
    {
      "id": "bb7f2dac-6c04-4ede-93aa-bbcb8f189f88",
      "name": "event:fireCommand",
      "payload": {
        "by": "Moff Tarkin"
      }
    }
  ],
  "destroyActions": [
    {
      "id": "d815f135-8723-407b-9549-aae65dae9ae8",
      "name": "destructionLevel",
      "payload": {
        "destructionLevel": "physically destroyed"
      }
    }
  ]
}

🥸 Yes, the destruction can also be completed if Leia tells the truth or is cooperative, just by Tarkins command...

📃 License

  • Code and Contributions have MIT License

  • Images and logos have CC BY-NC 4.0 License

  • Documentations and Translations have CC BY 4.0 License

Copyleft (c) 2023 Daniel Tebernum

About

Repository containing the Destroy Claim Model Specification and the destroyclaim-js library that helps building your own DCAs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published