Je fremforge-account
Een fremforge-account is je persoonlijke identiteit op het platform. Een organisatie is een tenant die wordt gefactureerd: een werkruimte waarin repository’s, leden, secrets, CI-runs en beleid staan. Het zijn bewust twee aparte begrippen. Deze pagina beschrijft wat waar staat, hoe ze samenhangen en hoe je elk van beide verwijdert.
Eén account, veel organisaties
Je meldt je één keer aan. Je krijgt één persoonlijk account op frem.sh/<your-username> met je e-mailadres, je SSH-sleutels, je persoonlijke toegangstokens, je 2FA en je lokale wachtwoord (als je er een instelt). Overal waar je je bij fremforge authenticeert, in de UI, via Git of via de API, doe je dat als dat account.
Lidmaatschap van een organisatie is een aparte relatie. Je ene account kan lid zijn van nul, één of veel organisaties. Elke organisatie betaalt haar eigen gebruiker voor jou. De organisaties waartoe je behoort, zie je in de organisatiewisselaar van de UI.
Twee gevolgen die goed zijn om te onthouden:
- Je uit een organisatie verwijderen, verwijdert je account niet. Beheerders van een organisatie kunnen je op elk moment uit hun organisatie verwijderen; dat trekt je toegang tot hun repository’s in en haalt een betalende gebruiker van hun telling af, maar je persoonlijke account blijft bestaan en je kunt lid worden van andere organisaties.
- Je account verwijderen, verwijdert de organisaties waartoe je behoort niet. Ben je de enige eigenaar van een organisatie, dan eist het platform dat je eerst een andere eigenaar aanwijst of de organisatie volledig opzegt voordat je verzoek om je account te verwijderen kan worden afgerond.
Lid worden van een tweede organisatie
Je kunt de oprichtende beheerder van meer dan één fremforge-organisatie zijn zonder meerdere accounts aan te maken. Twee gevallen:
- Zelfde e-mailadres, nieuwe aanmelding. Meld je een nieuwe organisatie aan op
frem.sh/_app/signupmet een e-mailadres dat al een fremforge-account heeft, dan herkent de aanmelding de bestaande gebruiker, hergebruikt die en voegt je toe als Eigenaar van de nieuwe organisatie. Je krijgt geen tweede wachtwoord: je bestaande inloggegevens werken voor beide organisaties, en de knop in de welkomstmail luidt "<slug>openen →" (aanmelden met je bestaande wachtwoord) in plaats van de eenmalige link “Inloggen bij fremforge →” die een gloednieuwe beheerder krijgt. (Geen enkele welkomstmail van fremforge bevat ooit een wachtwoord.) - Uitgenodigd voor een bestaande organisatie. Nodigt een andere beheerder je e-mailadres uit, dan accepteer je de uitnodiging vanaf
frem.sh/user/notificationsen word je toegevoegd als lid van die organisatie. Geen tweede account, geen tweede wachtwoord.
Elke organisatie heeft haar eigen factuurrelatie met fremverk, haar eigen aantal gebruikers, haar eigen Mollie-mandaat, haar eigen facturen en haar eigen beheeromgeving op frem.sh/<slug>/_admin/billing. Er is geen gezamenlijke factuur over organisaties heen.
Wisselen tussen organisaties
Er is in frem.sh/_app geen organisatiewisselaar in het product; het beheer per tenant wordt bepaald door de slug in het URL-pad (/<slug>/_admin/...). De natuurlijke wisselaar zit aan de Forgejo-kant op frem.sh:
- Meld je aan op
frem.sh/user/login(of klik ergens op de marketingsite op “Sign in”; dat stuurt je viafrem.sh/_app/loginvoor het herkennen van je e-maildomein, zie Zo werkt aanmelden). - Je dashboard toont elke organisatie waartoe je behoort. Klik er een aan om te beginnen: repository’s, issues, CI, instellingen.
- Om het fremforge-beheer (facturatie, SSO, leden) van een specifieke organisatie te openen, ga je naar
frem.sh/<slug>/_admin/billing. De meeste mensen maken een bladwijzer van de beheer-URL van elke organisatie die ze beheren.
Sessiebinding per organisatie staat voor elke tenant standaard aan. De eerste keer dat je het beheer van een organisatie opent, stuurt fremforge je voor die organisatie door een aanmeldrondje en houdt het daarvan per organisatie tot 8 uur lang een registratie bij. Wat dat rondje bewijst, hangt af van het niveau hieronder. Bij zachte binding bewijst het dat je browser een geldige aanmelding heeft, niet dat je je net opnieuw hebt aangemeld. Alleen harde binding laat je opnieuw authenticeren.
Het doel van het rondje is de universele aanmelding van Forgejo op frem.sh/user/login, geen SSO-URL per organisatie. Dat is bewust: de universele aanmelding accepteert zowel de gekoppelde SSO-knoppen als een lokaal wachtwoord + 2FA, en daarmee blijft de SSO-noodtoegang intact: is je IdP onbereikbaar, dan kan een eigenaar van de organisatie met lokale inloggegevens en 2FA zich nog steeds authenticeren, door de binding per organisatie komen en het organisatiebeheer bereiken. Een omweg via een SSO-URL per organisatie zou een single point of failure creëren (de IdP van de organisatie), en die is precies wat het ontwerp van de noodtoegang moet voorkomen.
Twee sterkteniveaus, afhankelijk van hoe je IdP is gekoppeld:
- Zachte binding (standaard, noodtoegang met lokale inloggegevens blijft behouden): per organisatie een registratie van wie het beheer van elke organisatie gebruikte en wanneer, en bij de eerste toegang tot elke organisatie een rondje via Forgejo. Is je Forgejo-sessie actueel, dan merk je niets van het rondje en wordt er niets gevraagd: het bewijst dat je een sessie hebt, geen verse authenticatie. Is de sessie niet actueel, dan meld je je opnieuw aan. Het doel is
frem.sh/user/login, dat een lokaal wachtwoord + 2FA accepteert, zodat een storing bij de IdP eigenaren van organisaties niet buitensluit. - Harde binding (gereguleerde workloads): per organisatie afgedwongen hernieuwde bevestiging door de IdP via OIDC
prompt=login. Het rondje wordt dan een echte, door de IdP bevestigde authenticatie voor die organisatie: de IdP MOET opnieuw om inloggegevens en MFA vragen, en onze callback controleert datauth_timebinnen de laatste 5 minuten ligt. Je koppelt het door in je IdP naast de Forgejo-client een tweede OIDC-client te registreren (zelfde issuer, aparte client_id + client_secret) en de inloggegevens in Organisatiebeheer → SSO te plakken.
Beide niveaus behouden de SSO-noodtoegang: eigenaren van organisaties met een lokaal wachtwoord + 2FA kunnen elke storing bij de IdP opvangen. Harde binding dwingt alleen een verse authenticatie bij de IdP af zolang de IdP van je organisatie bereikbaar is. Wordt je IdP onbereikbaar, dan werkt je bestaande noodprocedure nog steeds.
SSO over meerdere organisaties
Elke organisatie koppelt haar eigen IdP onder Organisatiebeheer → SSO. Gebruikers melden zich bij een specifieke organisatie aan via de knop <auth-source-name> van die organisatie op frem.sh/user/login?redirect_to=/<slug> (of via de herkenning op frem.sh/_app/login, die je op basis van het domein van je e-mailadres naar de juiste aanmeldpagina stuurt).
Ben je lid van twee organisaties met verschillende IdP’s, dan authenticeer je via de IdP waarlangs je binnenkomt; zodra je Forgejo-sessie bestaat, werkt het navigeren tussen organisaties zoals hierboven. Gebruiken beide organisaties dezelfde IdP (bijv. twee bedrijfsonderdelen op dezelfde Authentik-tenant), dan brengt één authenticatie je in beide.
De eerste toegang tot een andere organisatie stuurt je één keer om. Waar die omweg heen gaat, hangt ervan af of de organisatie harde binding heeft gekoppeld (een OIDC-client voor step-up):
- Organisatie met harde binding: de omweg gaat naar
frem.sh/<slug>/_admin/-/stepup, dat een OIDC-AuthN-verzoek metprompt=loginstart tegen de step-up-client van de organisatie. Je IdP vraagt opnieuw om inloggegevens en MFA, de callback controleert het ID-token en hoe versauth_timeis, en je komt terug op de oorspronkelijke URL met een nieuwe sessieregistratie voor die organisatie. - Organisatie met zachte binding: de omweg gaat naar
frem.sh/user/login. De universele aanmelding van Forgejo toont de beschikbare auth-bronnen: altijd een lokaal wachtwoord + 2FA, plus de SSO-knop van je organisatie als die is gekoppeld. Is je bestaande Forgejo-sessie vers, dan volgt de pagina gewoonredirect_tozonder opnieuw te vragen.
Beide niveaus laten de noodtoegang met lokale inloggegevens intact. Een eigenaar van een organisatie met een lokaal wachtwoord + 2FA op de universele aanmelding van Forgejo kan elke storing bij de IdP opvangen; de binding per organisatie verandert niets aan die afspraak.
Gegevens op accountniveau en op organisatieniveau
Dit is de scheidslijn die bepaalt wie onder de AVG waarover beslist en waar je welke instelling vindt.
| Gegevens | Staan op | Verwerkingsverantwoordelijke | Waar te beheren |
|---|---|---|---|
| E-mailadres, weergavenaam, wachtwoordhash | Account | fremverk ApS | Gebruikersinstellingen → Beveiliging en inloggen |
| SSH-sleutels, GPG-sleutels | Account | fremverk ApS | Gebruikersinstellingen → SSH / GPG sleutels |
| Persoonlijke toegangstokens | Account | fremverk ApS | Gebruikersinstellingen → Git-toegangstokens |
| 2FA-registratie + herstelcodes | Account | fremverk ApS | Gebruikersinstellingen → Beveiliging en inloggen |
| Lokaal wachtwoord (als SSO ook is ingericht) | Account | fremverk ApS | Gebruikersinstellingen → Beveiliging en inloggen |
| OIDC-koppeling | Account, per organisatie | Eigenaar van de organisatie + IdP | Organisatiebeheer → SSO |
| Repository’s, issues, PR’s, wiki | Organisatie | De organisatie (klant) | Organisatiebeheer / repository-instellingen |
| Secrets, runners en beleid op organisatieniveau | Organisatie | De organisatie (klant) | Organisatiebeheer |
| Auditlog | Organisatie | De organisatie (klant) | Auditlog |
| Facturatie, facturen, betaalmethode | Organisatie | De organisatie (klant) | Organisatiebeheer → Facturatie |
Gegevens op accountniveau vallen onder de privacyverklaring voor het product; fremverk ApS is de verwerkingsverantwoordelijke. Inhoud op organisatieniveau valt onder de verwerkersovereenkomst; je organisatie is de verwerkingsverantwoordelijke en fremverk is de verwerker namens haar.
Naslag accountinstellingen
frem.sh/user/settings is de pagina met persoonlijke instellingen, weergegeven door Forgejo. De relevante subpagina’s:
- Profiel: naam, e-mailadres, avatar, taalvoorkeur.
- Beveiliging en inloggen: lokaal wachtwoord, 2FA, herstelcodes, account verwijderen. Zie Tweefactorauthenticatie.
- SSH-sleutels en GPG keys: publieke sleutels voor Git-bewerkingen en het ondertekenen van commits.
- Git-toegangstokens: persoonlijke toegangstokens (PAT’s). OAuth-applicaties die je hebt geautoriseerd, zie je en trek je in op
frem.sh/user/settings/applications; die pagina staat niet in het instellingenmenu. - Meldingen: voorkeuren voor meldingen per e-mail en in de app.
Via de REST-API
Een handvol bewerkingen op accountniveau is ook beschikbaar via de openbare REST-API. Handig bij het scripten van een CI-bootstrap, om te controleren voor welke organisaties een token kan handelen, of om PAT’s vanuit een automatisering te roteren.
- Je profiel + lidmaatschappen van organisaties lezen
GET /_app/api/v1/users/me - Een persoonlijk toegangstoken uitgeven
POST /_app/api/v1/auth/tokens - Je actieve tokens opvragen
GET /_app/api/v1/auth/tokens - Een token intrekken
DELETE /_app/api/v1/auth/tokens/:tokenId
Authenticeer met een persoonlijk toegangstoken (PAT) als Authorization: Bearer ${FREMFORGE_PAT}. Voor het uitgeven van een nieuw PAT is een actieve aanmeldsessie in de beheer-UI nodig; de scope van het uitgegeven token kan niet verder gaan dan je rol.
curl -H "Authorization: Bearer ${FREMFORGE_PAT}" \
https://frem.sh/_app/api/v1/users/meZie de naslag van de openbare REST-API voor de volledige OpenAPI-specificatie.
De bovengenoemde onderdelen van het persoonlijke account (SSH-sleutels, GPG-sleutels, 2FA-registratie, account verwijderen) zijn bewust niet beschikbaar via de openbare REST-API: het zijn acties op persoonlijke inloggegevens die om veiligheidsredenen een aangemelde browsersessie vereisen.
Je fremforge-account verwijderen (AVG-recht op vergetelheid)
Volgens AVG art. 17 heb je het recht om je persoonsgegevens te laten wissen, met beperkte uitzonderingen voor wettelijke bewaarplichten. fremverk ApS ondersteunt dat recht als verwerkingsverantwoordelijke voor je accountgegevens.
Wat je zelf kunt verwijderen
User settings → Security & sign-in → Delete account. Verwijderen in selfservice:
- Verwijdert je uit elke organisatie waarvan je op dat moment lid bent. Het aantal gebruikers van elke betrokken organisatie gaat bij de volgende factuurcyclus omlaag.
- Reserveert je gebruikersnaam permanent (tombstone), zodat die niet opnieuw kan worden geregistreerd (dat voorkomt dat iemand zich voordoet als jou in historische commits en auditlogregels).
- Wist je persoonlijke accountgegevens definitief: profiel, SSH-sleutels, GPG-sleutels, PAT’s, 2FA-secret, hashes van herstelcodes, meldingsvoorkeuren. Binnen 30 dagen; het wissen uit back-ups volgt binnen nog eens 30 dagen volgens DPA §9.
- Behoudt je historische bijdragen: auteurschap van commits, issues en PR’s, opmerkingen, auditlogregels die je noemen. Die verwijderen zou elke organisatie beschadigen die op deze gegevens rekent als bewijs van wie wat deed. In de live UI wordt je gebruikersnaam getoond als
<deleted-account>, terwijl de onderliggende verwijzing naar het gebruikers-id (een vast geheel getal) audit- en Git-geschiedenis intact houdt.
Wat via support moet
Twee gevallen vragen om actie via compliance@frem.sh:
- Je bent de enige eigenaar van een organisatie. Verwijderen in selfservice is dan geblokkeerd. Wijs via Organisatiebeheer → Leden een andere eigenaar aan en verwijder daarna je account, of schrijf naar compliance@frem.sh met het verzoek organisatie en account samen te verwijderen.
- Je wilt historische bijdragen actief laten herschrijven. Standaard blijft de toeschrijving behouden onder een gereserveerde gebruikersnaam. Heb je een gedocumenteerde juridische grond voor een verdergaand wissen (bijvoorbeeld een definitieve wijziging van je wettelijke naam die in gerechtelijke documenten staat), mail dan compliance@frem.sh met die grond. Elk verzoek wordt afzonderlijk beoordeeld tegen de beperkingen van AVG art. 17, lid 3.
Wat we niet op verzoek verwijderen
Volgens AVG art. 17, lid 3 mag het volgende na het verwijderen van een account worden bewaard:
- Factuur- en betalingsgegevens van organisaties waarmee je verbonden was, 5 jaar bewaard volgens de Deense boekhoudwet (Bogføringsloven).
- Auditlogregels over beveiliging en misbruik waar bewaring nodig is voor het vaststellen, uitoefenen of verdedigen van rechtsvorderingen, of om aan een wettelijke verplichting te voldoen (bijv. meldingen van misbruik onder DSA art. 16, 5 jaar bewaard volgens privacyverklaring §6).
- Geaggregeerde, geanonimiseerde operationele statistieken, die je niet kunnen identificeren en buiten het AVG-begrip persoonsgegevens vallen.
Verificatie voor het verwijderen
Een account verwijderen is destructief en onomkeerbaar. Het selfserviceproces vraagt je opnieuw te authenticeren (lokaal wachtwoord, of een step-up bij de IdP als je alleen SSO gebruikt) en te bevestigen door je gebruikersnaam te typen, hetzelfde Forgejo-patroon als bij het verwijderen van een repository. Bij het indienen wordt een bevestigingsmail verstuurd, en nog een keer zodra het wissen uit de back-ups is afgerond.
Opnieuw activeren
Is het verwijderen afgerond, dan kan het account niet opnieuw worden geactiveerd. De gebruikersnaam blijft gereserveerd voor het verwijderde gebruikers-id om de historische toeschrijving te beschermen, dus je kunt dezelfde gebruikersnaam niet opnieuw registreren bij een nieuwe aanmelding. Wil je fremforge weer gebruiken, meld je dan aan met een nieuw e-mailadres en een andere gebruikersnaam.
Kruisverwijzingen
- Leden en teams: lidmaatschap van de organisatie beheren vanuit het organisatiebeheer
- Tweefactorauthenticatie: 2FA op accountniveau instellen en herstellen
- Organisatiebeheer: de instellingen op organisatieniveau
- Verbinden: SSH-hostsleutels, controle van fingerprints, terugvaloptie via poort 443
- Privacyverklaring voor het product: de juridische grondslag voor het verwerken van accountgegevens en de rechten van betrokkenen onder de AVG