ACCESS_KAMOWORLD rechts (145, GAMES) für KamoUniverse-Zugang hinzufügen
Wiederbeleben auf k1m1 - shared-lib von k1m1:3000, Drop Dead k2m1 deploy, pin k1m1 Registry Image
Drop MIT revision_history von Backup (enterprise-only); Core BACKUP ist OSS
node-config: document k1m1 forgejo-runner config (---add-host für Submodule DNS)
Job-Container auf k1m1 fallen auf öffentliche DNS zurück, so dass die Flotte-swept http://k1m1:3000 .gitmodules URLs klonen dort nicht. Pin k1m1 in Arbeit Conta...
node-config: document k1m1 docker daemon insecure-registries
Die Builds des k1m1 forgejo-runners schieben zur HTTP Forgejo-Registry; die daemon.json mit nur den :5000 Einträgen ausgeliefert, so dass jeder Bau Job Landung ...
K1m1 Bildregistrierung ersetzt ausgeschiedenes ausgeschiedenes k0m1:5000 (gleiche Anmeldeinformationen)
Loki 6.x SingleBinary braucht null skalierbare Ziele; crdb exec via localhost (cert SANs)
Kamo-Universum namespace+quota+valkey, CockroachDB Backups, Beobachtbarkeit Stack
- Universum/: namespace + ResourceQuota, valkey-univers (AOF, hostPath k1m1), nächtliche CockroachDB Backup CronJob, Betreiber Bootstrap Skript - Überwachung/...
Join Shared Two-Node-Cluster mit k3m1 über LAN; Konto-Isolation
Retire WireGuard Routen (10.8.x.x) für LAN-Routen (192.168.4.2) <-" 192.168.4.36 :6222) mit in den Routen-URL eingebetteten Credo. Cluster umbenennen kamo-rates...
K3m1 Knoten + migrieren Cluster Peering zu LAN IPs hinzufügen
- statefulset: werben/join über 192.168.4.x (k1m1=.22, k3m1=.36); WireGuard fiel (k3m1 wg0 10.8.0.1 kollidierte mit k0m1's Werbe IP). - init-job + CI kubeconf...
Route bezahlte Anmeldungen zur Kasse nach der Anmeldung
Nach erfolgreiches Au und Auth (manual oder auto-login), verbrauchen Sie die Apex-domain sp_checkout_plan Cookie links von kamo-register und leitet den Käufer a...
Tragen Sie bezahlt ? Plan von der Anmeldung in die Kasse
Wenn eine Mitgliedsanmeldung von einer kostenpflichtigen Preisgestaltung stammt, wird CTA (?plan=pro|business) Drop ein apex-domain sp_checkout_plan Cookie bei ...
Wire intern-auth Geheimnis von ***
ESigService bestätigt X-Internal-Auth nun gegen das gleiche gemeinsame Geheimnis APIService präsentiert ************ aus der *** k8s Geheimnis), das programmmat...
Rebuild für kamo-shared-library update (Esign Signer E-Mail Vorlagen)
Abruft die neuen kanonischen Vorlagen esign.signer_verifikation + esign.signer_invite also kann seedForOrg sie auf dem ersten Senden säen.
Canonische E-Zeichen-Vorlagen (verifikation + einladen)
Fügen Sie zwei plattformweite kanonische E-Mail-Vorlagen, die faul per Org ausgesät sind: - esign.signer_verification (Step-up OTP: {{code", {{name" - esign.sig...
Registere Repots für die Metereinwerbbuchsenbbuchung registrieren
EsignMeterSubmissionService benötigt EsignUsageRepository, aber @EnableJpaRepositories nicht scannen com.kamo.z.shared.esign.repos, so dass der Kontext nicht zu...
E-Zeichen Nutzungsmessung + Verbraucher Self-Serve-Checkout
#4 Zähler: - EsignMeterSubmissionService (@Scheduled täglich): aggregiert API-Ursprung EsignUsageRecords per org+Periode; erste 40/Periode inbegriffen, der Re...
API_SIGNATURE (E-Signature API) Schlüsselbereich auszusetzen
Fügen Sie den E-Signature API-Fernergst zum org API-Schlüsselmanager hinzu, damit die Mitarbeiter zustimmen können Business orgs programmatische E-Zeichen-Zugri...
Öffentlich programmbeg nchnerisch e-sign API Gateway (API_SIGNATURE scope)
Fügen Sie /api/public/esign/** zu PublicApiController hinzu: die org API-Taste validiert, benötigt den API_SIGNATURE-Fernertrag, die Tariflimits und weiter an E...
Interne programmatisches Umschlag API (origin=API) für Unternehmen
- EsignInternalController (/api/esig/internal/*): X-Internal-Auth + X-Org-Id .o., von APIService aufgerufen, nachdem es die API_SIGNATURE-Sachschlüssel validi...
API SIGNATURE api-key Scope + EsignGenericEnvelope.origin
Additive, keine Versionsstoß: - ApiKeyScope.API_SIGNATURE - Gates die programmatische E-Signatur-API (Business) - EsignGenericEnvelope.origin (EsignUsageOrigin,...
Send-for-signature-Aktion + Umschlagstatus im Dokumenteditor
Fügen Sie einen 'Senden für Signatur'-Button in den Template-Editor-Header hinzu, der eine Dialog um das Dokument an Empfänger zu senden und Track-Signatur-Stat...
Generische Umschlag erstellen/senden Motor (sender Seite)
Fügen Sie die OTK-authed /api/esig/envelopes API kamo-interne Laufwerke zu senden Dokumente für die Unterzeichnung, Wiederverwendung der gleichen Shared-lib-Ein...
Public Signing API Engine für sign.sign.pink
Implementieren Sie die /api/esig/public/* Signier-API, die die Kamo-Signeur-App ruft, Drehen Sie den Live-Signator von Preview-Stub in ein funktionierende Backe...
Zurück dosierte Add-on-Preise mit einem Billing Meter
Stripe (-= 2025-03-31.basil) lehnt die Legacy use_type+aggregate_usage ab dosiertes Modell ('Mete Preise müssen durch Meter gesichert werden'), so USAGE_BASED A...
Plattform-Produkt-schalten in Organisationen-Registerkarte
Oberfläche der Plattform-Produkt-Bezeichnung, wo es hingehört . Plattform Organisationen. Fügt einen gated Switch per org hinzu (entsperrt für die Top-Level-Og)...
Organisation verwalten.isPlatformProdukt von der Plattform
PlatformAccountSummary stellt aus der Plattform-Product + hat SubscriptionMarket; neu PUT ************ (Plattform-Admin gated) setzt die Flagge und ungültig die...
Explizit Organisation.isPlatformProduct als Anspruch-Wurzel-Signal
Ersetzen Sie die abgeleitete 'Eigentümer eines SUBSCRIPTION-Markt' Heuristik durch eine explizite, admin-Set Eigentumsflagge. Ein Plattformprodukt (z.B. sign.pi...
Wählen Sie den SUBSCRIPTION Markt für Plattform-Setup
KamoCRM besitzt mehrere Märkte ************ so resolveProductMarket muss sich für den SUBSCRIPTION-Markt (Plattform-Zugang) entscheiden anstatt der ersten aktiv...
Produktwurzel = besitzt SUBSCRIPTION Markt, nicht irgendeinen Markt
Ein Kunde org (z.B. BluEleven) besitzt seine OWN-Geschäftsmärkte (RETAIL/MORTGAGE) um sein Unternehmen zu führen und gleichzeitig Kunde der KamoCRM-Plattform zu...
Scope-Mitgliedsansprüche auf Produktwurzel, nicht KamoCRM
EntitlementService löst nun die Ansprüche jedes Mitglieds Root über EntitlementRootResolver (vernündlichste markteigene Vorfahren-oder-selbst) statt zu Fuß auf ...
Ansprüche durch Produkt-root org lösen, nicht Plattform-Top-Level
EntitlementRootResolver einzuführen: der nächste marktbesitzende Vorfahren-oder-selbst einer Org (ihre Produktwurzel), die auf die Plattform zurückfällt. Dies e...
Org-Liste auf Hintergrund refetch; dedupe Sitzungsgespräche
/network re-gefeuert fetchNetworks auf jeder Hintergrund-Session aktualisieren und versteckte die ganze Liste auf jedem holen Fehler, so dass ein vorübergehende...
Umhüllen-Empfänger hinzufügen, Feldwert, Empfängerstatus-Einheiten
Checken Sie das in-progress esign Modell ein: EsignEnvelopeRecipient (+repo), EsignFieldValue (+repo), EsignRecipientStatus und ein ESignSignerType Update. Addi...
EsignUsageRecord für die Verbrauchsmessung pro Signatur hinzufügen
Neue Append-Only-Use-Einheit (Spiegel AiUsageRecord) bei der Unterschrift emittiert Fertigstellung. Nur API-Ursprung-Signaturen zählen zu einem Plan monatlich e...
E-Mail-Link auf Handler, isolieren Ursache
Benutzer berichtet E-Mail-Vorschau Links Klicks noch nichts UND Text Die Auswahl wird mitten im Ziehen getötet. Rechtsklick und schweben beide Arbeit, so die da...
Seitenverhältnis erhalten, niemals nicht-Quadrat-Logos strecken
Favicon PNG/ICO Rahmen wurden mit keepAspectRatio(false) produziert, Dehnung jedes nicht-quadratisch-Logo in ein verzerrtes Quadrat. Mitte-passen das Logo auf e...
Regenerieren Sie favicons auf der Kennzeichnung speichern; echtes Logo-Typ schnüffeln
BereitstellungUpdate (auf jeder benutzerdefinierten Kennzeichnung speichern) geschrieben config/css/manifest aber nie regeneriert Favicons - die wurden nur durc...
Seed globals.css aus Vorlage, wenn org Ordner fehlt es
BereitstellungUpdate (auf jede Farbe speichern) umgeschrieben die org css/globals.css an Ort und Stelle, aber dieses Objekt existiert erst, wenn die Vorläufige-...
Volles Logo mit seiner echten Erweiterung anzeigen, nicht hardcod .svg
Die Branding-Tab gebaut LogoFullUrl als logo-full.svg auf der Halterung, ignorieren die org's logoFullExt. Vollständige Logos hochgeladen als png/jpg/etc. live ...
Refresh TLSStore jede Schleife so neu ausgestellte Zertifikate serviert werden
update_tls_store() lief nur bei Start und auf Shared-Storage-Importe, also cert fresh ausgestellt von cert-manager (HTTP-01) war bereit mit einem tls-*-Geheimni...
Geben Sie nur eine Umleitungsstrecke ein Backend, so Traefik v3 ermöglicht es
Traefik v3 deaktiviert einen IngressRoute Router mit Service: [] wenn allowEmptyServices ist ausgeschaltet (wie es hier ist), also die Domain-Agnostiker HTTP-HT...
Alle HTTP-Hosts auf HTTPS + Gate Auto-cert umzuleiten
Custom Org Domains (z.B. login.sign.pink) zurückgegeben Traefik's bare "404 Seite nicht gefunden" über einfach HTTP: der einzige port-80 Redirect Router wurde h...
Vorsingenzeichen.pink + www.sign.pink in STATIC_DOMAINS
sign.pink ist eine neue Apex-Domain (Verbraucher-E-Signatur Marke / White-Label Kamo Mieter Org). Pre-seed apex + www also existiert ein Let's Encrypt cert vor ...
Konvertieren_error anhalten statt still zu scheitern
Sowohl die Vorlage und regelmäßige Upload-Konvertierungs-Pipelines geschluckt Docs Konvertierungsfehler (nur geloggt), Verlassen is_converted=false ohne aufgeze...
Installieren Sie Turbo via npm in Docker pruner stage; pin pnpm; fügen .dockerignore
Die Snauflage lief "pnpm add -g turbo", bevor ein Paket.json existierte, also corepack griff pnpm 11 und scheiterte mit "global bin directory /pnpm/bin not in P...
Neue monorepo + mobile-first e-signature Signing App
Turborepo + pnpm Arbeitsplätze Monorepo Gehäuse wiederverwendbare E-Zeichen-Pakete Aus Kamo-internen plus eine neue, ultra-polierte Kamo-Signör-App extrahiert d...
Vollständige Unternehmen neu schreiben mit Live-Vorschau
LoanProductForm war eine einzelne schmale Spalte (maxWidth: 880) mit hartcodierten Englisch überall. verwendet jetzt das gleiche Unternehmensmuster wie die Ange...
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.