1
0
mirror of https://codeberg.org/fediverse/fep.git synced 2026-08-09 05:56:10 +00:00

Deploying from 32a69f90cb [SKIP CI]

This commit is contained in:
silverpill
2026-04-22 16:20:24 +00:00
parent 31560303b4
commit e9596f148e
5 changed files with 993 additions and 169 deletions
+9
View File
@@ -1432,6 +1432,15 @@
<td><a href="https://codeberg.org/silverpill/feps/issues">Discussions</a></td>
<td>2026-04-03</td>
</tr>
<tr>
<td><a href="../fep/35b7/">FEP-35b7: Fediverse Servers, Instances, and Tenants</a></td>
<td><a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/35b7/fep-35b7.md"><img src='../assets/codeberg.png' width=20 height=20 alt='codeberg'></a></td>
<td>Informational</td>
<td></td>
<td>-</td>
<td><a href="https://codeberg.org/steve-bate/fep/issues">Discussions</a></td>
<td>2026-04-22</td>
</tr>
</tbody>
</table>
+811
View File
@@ -0,0 +1,811 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="This proposal defines terminology related to servers, instances, and tenants in a Fediverse context. The goal is to provide consistent vocabulary for specifications, implementations, and documentation across projects.">
<link rel="canonical" href="https://helge.codeberg.page/fep/fep/35b7/">
<link rel="icon" href="../../assets/logo.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
<title>FEP-35b7: Fediverse Servers, Instances, and Tenants - Fediverse Enhancement Proposals</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.484c7ddc.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
<link rel="stylesheet" href="../../styles/theme.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#fep-35b7-fediverse-servers-instances-and-tenants" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Fediverse Enhancement Proposals" class="md-header__button md-logo" aria-label="Fediverse Enhancement Proposals" data-md-component="logo">
<img src="../../assets/logo.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Fediverse Enhancement Proposals
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
FEP-35b7: Fediverse Servers, Instances, and Tenants
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://codeberg.org/fediverse/fep" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
</div>
<div class="md-source__repository">
fediverse/fep
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Fediverse Enhancement Proposals
</a>
</li>
<li class="md-tabs__item">
<a href="../../final/" class="md-tabs__link">
Final
</a>
</li>
<li class="md-tabs__item">
<a href="../../draft/" class="md-tabs__link">
Draft
</a>
</li>
<li class="md-tabs__item">
<a href="../../withdrawn/" class="md-tabs__link">
Withdrawn
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" hidden>
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Fediverse Enhancement Proposals" class="md-nav__button md-logo" aria-label="Fediverse Enhancement Proposals" data-md-component="logo">
<img src="../../assets/logo.png" alt="logo">
</a>
Fediverse Enhancement Proposals
</label>
<div class="md-nav__source">
<a href="https://codeberg.org/fediverse/fep" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
</div>
<div class="md-source__repository">
fediverse/fep
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
<span class="md-ellipsis">
Fediverse Enhancement Proposals
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../final/" class="md-nav__link">
<span class="md-ellipsis">
Final
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../draft/" class="md-nav__link">
<span class="md-ellipsis">
Draft
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../withdrawn/" class="md-nav__link">
<span class="md-ellipsis">
Withdrawn
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#summary" class="md-nav__link">
<span class="md-ellipsis">
Summary
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#motivation" class="md-nav__link">
<span class="md-ellipsis">
Motivation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#definitions" class="md-nav__link">
<span class="md-ellipsis">
Definitions
</span>
</a>
<nav class="md-nav" aria-label="Definitions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#server-implementation" class="md-nav__link">
<span class="md-ellipsis">
Server implementation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#server-instance" class="md-nav__link">
<span class="md-ellipsis">
Server instance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#tenant" class="md-nav__link">
<span class="md-ellipsis">
Tenant
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#relationship-between-terms" class="md-nav__link">
<span class="md-ellipsis">
Relationship Between Terms
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#scope-and-non-goals" class="md-nav__link">
<span class="md-ellipsis">
Scope and Non-Goals
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#references" class="md-nav__link">
<span class="md-ellipsis">
References
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#copyright" class="md-nav__link">
<span class="md-ellipsis">
Copyright
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="fep-35b7-fediverse-servers-instances-and-tenants">FEP-35b7: Fediverse Servers, Instances, and Tenants<a class="headerlink" href="#fep-35b7-fediverse-servers-instances-and-tenants" title="Permanent link">&para;</a></h1>
<table>
<thead>
<tr>
<th>Authors</th>
<th>Status</th>
<th>Type</th>
<th>Date received</th>
<th>Discussions</th>
<th>Repository</th>
</tr>
</thead>
<tbody>
<tr>
<td>Steve Bate <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#118;&#99;&#45;&#102;&#101;&#112;&#64;&#115;&#116;&#101;&#118;&#101;&#98;&#97;&#116;&#101;&#46;&#110;&#101;&#116;">&#115;&#118;&#99;&#45;&#102;&#101;&#112;&#64;&#115;&#116;&#101;&#118;&#101;&#98;&#97;&#116;&#101;&#46;&#110;&#101;&#116;</a></td>
<td><code>DRAFT</code></td>
<td>informational</td>
<td>2026-04-22</td>
<td><a href="https://codeberg.org/steve-bate/fep/issues">Discussions</a></td>
<td><a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/35b7/fep-35b7.md">codeberg</a></td>
</tr>
</tbody>
</table>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">&para;</a></h2>
<p>This proposal defines terminology related to servers, instances, and tenants in a <a href="https://en.wikipedia.org/w/index.php?title=Fediverse&amp;oldid=1349081668" title="Fediverse">Fediverse</a> context. The goal is to provide consistent vocabulary for specifications, implementations, and documentation across projects.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="#motivation" title="Permanent link">&para;</a></h2>
<p>Fediverse discussions use overlapping but sometimes inconsistent terminology when describing software, deployments, and administrative boundaries. In particular, the words “server” and “instance” are often used interchangeably.</p>
<p>The terminology issue becomes even more clear for multi-tenant server implementations and instances. As more projects implement multi-tenant architectures, clear terminology becomes important for:</p>
<ul>
<li>Protocol specifications and FEPs</li>
<li>Implementation documentation and configuration</li>
<li>Operational guidance and security analysis</li>
<li>Interoperability discussions between projects</li>
</ul>
<p>This document proposes terminology that other FEPs and implementations may reference.</p>
<h2 id="definitions">Definitions<a class="headerlink" href="#definitions" title="Permanent link">&para;</a></h2>
<h3 id="server-implementation">Server implementation<a class="headerlink" href="#server-implementation" title="Permanent link">&para;</a></h3>
<p>A <strong>server implementation</strong> is a software codebase that implements one or more Fediverse-related protocols (such as ActivityPub). This software must be deployed on computational infrastructure to participate in the Fediverse.</p>
<p>Characteristics:</p>
<ul>
<li>Identified primarily by its source code and release artifacts (e.g. a repository, package, or container image).</li>
<li>May support different deployment topologies, including single-tenant, multi-tenant, and clustered deployments.</li>
<li>Multiple independently operated deployments of the same server implementation are still the same implementation but different <a href="#server-instance">server instances</a>.</li>
</ul>
<p>Example Implementations:</p>
<ul>
<li>Mastodon (<a href="https://github.com/mastodon/mastodon">repo</a>)</li>
<li>Pleroma (<a href="https://git.pleroma.social/pleroma/pleroma">repo</a>)</li>
<li>Mitra (<a href="https://codeberg.org/silverpill/mitra">repo</a>)</li>
</ul>
<p>The word <em>server</em> may also refer to computational infrastructure (physical or virtual hardware, containers, etc.) in some contexts. This is not how the word is used in this proposal, which only refers to server <em>software</em>.</p>
<h3 id="server-instance">Server instance<a class="headerlink" href="#server-instance" title="Permanent link">&para;</a></h3>
<p>A <strong>server instance</strong> is a specific deployment of a server implementation, including its running processes, configuration, and associated persistent storage, operated by a defined administrative authority.</p>
<p>Characteristics:</p>
<ul>
<li>Exists in a particular operational environment (e.g. a host, container cluster, or PaaS deployment) with its own lifecycle (provisioning, upgrade, backup, decommissioning).</li>
<li>Is typically associated with one or more network endpoints (e.g. hostnames, IP addresses, ports) that other Fediverse participants use to communicate with it.</li>
<li>May serve one or multiple tenants, depending on the implementation and configuration.</li>
<li>Two deployments of the same software are considered different server instances.</li>
</ul>
<p>Examples:</p>
<ul>
<li><a href="https://mastodon.social">mastodon.social</a> is a Mastodon instance.</li>
<li><a href="https://hachyderm.io/">hachyderm.io</a> is a Mastodon instance.</li>
<li><a href="https://udongein.xyz/about">udongein.xyz</a> is a Pleroma instance.</li>
</ul>
<p>In common Fediverse usage, “instance” often implicitly refers to a server instance; this document uses the explicit term “server instance” for clarity.</p>
<h3 id="tenant">Tenant<a class="headerlink" href="#tenant" title="Permanent link">&para;</a></h3>
<p>A <strong>tenant</strong> in a Fediverse context is a logically and administratively distinct group of actors and related data that is served by a server instance and for which the server provides isolated configuration, policies, and data separation.</p>
<p>This definition adapts the general notion of <a href="https://en.wikipedia.org/w/index.php?title=Multitenancy&amp;oldid=1338248635" title="Multitenancy">multitenancy</a> where a single software instance serves multiple tenants while isolating their data and configuration to the specific case of Fediverse services.</p>
<p>Characteristics:</p>
<ul>
<li>A tenant is typically associated with a set of human users, automated agents, or both, that share a common administrative or organizational boundary (such as a community, organization, or project).</li>
<li>A tenant configuration may be constrained by instance-level administrative policies.</li>
<li>The server instance enforces isolation of tenant-specific data and configuration from other tenants on the same instance, such that each tenants data is not visible or modifiable by other tenants, except via Fediverse protocol interactions.</li>
<li>Tenants may have distinct policies (e.g. moderation rules, registration policies, content limits), branding, and domain names within the same server instance, depending on implementation.</li>
<li>Tenants may be mapped to domains or subdomains, path prefixes, or other routing constructs at the protocol and deployment levels (e.g. <code>https://tenant-a.server.example/</code>, <code>https://tenant-b.server.example/</code>, <code>https://tenant-c.example/</code>).</li>
</ul>
<p>Examples:</p>
<ul>
<li>A multi-tenant deployment where a single server instance hosts per-user domains (<code>https://alice.example/</code> and <code>https://bob.example/</code>).</li>
<li>A deployment where multiple communities are modeled as separate tenants with separate administrative control.</li>
</ul>
<h2 id="relationship-between-terms">Relationship Between Terms<a class="headerlink" href="#relationship-between-terms" title="Permanent link">&para;</a></h2>
<ul>
<li>One server implementation can be deployed as many server instances.</li>
<li>Each server instance runs exactly one version of a server implementation at a given point in time.</li>
<li>A server instance may serve one tenant (single-tenant) or multiple tenants (multi-tenant). Current server implementations are predominately server a single tenant. Known multitenant-capable server implementations include <a href="https://jointakahe.org/">Takahē</a>, <a href="https://codeberg.org/Vocata/vocata">Vocata</a>, and <a href="https://github.com/steve-bate/firm">FIRM</a>.</li>
</ul>
<div class="highlight"><pre><span></span><code>+-----------------------+
| Server implementation |
+-----------------------+
| software codebase |
| release artifacts |
+-----------------------+
|
| 0..*
v
+-----------------------+
| Server instance |
+-----------------------+
| running deployment |
| config + storage |
| admin boundary |
+-----------------------+
| \
| \
| \
v v
+----------------+ +----------------+
| Single tenant | | Multi-tenant |
| deployment | | deployment |
+----------------+ +----------------+
\ /
\ /
\ /
\ 1 / 1..*
v v
+----------------+
| Tenant |
+----------------+
| isolated data |
| isolated policy|
| admin boundary |
+----------------+
</code></pre></div>
<h2 id="scope-and-non-goals">Scope and Non-Goals<a class="headerlink" href="#scope-and-non-goals" title="Permanent link">&para;</a></h2>
<p>This document:</p>
<ul>
<li>Defines terminology for use in FEPs, specifications, and implementation documentation.</li>
<li>Does not prescribe any particular multitenancy model, request routing strategy, database layout, or deployment topology.</li>
<li>Does not define how tenants are discovered, migrated, or addressed at the protocol level; those topics are expected to be covered by other FEPs.</li>
</ul>
<h2 id="references">References<a class="headerlink" href="#references" title="Permanent link">&para;</a></h2>
<ul>
<li>Christine Lemmer-Webber, Jessica Tallon, Erin Shepherd, Amy Guy, Evan Prodromou, <a href="https://www.w3.org/TR/activitypub/" title="ActivityPub">ActivityPub</a>, World Wide Web Consortium (W3C), 2018</li>
<li><a href="https://en.wikipedia.org/w/index.php?title=Multitenancy&amp;oldid=1338248635" title="Multitenancy">Multitenancy</a>, Wikipedia Foundation, 2026</li>
<li><a href="https://en.wikipedia.org/w/index.php?title=Fediverse&amp;oldid=1349081668" title="Fediverse">Fediverse</a>, Wikipedia Foundation, 2026</li>
</ul>
<h2 id="copyright">Copyright<a class="headerlink" href="#copyright" title="Permanent link">&para;</a></h2>
<p>CC0 1.0 Universal (CC0 1.0) Public Domain Dedication</p>
<p>To the extent possible under law, the authors of this Fediverse Enhancement Proposal have waived all copyright and related or neighboring rights to this work.</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.tabs"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.79ae519e.min.js"></script>
<script src="../../javascripts/tablesort@5.3.0/tablesort.min.js"></script>
<script src="../../javascripts/tablesort.js"></script>
</body>
</html>
File diff suppressed because one or more lines are too long
+172 -168
View File
@@ -2,674 +2,678 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://helge.codeberg.page/fep/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/draft/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/final/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/withdrawn/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0151/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0391/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0391/contextProof/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0391/inReplyToProof/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0391/relationshipProof/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/03c1/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/044f/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0499/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0499/multibox/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/07d7/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0837/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/0ea0/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1042/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/11dd/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1311/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1580/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/171b/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1970/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1985/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1985/ForwardChronological/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1985/OrderingClass/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1985/ReverseChronological/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1985/orderType/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/19b3/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1a11/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/1b12/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/2100/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/2277/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/22b6/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/2677/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/268d/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/2931/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/2c59/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/2e40/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/2e40/namespace/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/3264/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/34c1/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/34ec/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/35b7/</loc>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/37f2/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/3ab2/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/3b86/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/400e/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/4adb/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/4ccd/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/4f05/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/521a/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/521a/fep-521a-test-case/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/5624/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/5711/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/5bf0/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/5e53/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/5feb/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/612d/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/61cf/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/6481/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/6606/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/67ff/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/6fcd/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/73cd/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/7458/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/7502/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/7628/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/76ea/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/7888/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/7952/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/7b29/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/7d8c/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/82f6/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/844e/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/888d/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/888d/SomeType/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/888d/exampleA/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/888d/exampleB/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/888d/exampleC/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8967/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/AttendeesCollection/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventCancelled/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventMovedOnline/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventPostponed/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventRescheduled/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventScheduled/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventStatusType/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/EventTentative/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/OrganizersCollection/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/attendees/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/category/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/displayEndTime/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/eventStatus/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/externalParticipationUrl/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/isBannerImage/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/joinMode/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/organizers/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/previousStartTime/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/requiredJoinVisibility/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/timezone/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8a8e/upcomingEvents/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8b32/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8c3f/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/8fcf/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/9091/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/9098/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/96ff/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/9967/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/9f9f/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/9fde/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/a070/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/a1d1/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/a427/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/a4ed/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/a5c5/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/a974/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/ae0c/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/ae97/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/b06c/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/b2b8/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/bad1/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c07e/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c0e0/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c118/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c16b/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c180/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c195/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c390/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c4ad/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c551/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c551/tests/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c5a1/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c648/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c7d3/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c81b/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/c893/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/cb76/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/cd47/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/d36d/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/d556/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/d767/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/d8c2/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/d8c8/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/d8c8/implementation/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/d9ad/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/db0e/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/db70/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/dc88/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/dd4b/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/e229/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/e232/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/e3e9/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/e965/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/e965/fep-e965-test-case/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/eb22/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/eb48/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/ee3a/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/ef61/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/efda/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/f011/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/f06f/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/f15d/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/f1d5/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/f228/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/fb2a/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/fc48/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/fe34/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
<url>
<loc>https://helge.codeberg.page/fep/fep/fffd/</loc>
<lastmod>2026-04-21</lastmod>
<lastmod>2026-04-22</lastmod>
</url>
</urlset>
BIN
View File
Binary file not shown.