Per-field saved secrets and provider notes in the connect form
- A second write-only secret (e.g. DocuSign's notification secret) says 'leave blank to keep the saved one' from the server's savedSecrets. - A provider can c...
Second write-only secrets; DocuSign Connect key stored encrypted
- CONFIG_SECRET catalog fields are encrypted into configJson on save, kept when left blank, never echoed: the list view and every change-log snapshot strip ...
A second write-only secret per connection (CONFIG_SECRET)
**************** keeps a second secret (e.g. a webhook signing key beside the API secret) ENCRYPTED in configJson. Adapters read it with **************** key, c...
Order vendors in the catalog — appraisal, title, flood, income, asset and identity
Twelve vendors the vendor-order service now has adapters for, each with its real credential form and sandbox/production addresses: - Appraisal: Mercury Network,...
Credit resellers on MISMO 2.4 with Test Connection; an eSign SPI with DocuSign and DocMagic eSign
Credit (mortgage/credit): - Every catalogued reseller (Xactus, Credit Plus, MeridianLink, CBC Innovis, Factual Data) now sends the MISMO 2.4 credit request th...
Closing documents from DocMagic and Docutech; real eClose vendor URLs and fields
CLOSING_DOCS offers DocMagic and Docutech. Proof and DocuSign Notary get their published hosts (Proof production/Fairfax, DocuSign's OAuth hosts) and real crede...
Relay every pricing engine's quote, not only Kamo's native one
The borrower pricing quote returned EXTERNAL_VENDOR_PENDING for any PRICING_PPE engine other than Kamo's own. MLOSPricingService now dispatches to the org's eng...
Catalog-driven Connected Services
The Partners tab's integrations are now driven by SecurityService's vendor catalog instead of a hardcoded category list and a free-text vendor key. - Categorie...
Credit resellers on the MISMO 2.4 login fields; DocuSign and DocMagic eSign in the catalog
- CREDIT: every reseller (Xactus, Credit Plus, MeridianLink, CBC Innovis, Factual Data) takes the MISMO 2.4 credit request with the account login on REQUEST, ...
Catalog-driven provider connections, primary vendor, Test Connection
- GET **************** every vendor category, its owning runtime and the vendors a lender can connect, with their forms. - Creating/updating a connection vali...
Catalog Desktop Underwriter, Loan Product Advisor, Optimal Blue and Polly
AUS: DU (Fannie Mae Desktop Underwriter) and LP (Freddie Mac Loan Product Advisor, alias LPA), keyed to the AusKind/AusSourceLabel the AUS engine already uses. ...
Turn on scanning of SecurityService's uploads — kamowsantivirus is 2/2 Ready
Orders by market, walk-in sales, and a working Retail pipeline
- Orders tab: scoped to the market; customer with photo or Walk-In Sale, real statuses with counts, bulk Mark Paid / Cancel that only offer moves the server t...
Market-scoped orders, customers, carts, drafts and shipments; cart and draft conversion
- GET /pos/orders takes ?marketId=; GET /pos/orders/customers lists a Retail market's customers from its orders, with walk-in sales counted apart. - Carts, dr...
A lender picks the primary vendor per category
MortgageProviderConfig gains is_primary (BOOL DEFAULT FALSE; the column was added by hand on production first). resolvePrimary now serves the enabled primary ro...
Move a rental asset to another market; a blank rate is not a zero rate
The asset page could not change an asset's market (the server supports it now) and turned every blank rate into 0, so "not offered by the hour" and "free by the...
A vendor catalog the Partners tab and every adapter share
Adds **************** the single list of vendors Kamo has an explicit integration for per VendorCategory, each with its credential form (VendorField), default s...
Orders belong to a market; walk-in sales, partial refunds, real cart and draft conversion
- An order's engagement now carries the Retail market it was sold in (named, or the org's only one), and the purchasing account. A converted quote stamps its ...
Real work orders and subscriptions per market — dispatch, customer accounts, live subscriptions, cancel at period end
Service (work orders): - the grid reads its own market's jobs (plus older jobs with no market), shows the customer, the technician (member chip, never an id),...
Market-scoped work orders and subscriptions; dispatch and customer endpoints
- GET **************** lists one market's work orders (plus those with no market) - PUT /service-jobs/{uid}/customer files a job under an account or takes it ...
Market on the engagement, job numbers, dispatch, customer accounts, market-scoped lists
Service work orders: - createJob stores the chosen market on Engagement.market (it only picked the engagement type before) and the customer account on Engagem...
Every rental has a renter; cancel, re-date, check out, check in and end; booked dates beside the date picker
- New Rental Request: the Renter (customer account) is required and pre-filled from ?accountId; ?marketId is sent so the rental is filed under the market. Onc...
Market-filtered lists, line items, approve/reject/withdraw, send/receive/close/cancel, and a real Vendors list
- Procurement tab: Purchase Requests / Vendor Orders / Vendors; lists ask the server for the selected market (plus rows with none), show a Market column, and ...
ProcurementController — market-filtered lists, change/reject/withdraw a request, send/receive/close/cancel a vendor order, records returned from every change
- purchase requests and vendor orders move out of POSController into ProcurementController (MANAGE_PROCUREMENT to buy and run orders, APPROVE_PURCHASE_REQUEST...
Market, lines, approval decisions, and the vendor order lifecycle (send, receive, close, cancel)
ProcurementService owns purchase requests and vendor orders: - the engagement carries the market (chosen Procurement market, else the vendor's); lists filter by...
Turn Antivirus scanning on in kbservice
KamoAntivirus is Ready (StatefulSet kamowsantivirus 2/2, /readyz ready, release 2026.11.08.0101); a direct scan from the cluster returns MALICIOUS/TEST_FILE for...
Turn Antivirus scanning on in docsservice
KamoAntivirus is Ready (StatefulSet kamowsantivirus 2/2, /readyz ready, release 2026.11.08.0101); a direct scan from the cluster returns MALICIOUS/TEST_FILE for...
Turn Antivirus scanning on in mediaservice
KamoAntivirus is Ready (StatefulSet kamowsantivirus 2/2, /readyz ready, release 2026.11.08.0101); a direct scan from the cluster returns MALICIOUS/TEST_FILE for...
Turn Antivirus scanning on in conversionservice
KamoAntivirus is Ready (StatefulSet kamowsantivirus 2/2, /readyz ready, release 2026.11.08.0101); a direct scan from the cluster returns MALICIOUS/TEST_FILE for...
Assignment rows say what the member still owes
Adds signableOutstandingCount (signable documents not yet signed) and uploadsOwedCount (required requests with no live file) to each assignment row, so the memb...
KBService checks knowledge-base resources and looks up the verdict before signing
- Resource upload writes the raw kb bucket, so it goes through AntivirusUploadGuard (KB) before anything touches storage: 422 ANTIVIRUS_BLOCKED (nothing store...
Tick the weekly Protection Report (hourly, org-local Monday 08:00) and the outbreak watch (15 min)
The Antivirus API, platform controls and scheduled endpoints; gate SecurityService's own file paths
/api/antivirus/** (and the /api/security/antivirus twin the console proxy tries first): overview, detections, settings (audited ANTIVIRUS_POLICY_CHANGE), false ...
Route /api/antivirus/** to SecurityService and seal its internal subtree
KamoAntivirus mail filter first on inbound smtpd (port 25), tempfail when unreachable
smtpd_milters = { **************** default_action=tempfail }, then rspamd unchanged. Harmful attachments are replaced by a small placeholder part and the messag...
Antivirus for mail — read gate on every mailbox, milter placeholders, send screening, detections
- Read: every attachment/inline part from any mailbox (Kamo Mail, IMAP providers, Graph; personal and shared routes) is hashed in memory (temp file past 8 MiB...
Rental steps, market-filtered lists, and a renter that can move but never be cleared
- GET /rental-requests and /bookings take ?marketId (the caller's own market) and filter by the engagement's market. - POST /rental-requests/{id}/cancel, PUT ...
Orders tab filters by the organization's own markets
Chips and row labels were per line of business, named after its first market, so two Retail markets collapsed into one. Each row now shows its own market (from ...
DocsService refuses locked documents everywhere and checks editor saves
- WOPI PutFile writes raw MinIO, so the save goes through AntivirusUploadGuard first: a harmful save writes nothing, keeps the document's last good content an...
Each Orders row names its own market
Rows carry marketId / marketTitle from their engagement (one query by engagement uid), so an organization with two Retail markets sees which one an order came f...
Antivirus alerts (scanner down, signatures stale, mirror gate failing, p95, detection spike, hold backlog)
Applied by hand (monitoring/ is not a CI target).
A rental needs a renter; market on the engagement; cancel, re-date, check out, return and cancel a booking
- createRentalRequest refuses a missing or foreign customer account, records the market (the asset's, else the chosen one) on the engagement, and validates da...
Markets — the organization's own markets, by their own names
"Commerce" is gone. A market is what members define (title + description); its Line of Business is only its kind. - The nav option is Markets. With one market ...
MediaService checks attachments with Antivirus and refuses locked files on every read
- Chat attachments (member CHAT, web-chat visitor PUBLIC), system-bug files, Growth Hub images are checked inside storeContentAddressed with their context (me...
ConversionService checks uploads with Antivirus, completes held files, re-checks on new signatures
Replaces the in-service clamd client (malware/ package, UploadScanGuard, QuarantineStore, retro-scan) with the shared-library Antivirus: - /upload, /replace, /...
An engagement belongs to a member-defined market
commerce_engagements.market_id (applied by hand, FK to commerce_markets, indexed with org_id). Retail orders, service jobs, rental and procurement records have ...
The Antivirus UI — protection seals everywhere a file appears, the Antivirus Center, the platform tab, alerts and help
Design kit (app/components/antivirus): ProtectionSeal with five animated faces (Checking, Protected, Caution, Blocked, Couldn't Check; brand + --av-* tokens, re...
Svc_antivirus login + ANTIVIRUS stream; conversion/email may consume antivirus.>
- svc_antivirus: STREAM.INFO/CREATE ANTIVIRUS, publish antivirus.> and rt.org.>, subscribe antivirus.> and _INBOX.> (Secret kamo/nats-user-antivirus, SECRETS....
Shared-library half of Antivirus — gate, client, tables, rights, kinds, templates, report
- Entities/repos for the six hand-applied tables (content_scan_verdicts, antivirus_detections, antivirus_false_alarm_reports, antivirus_allowlist, antivirus_o...
Safety & Oversight and Brains & Tools, premium — live cards, Spend Pace, Approval Rules, Connected Tools rooms with test before saving (SIS9)
Safety & Oversight - Spending: the default budgets on the kit save bar, explained with the job description's budgets and each role's daily caps (live values, ...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
