{
  "code": null,
  "collection": "architecture",
  "href": "https://banes-lab.com/ontology#architecture-privacy-by-design",
  "id": "privacy-by-design",
  "kind": "principle",
  "layer": {
    "href": "https://banes-lab.com/ontology/schema#layer-security-core",
    "json": "https://banes-lab.com/json/records/layer/security-core",
    "label": "Security Core",
    "markdown": "https://banes-lab.com/records/layer/security-core.md",
    "ref": "layer:security-core"
  },
  "name": "Privacy by Design",
  "ref": "architecture:privacy-by-design",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-data-minimization",
          "json": "https://banes-lab.com/json/records/lexicon/data-minimization",
          "label": "Data Minimization",
          "markdown": "https://banes-lab.com/records/lexicon/data-minimization.md",
          "ref": "lexicon:data-minimization"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-consent-policy",
          "json": "https://banes-lab.com/json/records/lexicon/consent-policy",
          "label": "Consent/Policy",
          "markdown": "https://banes-lab.com/records/lexicon/consent-policy.md",
          "ref": "lexicon:consent-policy"
        }
      ],
      "relation": "requires"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-compliance",
          "json": "https://banes-lab.com/json/records/architecture/compliance",
          "label": "Compliance",
          "markdown": "https://banes-lab.com/records/architecture/compliance.md",
          "ref": "architecture:compliance"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-security",
          "json": "https://banes-lab.com/json/records/lexicon/security",
          "label": "Security",
          "markdown": "https://banes-lab.com/records/lexicon/security.md",
          "ref": "lexicon:security"
        }
      ],
      "relation": "reinforces"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-privacy-compliance",
          "json": "https://banes-lab.com/json/records/lexicon/privacy-compliance",
          "label": "Privacy Compliance",
          "markdown": "https://banes-lab.com/records/lexicon/privacy-compliance.md",
          "ref": "lexicon:privacy-compliance"
        }
      ],
      "relation": "enables"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-personal-data-oversharing",
          "json": "https://banes-lab.com/json/records/architecture/personal-data-oversharing",
          "label": "Personal Data Oversharing",
          "markdown": "https://banes-lab.com/records/architecture/personal-data-oversharing.md",
          "ref": "architecture:personal-data-oversharing"
        }
      ],
      "relation": "conflicts-with"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-analytics-personalization",
          "json": "https://banes-lab.com/json/records/lexicon/analytics-personalization",
          "label": "Analytics/Personalization",
          "markdown": "https://banes-lab.com/records/lexicon/analytics-personalization.md",
          "ref": "lexicon:analytics-personalization"
        }
      ],
      "relation": "tensions-with"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/schema#tension-analytics-personalization-privacy-by-design",
          "json": "https://banes-lab.com/json/records/tension/analytics-personalization-privacy-by-design",
          "label": "Privacy by Design / Analytics/Personalization",
          "markdown": "https://banes-lab.com/records/tension/analytics-personalization-privacy-by-design.md",
          "ref": "tension:analytics-personalization-privacy-by-design"
        }
      ],
      "relation": "tensions"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-personal-data-oversharing",
          "json": "https://banes-lab.com/json/records/architecture/personal-data-oversharing",
          "label": "Personal Data Oversharing",
          "markdown": "https://banes-lab.com/records/architecture/personal-data-oversharing.md",
          "ref": "architecture:personal-data-oversharing"
        }
      ],
      "relation": "violated-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-purpose-binding",
          "json": "https://banes-lab.com/json/records/lexicon/purpose-binding",
          "label": "Purpose Binding",
          "markdown": "https://banes-lab.com/records/lexicon/purpose-binding.md",
          "ref": "lexicon:purpose-binding"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-retention-policy",
          "json": "https://banes-lab.com/json/records/lexicon/retention-policy",
          "label": "Retention Policy",
          "markdown": "https://banes-lab.com/records/lexicon/retention-policy.md",
          "ref": "lexicon:retention-policy"
        }
      ],
      "relation": "refactored-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/schema#vocabulary-severity-contextual",
          "json": "https://banes-lab.com/json/records/vocabulary/severity-contextual",
          "label": "contextual",
          "markdown": "https://banes-lab.com/records/vocabulary/severity-contextual.md",
          "ref": "vocabulary:severity-contextual"
        }
      ],
      "relation": "severity"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-category-security-privacy-compliance-governance",
          "json": "https://banes-lab.com/json/records/architecture-category/security-privacy-compliance-governance",
          "label": "Security / Privacy / Compliance / Governance",
          "markdown": "https://banes-lab.com/records/architecture-category/security-privacy-compliance-governance.md",
          "ref": "architecture-category:security-privacy-compliance-governance"
        }
      ],
      "relation": "category"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/content#file-content-runtime-entrypoints-leak-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/content/runtime/entrypoints/leak.entrypoint.ts",
          "label": "runtime/entrypoints/leak.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/content/runtime/entrypoints/leak.entrypoint.ts.md",
          "ref": "anatomy:file-content-runtime-entrypoints-leak-entrypoint-ts"
        }
      ],
      "relation": "enforced-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-category-anti-patterns",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-anti-patterns",
          "label": "Anti-patterns",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md",
          "ref": "chapter:/ontology#architecture-category-anti-patterns"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-security-privacy-compliance-governance",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-security-privacy-compliance-governance",
          "label": "Security / Privacy / Compliance / Governance",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-security-privacy-compliance-governance.md",
          "ref": "chapter:/ontology#architecture-category-security-privacy-compliance-governance"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-quality-attributes",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-quality-attributes",
          "label": "Quality Attributes",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-quality-attributes.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-quality-attributes"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-security-privacy-compliance",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-security-privacy-compliance",
          "label": "Security Privacy Compliance",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-security-privacy-compliance.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-security-privacy-compliance"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#the-vocabulary-severity",
          "json": "https://banes-lab.com/json/ontology/schema/the-vocabulary-severity",
          "label": "Severity levels",
          "markdown": "https://banes-lab.com/ontology/schema/the-vocabulary-severity.md",
          "ref": "chapter:/ontology/schema#the-vocabulary-severity"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#the-resolutions",
          "json": "https://banes-lab.com/json/ontology/schema/the-resolutions",
          "label": "The resolutions",
          "markdown": "https://banes-lab.com/ontology/schema/the-resolutions.md",
          "ref": "chapter:/ontology/schema#the-resolutions"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "summary": "A design rule that privacy protection is part of a system's design from its first version, covering which personal data it collects, how long it keeps it, who can see it and what its defaults expose.",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/ontology#architecture-compliance",
      "json": "https://banes-lab.com/json/records/architecture/compliance",
      "label": "Compliance",
      "markdown": "https://banes-lab.com/records/architecture/compliance.md",
      "ref": "architecture:compliance"
    },
    "previous": {
      "href": "https://banes-lab.com/ontology#architecture-secrets-management",
      "json": "https://banes-lab.com/json/records/architecture/secrets-management",
      "label": "Secrets Management",
      "markdown": "https://banes-lab.com/records/architecture/secrets-management.md",
      "ref": "architecture:secrets-management"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/records/architecture",
    "label": "Architecture principles",
    "markdown": "https://banes-lab.com/api/records/architecture.md",
    "ref": "api:records/architecture"
  },
  "aliases": [],
  "exemplar": {
    "after": "auditLog.append({\n  actorId: pseudonymize(user.id),\n  action: \"FOO_READ\",\n  fooId: foo.id,\n  purpose: \"support\",\n});",
    "before": "auditLog.append({ user, request, foo, headers: request.headers });",
    "lang": "ts",
    "medium": "code"
  },
  "formedBy": null,
  "scope": [
    "data",
    "product",
    "system"
  ],
  "severity": "contextual"
}
