<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Requirements on Heimdall API</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/</link><description>Recent content in Requirements on Heimdall API</description><generator>Hugo</generator><language>en</language><atom:link href="https://artur-rios.github.io/heimdall-api/docs/requirements/index.xml" rel="self" type="application/rss+xml"/><item><title>Vision Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/vision-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/vision-document/</guid><description>&lt;h2 id="vision-document--heimdall-api"&gt;Vision Document — Heimdall API&lt;a class="td-heading-self-link" href="#vision-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-introduction"&gt;1. Introduction&lt;a class="td-heading-self-link" href="#1-introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h3 id="11-purpose"&gt;1.1 Purpose&lt;a class="td-heading-self-link" href="#11-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;This document establishes the vision for the &lt;strong&gt;Heimdall API&lt;/strong&gt;, a .NET Web API responsible for centralized management of user identities, authentication, and authorization across multiple independent systems.&lt;/p&gt;&#10;&lt;h3 id="12-scope"&gt;1.2 Scope&lt;a class="td-heading-self-link" href="#12-scope" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;The Heimdall API will serve as a single source of truth for person management, application management, authentication, role-based access control, and multi-tenant scoping. It is designed to be consumed by multiple client systems, each operating within its own isolated scope. Beyond human persons, the system also registers &lt;strong&gt;Applications&lt;/strong&gt; — non-human identities representing other systems, each owned by a Scope Admin who owns the application&amp;rsquo;s scope.&lt;/p&gt;</description></item><item><title>System Requirements Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/system-requirements-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/system-requirements-document/</guid><description>&lt;h2 id="system-requirements-document--heimdall-api"&gt;System Requirements Document — Heimdall API&lt;a class="td-heading-self-link" href="#system-requirements-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-introduction"&gt;1. Introduction&lt;a class="td-heading-self-link" href="#1-introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h3 id="11-purpose"&gt;1.1 Purpose&lt;a class="td-heading-self-link" href="#11-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;This document specifies the functional and non-functional requirements for the &lt;strong&gt;Heimdall API&lt;/strong&gt;, a .NET Web API that provides centralized person management, application management, authentication, and authorization for multiple client systems through scope-based tenancy.&lt;/p&gt;&#10;&lt;p&gt;The concrete technology stack — framework and language versions, first-party libraries, database, data-access, and tooling — is defined in the &lt;a href="https://artur-rios.github.io/heimdall-api/docs/requirements/technology-stack-document/"&gt;Technology Stack Document&lt;/a&gt;&#10;. This document states requirements and refers to that one for specific technologies and versions rather than restating them.&lt;/p&gt;</description></item><item><title>Use Case Specification Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/use-case-specification-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/use-case-specification-document/</guid><description>&lt;h2 id="use-case-specification-document--heimdall-api"&gt;Use Case Specification Document — Heimdall API&lt;a class="td-heading-self-link" href="#use-case-specification-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-introduction"&gt;1. Introduction&lt;a class="td-heading-self-link" href="#1-introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h3 id="11-purpose"&gt;1.1 Purpose&lt;a class="td-heading-self-link" href="#11-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;This document specifies the actor-facing use cases for the &lt;strong&gt;Heimdall API&lt;/strong&gt; — UC-01 through UC-29 and UC-31 through UC-40. Each describes actor interactions, preconditions, postconditions, main flows, and alternative/exception flows.&lt;/p&gt;&#10;&lt;p&gt;UC-30 (Check API Health) is specified in the &lt;a href="https://artur-rios.github.io/heimdall-api/docs/requirements/operations-infrastructure-document/"&gt;Operations &amp;amp; Infrastructure Document&lt;/a&gt;&#10;, §3.5, alongside the FR-HC requirements it realises: it describes how the system is operated rather than what it does for an actor, and keeping it with the monitoring requirements keeps the two together.&lt;/p&gt;</description></item><item><title>Technology Stack Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/technology-stack-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/technology-stack-document/</guid><description>&lt;h2 id="technology-stack-document--heimdall-api"&gt;Technology Stack Document — Heimdall API&lt;a class="td-heading-self-link" href="#technology-stack-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-purpose"&gt;1. Purpose&lt;a class="td-heading-self-link" href="#1-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;This document is the &lt;strong&gt;single source of truth for the technologies used to build the Heimdall API&lt;/strong&gt; — the runtime platform, language, first-party libraries, database, data-access stack, cross-cutting concerns, and testing tools, together with the version each is pinned to and the role it plays.&lt;/p&gt;&#10;&lt;p&gt;Every other document in this folder &lt;strong&gt;references this document&lt;/strong&gt; for technical choices instead of restating them, so that:&lt;/p&gt;</description></item><item><title>Data Protection Impact Assessment</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/data-protection-impact-assessment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/data-protection-impact-assessment/</guid><description>&lt;h2 id="data-protection-impact-assessment--heimdall-api"&gt;Data Protection Impact Assessment — Heimdall API&lt;a class="td-heading-self-link" href="#data-protection-impact-assessment--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Version 1.3 — 10 September 2026&lt;/strong&gt; · Assessed by Artur Rios, controller and Encarregado&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Version&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Date&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Change&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.3&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10 September 2026&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Backup location and transfer ground established (MEGA — §7.3 of the Data Protection Document). R-08 re-rated Medium → Low: the signals are now collected and mailed. No open actions remain&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.2&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10 September 2026&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;GDPR confirmed to apply. R-01 re-rated Medium → Low on confirmation of encryption at rest, for the volume and the backups. EEA hosting resolved: direct sign-up is not a Chapter V transfer, and an EEA tenant&amp;rsquo;s is covered by SCCs now incorporated in the DPA&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10 September 2026&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;R-07 re-rated High → Low: the Google transfer was found not to exist, and the email transfer&amp;rsquo;s ground established under LGPD Art. 33 IX&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9 September 2026&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;First assessment&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="1-why-this-exists-and-why-the-threat-model-is-not-it"&gt;1. Why this exists, and why the Threat Model is not it&lt;a class="td-heading-self-link" href="#1-why-this-exists-and-why-the-threat-model-is-not-it" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;GDPR Art. 35 requires a DPIA before processing likely to result in a high risk to data subjects,&#10;expressly including large-scale processing and systematic monitoring. LGPD Art. 38 gives the ANPD&#10;power to require a &lt;em&gt;Relatório de Impacto à Proteção de Dados&lt;/em&gt;, and its guidance treats identity&#10;platforms serving multiple organisations as within scope.&lt;/p&gt;</description></item><item><title>Data Retention Schedule Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/data-retention-schedule-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/data-retention-schedule-document/</guid><description>&lt;h2 id="data-retention-schedule-document--heimdall-api"&gt;Data Retention Schedule Document — Heimdall API&lt;a class="td-heading-self-link" href="#data-retention-schedule-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-purpose"&gt;1. Purpose&lt;a class="td-heading-self-link" href="#1-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;This document states &lt;strong&gt;how long the Heimdall API keeps each category of personal data, and why&lt;/strong&gt;.&#10;It is the record NFR-19 requires, and it is the source of truth the retention passes are configured&#10;against.&lt;/p&gt;&#10;&lt;p&gt;Two obligations make it necessary. GDPR Art. 5(1)(e) and LGPD Art. 15 require that personal data be&#10;kept in identifiable form no longer than the purpose requires. GDPR Art. 13(2)(a) and Art. 30(1)(f)&#10;require that the period, or the criteria used to determine it, be &lt;em&gt;stated&lt;/em&gt; — to the data subject at&#10;collection, and in the record of processing activities.&lt;/p&gt;</description></item><item><title>Data Protection Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/data-protection-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/data-protection-document/</guid><description>&lt;h2 id="data-protection-document--heimdall-api"&gt;Data Protection Document — Heimdall API&lt;a class="td-heading-self-link" href="#data-protection-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-purpose"&gt;1. Purpose&lt;a class="td-heading-self-link" href="#1-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;This is the &lt;strong&gt;record of processing activities&lt;/strong&gt; LGPD Art. 37 and GDPR Art. 30 require, together with&#10;the two things that record depends on and that nothing else in this repository states: who controls&#10;the data, and where it goes.&lt;/p&gt;&#10;&lt;p&gt;It is kept here rather than in a filing cabinet because the schema is the source of truth and the&#10;schema changes. Keeping the record next to the requirements means it is reviewed in the same pull&#10;request as the migration that outdates it.&lt;/p&gt;</description></item><item><title>Privacy Notice</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/privacy-notice/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/privacy-notice/</guid><description>&lt;h2 id="privacy-notice--heimdall-api"&gt;Privacy Notice — Heimdall API&lt;a class="td-heading-self-link" href="#privacy-notice--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Version 1.2 — 5 October 2026&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="1-what-this-is"&gt;1. What this is&lt;a class="td-heading-self-link" href="#1-what-this-is" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;Heimdall is a centralised identity service. If you have an account with a system that uses it, this&#10;notice tells you what it holds about you, why, for how long, and what you can make it do.&lt;/p&gt;&#10;&lt;p&gt;It is written to be read by the person it is about. The formal record behind it — legal bases,&#10;recipients, transfer mechanisms — is the&#10;&lt;a href="https://artur-rios.github.io/heimdall-api/docs/requirements/data-protection-document/"&gt;Data Protection Document&lt;/a&gt;&#10;.&lt;/p&gt;</description></item><item><title>Data Processing Agreement</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/data-processing-agreement/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/data-processing-agreement/</guid><description>&lt;h2 id="data-processing-agreement--heimdall-api"&gt;Data Processing Agreement — Heimdall API&lt;a class="td-heading-self-link" href="#data-processing-agreement--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Template version 1.0 — 9 September 2026&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="0-how-to-read-this"&gt;0. How to read this&lt;a class="td-heading-self-link" href="#0-how-to-read-this" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;This is the agreement between &lt;strong&gt;Heimdall&amp;rsquo;s controller&lt;/strong&gt; (Artur Rios — the &lt;em&gt;Processor&lt;/em&gt; below) and an&#10;&lt;strong&gt;organisation whose client system uses a Heimdall scope&lt;/strong&gt; (the &lt;em&gt;Controller&lt;/em&gt; below), covering the&#10;personal data of that organisation&amp;rsquo;s users.&lt;/p&gt;&#10;&lt;p&gt;It is a template. Executing it means naming the organisation, the scope or scopes, and the date, and&#10;signing it. Everything else is drafted to match what Heimdall actually does — the clauses cite the&#10;mechanisms in this repository rather than describing a system in general terms, so a clause that&#10;stops being true becomes a failing document rather than a comfortable one.&lt;/p&gt;</description></item><item><title>Incident Response Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/incident-response-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/incident-response-document/</guid><description>&lt;h2 id="incident-response-document--heimdall-api"&gt;Incident Response Document — Heimdall API&lt;a class="td-heading-self-link" href="#incident-response-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-purpose"&gt;1. Purpose&lt;a class="td-heading-self-link" href="#1-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;GDPR Art. 33 requires a personal data breach to be notified to the supervisory authority &lt;strong&gt;within 72&#10;hours&lt;/strong&gt; of the controller becoming aware of it, and Art. 34 requires the affected data subjects be&#10;told without undue delay where the risk to them is high. LGPD Art. 48 requires communication to the&#10;ANPD and the subjects, which &lt;strong&gt;ANPD Resolution CD/ANPD nº 15 of 24 April 2024&lt;/strong&gt; fixes at &lt;strong&gt;3 working&#10;days&lt;/strong&gt;. Art. 33(5) requires every breach be documented, whether or not it was notifiable.&lt;/p&gt;</description></item><item><title>Testing Specification Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/testing-specification-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/testing-specification-document/</guid><description>&lt;h2 id="testing-specification-document--heimdall-api"&gt;Testing Specification Document — Heimdall API&lt;a class="td-heading-self-link" href="#testing-specification-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-purpose"&gt;1. Purpose&lt;a class="td-heading-self-link" href="#1-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;This document defines &lt;strong&gt;how a use case is tested once it has been implemented&lt;/strong&gt;. It is a standard&#10;to be followed by any human or agent that builds tests for this project. Following it guarantees&#10;that every use case (UC-01 … UC-35 in the &lt;a href="https://artur-rios.github.io/heimdall-api/docs/requirements/use-case-specification-document/"&gt;Use Case Specification Document&lt;/a&gt;&#10;)&#10;receives the same shape of testing, with the same tools, naming, and structure.&lt;/p&gt;</description></item><item><title>Threat Model Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/threat-model-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/threat-model-document/</guid><description>&lt;h2 id="threat-model-document--heimdall-api"&gt;Threat Model Document — Heimdall API&lt;a class="td-heading-self-link" href="#threat-model-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-purpose"&gt;1. Purpose&lt;a class="td-heading-self-link" href="#1-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;The &lt;a href="https://artur-rios.github.io/heimdall-api/docs/requirements/system-requirements-document/"&gt;System Requirements Document&lt;/a&gt;&#10; states the security controls&#10;this API implements. It does not state what they defend against, and a control without a stated&#10;threat cannot be judged: there is no way to tell whether it is sufficient, whether it is the right&#10;control, or whether removing it would matter.&lt;/p&gt;&#10;&lt;p&gt;This document states the threats. Each one names the asset at risk, what an attacker must already be&#10;able to do, the control that addresses it — cited as an existing FR or NFR rather than restated — and&#10;how anybody knows the control works. Where nothing addresses a threat, that is written down as a&#10;finding rather than left out.&lt;/p&gt;</description></item><item><title>Development Workflow Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/development-workflow-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/development-workflow-document/</guid><description>&lt;h2 id="development-workflow-document--heimdall-api"&gt;Development Workflow Document — Heimdall API&lt;a class="td-heading-self-link" href="#development-workflow-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="1-purpose"&gt;1. Purpose&lt;a class="td-heading-self-link" href="#1-purpose" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;This document defines &lt;strong&gt;how a use case moves from backlog to merged&lt;/strong&gt; — the branch, the issue status&#10;transitions, the testing gate, and the pull request. It is the standard every contributor (human or&#10;agent) follows so that each use case (UC-01 … UC-29 in the&#10;&lt;a href="https://artur-rios.github.io/heimdall-api/docs/requirements/use-case-specification-document/"&gt;Use Case Specification Document&lt;/a&gt;&#10;, plus later additions&#10;such as UC-30) is delivered the same way.&lt;/p&gt;</description></item><item><title>Operations &amp; Infrastructure Document</title><link>https://artur-rios.github.io/heimdall-api/docs/requirements/operations-infrastructure-document/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://artur-rios.github.io/heimdall-api/docs/requirements/operations-infrastructure-document/</guid><description>&lt;h2 id="operations--infrastructure-document--heimdall-api"&gt;Operations &amp;amp; Infrastructure Document — Heimdall API&lt;a class="td-heading-self-link" href="#operations--infrastructure-document--heimdall-api" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;h2 id="0-hosting-region"&gt;0. Hosting region&lt;a class="td-heading-self-link" href="#0-hosting-region" aria-label="Heading self-link"&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;Personal data is stored in &lt;strong&gt;Brazil&lt;/strong&gt;, and that is a constraint rather than an incidental fact: it&#10;determines which transfer rules apply to everything leaving the deployment. Moving the region means&#10;redoing the assessment in&#10;&lt;a href="https://artur-rios.github.io/heimdall-api/docs/requirements/data-protection-document/"&gt;§7 of the Data Protection Document&lt;/a&gt;&#10;, because the outbound flows to&#10;Mailgun and Google are measured from wherever the data sits.&lt;/p&gt;</description></item></channel></rss>