Reference library
Explore all capabilities
Browse the framework by capability and follow each subject into its explanation and engineering details.
Capability catalogue · subject areas · implementation examplesThe application
Authentication
Every way a person proves who they are, and what happens to the session afterwards.
- Adapt sign-in to each customer’s requirements
Define authentication requirements for the organization types your application serves. Wildo combines those application-authored requirements with the person’s account policy when they sign in.
- Ask for fresh proof before a sensitive action
A person can stay signed in for everyday work and still prove their identity again before a high-impact action. Wildo connects the operation’s requirement to a fresh authentication challenge and resumes the action after verification.
- Confirm access with a phone code
Offer a short-lived code sent to a verified phone when that method fits the account policy. Wildo connects phone verification, delivery limits and code checking to the normal authentication flow.
- Connect enterprise sign-in through SAML
Support a customer’s SAML identity provider without rebuilding the sign-in and account-linking flow. Wildo validates the returned assertion and connects it to the intended organization’s account policy.
- End access across a person’s sessions
Withdraw a person’s existing tokens across devices when they sign out everywhere or a credential needs to be replaced. Wildo checks the revocation state during token use and refresh, rather than waiting only for normal expiry.
- Give a link a purpose and a lifetime
Use a token for a specific interaction: accepting an invitation, resetting a password, carrying a redirect or granting bounded access. Wildo records its purpose, expiry and allowed use, then checks those conditions when it is redeemed.
- Give people control over their own account
People can read their own account and choose to deactivate it through a dedicated self-service surface. Wildo keeps these actions separate from the administrative operations that manage other users.
- Keep open tabs in step when you sign out
Signing out should not leave another tab looking active. Wildo tells the application’s other same-origin tabs to clear their authentication state, API credentials and live connection.
- Keep sessions usable while credentials rotate
Keep people signed in without treating a long-lived token as permanent authority. Wildo refreshes access through rotating credentials and checks the account’s current state before continuing the session.
- Let people use an existing sign-in identity
Offer an external provider as a way into the application. Wildo handles the redirect, callback and identity linking, while the application keeps its own account and membership model.
- Manage account access through deliberate actions
Give administrators named actions for changing roles, suspending access and restoring accounts. Wildo carries those actions through their permissions, account transitions and audit behavior.
- Open a bounded session for assisted access
An authorized administrator can create a time-limited link for a specific person’s account, for support or a supervised walkthrough. Wildo checks the target’s eligibility and bounds the resulting access.
- Recover access through your inbox
Let people replace a forgotten password using an expiring email link. Wildo checks the replacement against the account’s policy and withdraws earlier tokens when the change completes.
- Require a password reset without seeing the new password
An administrator can initiate a password reset for another account, withdraw its existing sessions and send the replacement link to the account owner.
- Require another proof when it matters
Add a second proof to sign-in for the accounts that need it. Wildo connects the policy, enrollment, challenge and recovery-code flow, so people are offered methods the application will actually accept.
- Set sign-in rules for each kind of account
Members and administrators do different work and carry different responsibility. Give each kind of account its own password requirements, failed-attempt policy and enabled sign-in methods.
- Sign in from an email link
Give people a passwordless route through their inbox. Wildo sends an expiring link, verifies it and continues the account’s normal authentication requirements.
- Sign in with a device you already trust
Let people use a passkey instead of remembering a password. Wildo handles the challenge, credential enrollment and sign-in verification, and keeps passkeys attached to the person’s existing account.
- Use your customer’s identity provider for sign-in
Connect an organization’s identity provider through OpenID Connect. Members use the customer’s sign-in process, while Wildo connects the verified identity to the application’s account and membership rules.
Authorization and isolation
Who may do what, and why one tenant can never reach another tenant's rows.
- Give each role the right responsibilities
Roles describe what a person or service may do. Wildo lets your application extend the built-in roles and inherit their responsibilities, so you can express your own team structure without rebuilding ordinary access checks.
- Keep a working administrator in place
An administrative change should not leave the application with nobody able to manage it. Wildo refuses changes that would remove the last usable super-administrator and explains the recovery step.
- Keep each customer’s records in their account
Organization-owned records are confined through the framework’s resource and repository paths. Application code can work with the current organization’s data without rebuilding a tenant filter in every endpoint.
- Keep role grants within the caller’s authority
People can delegate responsibilities they hold without being able to create a more powerful account or integration. Wildo checks requested roles when members and machine credentials receive their authority.
- Let customers configure their own connections
Each customer can have its own supported identity, provisioning and audit connections. Wildo places those settings in organization-owned resources so one account’s configuration does not become the application-wide default.
- Link records to eligible people and partners
A referenced person or organization can exist without being eligible for this record. Wildo can require the declared membership or partnership before accepting the link.
- Make support access requested and temporary
Support access can be tied to one customer account, a written reason and an expiry instead of being a standing privilege. Wildo requires a usable grant for declared platform crossings and lets the customer require approval.
- Put information in the scope it belongs to
Some information belongs to the application, some to a customer organization, some to one person and some to a visitor who has not registered. Wildo makes that ownership an explicit part of the resource definition.
- Refuse access without exposing private records
A refusal should not reveal whether another customer’s record exists. Wildo separates the decision visible to the caller from the detail needed to investigate the refusal.
- Show people the accounts they belong to
Account lists need their own boundary: an organization record is the account itself, rather than a record carrying a parent account ID. Wildo confines those collections to the caller’s organization-wide memberships.
- Stop requests from choosing another customer’s account
An authorized write must remain in the account it was authorized for. Wildo reconciles the caller’s identity, addressed scope and server-managed ownership fields so request data cannot quietly move the operation into another tenant.
Accounts and invitations
How a person comes to have an account and joins an organisation.
- Invite people into the right workspace
Bring someone into an organization with a defined membership and role. Wildo connects the invitation, account and acceptance flow, whether the person is new or already uses the application.
- Keep accounts in step with the company directory
Let a customer’s directory provision people into its organization and manage their membership there. Wildo connects those changes to local accounts and configured organization-unit assignments.
- Keep sign-in identities attached to one account
A person can use an external identity without becoming a different application user each time. Wildo records the link between the provider’s identity and the local account.
- Keep work started before signup
Let visitors begin useful work before they create an account. When they register, Wildo can move the eligible records to their authenticated identity instead of making them start again.
- Welcome new users with a verified address
Choose who may create an account, which signup methods they can use and when email ownership must be proved. Wildo carries that policy through account creation and the next step into the application.
Machine and agent access
Credentials for things that are not people: services, scripts and agents.
- Give connected tools a standard authorization flow
Connected tools need a way to discover the application, request authorization and exchange credentials for tokens. Wildo provides those related endpoints as one authorization-server surface.
- Give integrations their own access keys
A service can use its own scoped, revocable access key instead of a person’s password. Wildo ties the credential to its roles and organization or application, with lifecycle actions for rotation and withdrawal.
- Let agents act with a person’s permission
A person can authorize a connected tool to act through a particular agent endpoint without sharing a full application session. Wildo binds the token to that destination and retains both the person’s identity and the requesting client’s attribution.
- Let compatible tools register themselves
A tool without a pre-created client ID can register before starting a user-approved connection. Wildo offers this as an application choice, with limits on what an unauthenticated registration can obtain.
- Let services act under their own identity
Automated work can belong to a service rather than impersonating a person. Wildo gives registered clients their own scoped roles and tokens, so the application can authorize and attribute machine actions explicitly.
- Let someone supply a file without sharing your session
A short-lived, single-use grant authorizes one upload to a specific resource field through the existing upload route.
- Recognize tools through their published identity
A tool can identify itself through an HTTPS metadata document instead of requiring a manually created client record. Wildo checks that published identity and applies the application’s trust policy before using it.
- Remember approvals without making them permanent
A person can choose to remember an approval so a familiar tool does not ask the same question every time. Wildo remembers the client, target and approved identity scopes together, with an expiry.
- Show people what they are authorizing
People can see which application is asking, which destination it will return to and what identity information it requests before they approve. Wildo connects that decision to the pending authorization request.
Organisations and members
The tenant, the people in it, the units below it, and what each one controls.
- Assign responsibility within a team
Give a member a role in one part of the organisation without granting it everywhere.
- Give each organisation its own identity
Keep company information and branding together, ready for the application surfaces that present the customer.
- Give every customer a workspace
Keep each customer’s people, settings and business records together in an organisation.
- Give people the right place in each workspace
Manage a person’s roles and access state separately for every organisation they join.
- Keep team access with the team’s records
Use unit roles to grant access to the relevant records while preserving authorised organisation-wide access.
- Keep the current project close at hand
Let people choose the record they are working within from the application shell.
- Let each workspace set its defaults
Set language and regional conventions for an organisation while respecting the choices members are allowed to make.
- Move between customer workspaces smoothly
Switch organisation from the user menu, reset navigation and update the live connection without reloading the page.
- Organise work into teams and departments
Represent a customer’s internal structure without creating a separate tenant for every team.
- Send workspace emails to the right people
Route organisational email categories to shared addresses and choose which categories are enabled.
- Shape how customer workspaces are created
Define kinds of organisation and connect their creation to the right registration or administration flow.
Tenant lifecycle
Suspending, tearing down, restoring and purging an organisation.
- Finish offboarding on a clear schedule
Purge organisations after their recorded recovery deadline through the normal resource deletion lifecycle.
- Keep a usable owner in the workspace
Refuse membership changes that would leave an organisation without anyone able to administer it.
- Leave time to undo workspace deletion
Close access first, retain the organisation for recovery, then let the configured purge finish the lifecycle.
- Pause a workspace without deleting it
Stop an organisation’s authority while keeping its records available for recovery.
- Require a fresh check before permanent removal
Put an explicit identity check in front of the administrator action that bypasses the recovery period.
- Restore ownership when a workspace is stranded
Give an existing usable member ownership through a narrowly scoped platform recovery action.
- Tell people when their workspace changes
Attach email notifications to the organisation actions that affect access and recovery.
Billing and subscriptions
What the product sells, and the customer accounts, subscriptions and invoices behind it.
- Build billing screens from one customer view
Read the customer’s account, subscription, catalogue, invoices, usage and credits together. The shared billing context keeps standard components and custom screens working from the same scoped state.
- Define what your application sells
Describe plans, add-ons and one-time products alongside the features and limits they grant. Wildo turns those definitions into its billing catalogue, so the offer and the application behavior have a shared starting point.
- Follow the customer’s subscription
Keep the selected plan, add-ons, trial dates and cancellation state together. Wildo connects customer actions with the provider and updates local subscription records as provider events arrive.
- Give each customer a billing home
A billing account connects an organization or person to its provider customer and financial activity. Subscriptions, invoices, usage and credits can then refer to the same customer without mixing personal and workspace purchases.
- Keep billing logic separate from the vendor
Application billing speaks one shared contract for customers, purchases and subscription changes. A provider adapter translates that contract into the vendor’s API, keeping vendor-specific request shapes out of everyday application code.
- Keep each customer’s billing separate
Workspace and personal billing use distinct scoped accounts and records. Wildo checks the account behind a request and resolves provider events back to that account, so a purchase stays with the customer it belongs to.
- Keep financial history connected after closure
Closing a customer account should not scatter its financial history. Wildo retains the billing records and their account relationships, so invoices, subscriptions and usage remain attributable after the owning workspace is removed.
- Keep invoice history close to the customer
Bring provider invoice status and totals into the application’s billing history. Wildo stores a scoped reference to each invoice while the billing provider remains responsible for the document itself.
- Let customers manage their payment details
Open the billing provider’s customer portal from the application. Customers can use the provider’s configured tools for payment methods and billing documents without your application handling card details.
- Let payment events update the application
Bring provider payment activity back into customer billing state. Wildo verifies incoming events, identifies the billing account and updates the corresponding subscription, invoice or completed purchase.
- Make tax treatment explicit
Choose whether hosted checkout asks the provider to calculate tax, and declare whether each price includes tax. Wildo passes those choices to the billing provider instead of calculating tax locally.
- One-off purchases use the billing provider
One-time items and credit packs use the same billing provider and hosted checkout as subscriptions. Selecting a separate payment vendor independently of subscription billing is not an available configuration.
- Price the way your product is sold
Attach recurring or one-time prices to a product, with their currency and pricing model. The product defines the offer; its prices define how the customer pays for it.
- Remove billing identity without breaking retained invoices
Coordinate provider subscription cancellation, customer scrubbing and payment-method detachment while preserving invoice continuity.
- State how subscriptions should change
Put trial, cancellation and price-adjustment decisions next to the product they govern. Wildo applies the supported settings when opening checkout or changing a subscription, while provider-managed collection settings remain with the provider.
- Take payment through hosted checkout
Let customers choose an offer in your application and complete payment with the billing provider. Wildo checks the selected product and price, creates the provider session and connects completion to the right billing account.
- Turn billing on deliberately
Choose whether your application sells subscriptions or purchases, which provider handles them and whether the customer is an organization or an individual. Billing activation connects those decisions to the application’s billing resources and services.
- Use Stripe for the payment work
Wildo’s Stripe adapter connects application billing to provider customers, prices, checkout, subscriptions and invoices. Your application keeps its product definitions while Stripe handles the hosted payment experience.
Plans, entitlements and usage
Turning a paid plan into features and limits, and metering what is consumed.
- Apply an offer at purchase
Connect discount rules, provider coupons and completed checkout redemptions.
- Describe what a plan makes possible
Separate product packaging from the features and allowances your application checks.
- Explain what is available to each customer
Use feature availability to show an appropriate next action, hide an unavailable surface or guide the person to an administrator.
- Keep a balance for prepaid work
Add purchased credits to a scoped balance and consume them through trusted backend operations.
- Keep customer agreements separate from the plan
Give a customer specific feature or allowance overrides without changing the catalogue.
- Let customers configure their own connections
Each customer can have its own supported identity, provisioning and audit connections. Wildo places those settings in organization-owned resources so one account’s configuration does not become the application-wide default.
- Make access decisions inspectable
Keep grants, allowances and manual exceptions in explicit records for each owner.
- Offer enterprise controls independently
Make customer eligibility, administrator access and integration setup separate decisions.
- Package built-in capabilities with your product
Use the framework’s named feature definitions alongside your own commercial offering.
- Place access at the right level
Combine application, customer and individual feature settings without confusing their ownership.
- Put plans, usage and invoices together
Give customers a billing home composed from shared subscription, plan, usage and invoice widgets.
- Record the agreement behind a referral
Keep both accounts, conversion state and promised rewards in one referral record.
- Turn completed work into billable usage
Record operation quantities locally, then report them to the billing provider.
Transactional email: templates, delivery, and the vendor behind it.
- Address people by their profile
Personalized messages can use the recipient’s name, email and language without repeating profile lookups in every template. Wildo assembles that context separately for each recipient.
- Carry your visual identity into email
Email templates receive shared colors, typography and spacing values. Components can use those values to keep account messages visually related to the product.
- Choose who sends your email
Keep application messages independent of the company that delivers them. Choose an email provider through configuration while preserving the same templates and notification declarations.
- Draft, translate and preview your emails
The development companion provides tools for generating template files, translating labels and previewing rendered messages. Work stays in the application’s source files, where it can be reviewed with the rest of the product.
- Inspect email without sending it
Use the normal application email flow during development without contacting a recipient. The preview provider renders the message and makes its subject, recipients and content available in local logs.
- Keep email layouts consistent
Reuse headers, buttons, body text and footers across email templates. A shared layout gives messages a recognizable structure while each template keeps its own purpose and content.
- Keep retries tied to the same message
A logical email submission has an identity that can be reused when delivery is retried. Supported providers can recognize that identity, reducing accidental duplicate submissions after an uncertain response.
- Keep the intent behind every email
An email specification explains its purpose, tone, required information and the role of each text slot. People and coding assistants can change the wording while preserving what the message must accomplish.
- Make every email part of your product
Write email layouts and behavior in React alongside the application. Templates receive typed labels, brand values and message context, so account and business emails can share the same design without duplicating their content.
- Move larger sends off the request
When an operation notifies a larger group, Wildo queues the per-recipient emails instead of sending them all on the request path. Each message keeps its own language, context and submission result.
- Send each person the right language
Keep one email layout with separate language files. Wildo resolves recipient language and available labels, then falls back through configured alternatives when an exact locale is unavailable.
- Send the messages customers rely on
Account links, receipts and business notifications use a shared sending path. Wildo renders the message, hands it to your configured email provider and records whether that provider confirmed acceptance.
- Separate promotional email routing
Promotional messages can select a different provider capability from account and business email. The distinction is made on the template, keeping delivery routing explicit.
- Start with the standard account messages
Wildo names recurring account and security messages and provides their template contracts. Your application can customize their wording and appearance without inventing a separate identity for every message.
- Use an existing email integration
Wildo supplies adapters for established email providers, so selecting one does not require rebuilding message formatting, authentication and response handling.
Notifications
Reaching a person inside the product, and deciding who hears about what.
- Connect messages to business actions
Declare who should hear about an action and how they should hear it alongside the action itself. Wildo resolves recipients and dispatches the configured notification after the operation.
- Keep action links tied to committed work
When an operation issues an acceptance or recovery link, Wildo can create its token in the same transaction as the record change. The email then uses that token to point at the declared action.
- Keep open views aware of changes
When records change, Wildo can notify connected views so they refresh the affected information. Shared live-update handling connects backend operations with lists and record screens.
- Make attention deliberate
Choose whether a badge shows a number, a simple dot or nothing. Its attention behavior can be quiet, briefly react to an increase or remain active while work is waiting.
- Reach people before they have an account
Send an operation email to an address stored on the record, even when its recipient has no existing user session or profile. This supports invitations and other messages whose destination is known before registration.
- Respect how people want to hear from you
People can choose their notification channels. Wildo applies those preferences to personal notifications while keeping role-addressed responsibilities and explicitly required notices distinct.
- Send a message only when it fits
Use the request, the resulting record and the operation context to decide whether a message belongs. One action can notify in one situation and stay quiet in another.
- Send workspace emails to the right people
Route organisational email categories to shared addresses and choose which categories are enabled.
- Show how much work is waiting
Derive a navigation badge from the records it represents. Wildo counts the matching data for the person or organization and refreshes the count when the source changes.
- Tell people when their workspace changes
Attach email notifications to the organisation actions that affect access and recovery.
- Tell people while they are working
Send an operation message to connected users without waiting for a page reload. Wildo carries the message through the live connection and into the application’s notification presentation.
- Track events until they are acknowledged
Use a stored badge count for information that the counter itself owns, such as arrivals waiting to be acknowledged. Operations can increase, decrease or reset it.
Files and storage
Uploading a file against a record, where the bytes live, and serving them back safely.
- Choose where each field keeps its files
A field declares an ordered set of allowed storage destinations; new uploads use the first configured match.
- Erase personal attachments and their identifying metadata
Carry field erasure into attached files and scrub the file record’s own identifying values.
- Give each service temporary storage access
Application and platform service identities obtain renewable, prefix-confined storage sessions through their respective credential channels.
- Give file selection a shared application default
A frontend provider supplies reusable picker defaults while individual fields keep their own requirements.
- Give stored files a place that reflects their owner
Managed and local storage compose the normal file path from application, resource and owner scope before adding the field’s chosen name.
- Keep a document connected to its owner’s Drive
Google Drive can supply an existing file reference or receive an upload through the connected user’s delegated access.
- Keep a durable record of every stored file
An internal file record tracks storage, ownership and lifecycle separately from the bytes and the parent record’s small file reference.
- Keep a file unavailable until its scan finishes
Required scans block downloads and new attachments until a clean result. Standard forms wait while the file is being checked.
- Keep attachments with the part they describe
File handling follows supported nested objects and repeated items, so attachments can stay inside the record structure that gives them meaning.
- Keep files on a controlled local volume
The local provider uses the same file lifecycle while storing bytes under a configured directory.
- Keep large inputs out of queue messages
Large queued inputs can be stored in an internal payload resource and referenced by ID, with compression and a finite retention period.
- Keep uploaded content outside the application’s trust
Shared file-serving code sets browser protections and forces active HTML, XHTML and SVG content to download.
- Keep uploaded files in managed object storage
The managed provider stores bytes separately from records and obtains application-confined session credentials for storage access.
- Let background work produce durable files
Services and scheduled batches can write artifacts through the same configured storage providers without a browser upload.
- Let people frame an image before sending it
An image field’s aspect ratio can activate cropping and resizing inside the standard upload control.
- Let someone supply a file without sharing your session
A short-lived, single-use grant authorizes one upload to a specific resource field through the existing upload route.
- Make attachment access follow the record
The resource’s file route checks read permission, the file’s exact record-and-field binding, and its own scope before serving bytes.
- Make attachments part of the record
A file field connects upload, record attachment and authorized access through the resource that owns it.
- Remember which person or service supplied a file
File metadata records an optional uploader ID and principal type derived from the authenticated execution context.
- Retire files when their job is finished
Record changes mark files for the chosen lifecycle, and a cleanup batch removes abandoned uploads and expired deleted files.
- Share a file for a limited time
Fields can allow a file-specific bearer token with an expiry and a bounded number of completed uses.
- Show a lighter preview of the same image
Eligible images can be resized when served, keeping one stored original and the same authorized file access path.
- Tell every upload what the field accepts
Keep a field’s file types, size and media requirements beside its definition, where browser and backend can read them.
Generated documents
Documents the application produces, and reading the text inside the ones it receives.
- Create documents from your business data
Design a PDF template around a resource and let creation attach the rendered document to the record.
- Let your assistant find answers in selected documents
Choose which file fields contribute to retrieval, how their text is split, and how access to the source records governs results.
- Make each document’s purpose part of the model
Describe a generated document’s output, lifecycle and available data in a specification checked against its resource declaration.
- Read the text already inside your documents
Extract text locally from supported PDFs, text files and modern Office documents, ready for processing and retrieval.
- Refresh a document when the work is ready
Regenerate an attached PDF from the current record through a dedicated action, keeping ordinary edits separate from document publication.
- Turn scanned pages into usable text
Connect a document-recognition provider for file fields that need to read scans, with explicit processing choices and local fallback.
Audit trail
Recording who did what, and getting that record out to a security team intact.
- Check evidence against an independent ledger
An optional verified ledger adds an integrity check beside the application’s audit store. Wildo can send events to immudb, retain a verification anchor and reconcile missed writes using the same event identities.
- Follow one action across its evidence
Wildo carries available request correlation into audit events, logs and errors. Investigators can follow the effects of one action without reconstructing the sequence from timestamps alone.
- Give every security event a consistent meaning
Wildo classifies security events with a shared category and severity. A sign-in, a permission change and an access refusal retain their different meanings as they move from the application’s trail into a customer’s security tooling.
- Keep a history of the security decisions that matter
Wildo turns sign-in activity, access decisions, administrative changes and recorded disclosures into structured evidence. Each event can be searched and connected to the actor, subject and request that explain it.
- Keep a separate copy of your audit history
Wildo can copy older audit records into dated JSON artifacts in object storage. Your operational trail remains available, while a separate archive supports longer-term review and controlled handover.
- Keep customer evidence in the right scope
An event’s subject and its delivery destination are different facts. Wildo keeps customer viewing and security-event delivery tied to the appropriate scope, so a customer identifier inside event data cannot choose where that event is sent.
- Keep the evidence after an account is removed
Account deletion should not erase the explanation of what happened. Wildo records completed user and organization deletion using the pre-deletion subject details, and keeps audit records outside the organization’s deletion cascade.
- Know who acted, even when no person was there
Wildo distinguishes a person, a machine, the application itself and an action whose actor could not be resolved. Automated work stays recognizable in the same trail as human activity.
- Let customers inspect and export their own history
Customers can read, filter and export their audit records through the application’s resource interface. The same declared contract supplies the standard screens, access rules and API reference.
- Let important changes leave their own evidence
High-impact resource changes produce an audit event through the shared operation path. Wildo records the action, its subject and the fields changed, so evidence follows the operation instead of depending on a separate logging call in every handler.
- Record a secret being shown, without recording the secret
When the standard resource response reveals a marked one-time credential, Wildo records the disclosure: who received it, which field was shown and which record it belonged to. The evidence contains the fact of disclosure, not a second copy of the credential.
- Record when deployed sign-in rules change
Authentication rules authored in configuration deserve the same visibility as settings changed through a screen. Wildo records the baseline and changes to the deployed authentication posture, including affected user types and before-and-after values. Changes to the application audit-reading policy are recorded too.
- Recover security deliveries after an outage
Customer security collectors can become unavailable without stopping the application. Wildo queues delivery, retries failures and retains exhausted deliveries for an administrator to inspect and replay.
- See repeated attempts as well as successful actions
An access refusal can be valuable security evidence. Wildo records authorization denials with the attempted operation, required authority and classified reason, while grouping repeated attempts into an escalating series.
- Send events to each customer’s security tools
Each customer can configure a destination and choose the security events their team needs. Wildo applies that organization’s delivery settings around a shared event contract, so customers can use their own monitoring and review workflows.
- Use the format your security team already receives
Wildo projects the same security event into structured JSON, CEF, LEEF or OCSF. Customers select the format their collector accepts while retaining a common source for the event’s meaning.
Privacy and subject rights
Answering a data subject: export, erasure, and what must survive it.
- Answer a person’s data request across your application
Assemble a purpose-specific data bundle from declared resources, with a report explaining its contents and exclusions.
- Carry erasure into connected services
Run registered external erasure effects after local changes and return an actionable outcome for each service.
- End the erased person’s active sessions
Connect erasure to the right sign-in principal instead of guessing from a foreign key.
- Erase personal attachments and their identifying metadata
Carry field erasure into attached files and scrub the file record’s own identifying values.
- Explain where each exported value came from
Distinguish information supplied by a person, observed through use and derived by the application when assembling portable data.
- Give temporary records a clear expiry
Declare an expiry instant or age window and connect it to scheduled record removal.
- Keep people’s processing choices explicit
Record consent as a set of independently granted purposes, ask for it instead of assuming it, and keep optional processing off until it is given.
- Keep retained records out of everyday work
Apply the same retention boundary to ordinary reads, updates, counts and aggregate results.
- Know what personal information your application holds
Declare the kind of personal data at the field so the application inventory can describe its contents precisely.
- Let people decide what an outside tool may access
Present the requesting client and requested access before completing user-authorized delegation.
- Remove billing identity without breaking retained invoices
Coordinate provider subscription cancellation, customer scrubbing and payment-method detachment while preserving invoice continuity.
- Remove personal details while preserving required records
Coordinate deletion and declared field scrubbing while keeping retained records hidden and frozen.
- Review retained information with a reason and a record
Provide a privileged, scoped read of retained records whose disclosure must itself be recorded.
Assurance controls
Connecting control objectives, implementation and evidence for a reviewable assurance programme.
- Explain who else receives the data
Record the processors involved in an application’s delivery, including legal identities, processing regions and disclosed subprocessors.
- Follow a control to the code that supports it
Stable control references connect assurance objectives to their implementation, making technical review and change impact easier to follow.
- Give each assurance commitment a clear meaning
A shared objective catalogue connects application commitments to the capabilities, implementation and evidence they depend on.
- Keep a file unavailable until its scan finishes
Required scans block downloads and new attachments until a clean result. Standard forms wait while the file is being checked.
- Know where to look for proof
Evidence requirements identify the artifact and execution context that can support a control, so reviewers know what to inspect.
- Make the places you serve explicit
Declare where an application operates and why, then compare that reach with the sources available to its assurance and document workflows.
- Relate controls to external requirements
External mappings connect Wildo objectives to cited sources while keeping runtime behavior independent of changing assessment terminology.
- State who operates the service
Keep the operator’s identity, processing roles and declared purposes in configuration so documents can use a consistent account of the business.
Governed documents
Documents an operator must be able to stand behind, and how they are produced.
- Bring the framework’s knowledge into the application
Generate a portable knowledge package containing source-derived references, authoring guidance, playbooks and the assurance basis used by application tooling.
- Build assurance into the work of creating the application
The creation workflow separates research, evidence evaluation, product facts and document drafting, keeping each step accountable to the information it needs.
- Keep the statement connected to its source
Separate reusable document facts from the prose that cites them, so a statement can be reviewed against what the application has actually declared.
- Prepare the right document for each audience
Declare exact language and jurisdiction combinations so public-document preparation follows deliberate audience choices.
- Read the privacy facts from the application
Introspection reads resource declarations directly, giving document workflows a concrete account of data categories, erasure treatment and declared rights mechanisms.
- Write documents that describe the product
Compose structured notices and terms from declared facts, required concerns and explicit source references, ready for meaningful review.
AI models and retrieval
Choosing model vendors, and grounding answers in the application's own data.
- Choose a model for the work
Describe the kind of work an agent performs and resolve a suitable model within its chosen provider.
- Choose the providers your AI can use
Declare available language-model providers once, then give each agent a provider and a clear job.
- Find answers in your application’s knowledge
Retrieve attributable passages from selected resource fields and documents using the caller’s access context.
- Generate images through your application
Give image generation its own provider configuration and return image assets through the agent runtime.
- Keep searchable knowledge up to date
Maintain derived passages and embeddings as records, ownership and retrieval declarations change.
- Read the text already inside your documents
Extract text locally from supported PDFs, text files and modern Office documents, ready for processing and retrieval.
- Run a coding agent in a workspace
Dispatch a coding task with an explicit provider, execution profile and workspace policy.
- Search by meaning as well as words
Choose an embeddings provider independently of the provider that generates an answer.
- See where audio and video fit
Audio and video are reserved extension points, separate from executable text, image and coding operations.
In-app assistant
The conversational agent inside the product, and what it is allowed to do.
- Bring the assistant into your interface
Start with a conversation screen, then compose richer assistant surfaces from shared components.
- Describe a flow as connected steps
A separate graph model describes triggers and steps; conversational assistants run through actor systems.
- Keep a conversation going
Stream answers as they arrive and retain the conversation in the application.
- Let people decide before a change
Pause a selected write, review its proposed arguments, and continue after a person approves or refuses it.
- Let the assistant work with real records
Give the assistant selected resource operations, executed with the caller’s identity and the operation’s own rules.
Agent protocols
Letting an outside agent in over a published protocol, and keeping its work bounded.
- Check agent access where misuse actually happens
Agent integrations need more than a successful demonstration. Wildo’s test scenarios exercise tool and conversation entry points with wrong audiences, foreign records and unauthorized requests, alongside permitted controls.
- Control how much outside agents can consume
Outside agents can generate bursts of requests and sustained model usage. Wildo treats them separately: an owner-based throttle controls request bursts, while an optional tenant budget checks accumulated A2A token consumption.
- Follow agent work after the connection drops
An integration can reconnect to a task’s updates or register a callback for progress. The work remains addressable by its task identity, so the connection does not have to stay open for the whole process.
- Give each integration a focused set of tools
One application can offer separate tool collections and agent identities for different jobs. Each has its own address and token audience, so integrations can discover a focused surface and keep their credentials tied to it.
- Keep assistants connected across protocol revisions
Assistants do not all update together. Wildo’s MCP endpoint selects transport behavior for the revision used by each request, allowing supported clients to share the same application endpoint.
- Keep unusable tools out of an assistant’s choices
An assistant should discover actions it can meaningfully attempt. Wildo filters exposed operations through the resource, route, implementation and server-membership rules before advertising a tool.
- Let assistants attach files without carrying the bytes
An assistant can request a short-lived upload link for a file field, then attach the uploaded file to a record. The document’s bytes travel through the upload path rather than through tool-call arguments.
- Let other agents work through a conversation
An outside agent can ask your application for help through a persistent conversation. Wildo routes the request to an exposed actor system and carries the caller’s identity into its work.
- Make application actions available to assistants
Outside assistants can discover and call selected application actions as tools. Wildo derives their input contracts from resource operations, keeping the integration connected to the same business definitions.
- See what model calls consumed
Model calls can leave a consistent trace of usage, timing and outcome. Wildo supplies a structured-log destination and can forward traces to a selected observability provider.
- Stop work and recognize abandoned tasks
Integrations can request cancellation of a running agent task, even when another server replica is executing it. Wildo also tracks task liveness so interrupted work can be recognized rather than appearing to run forever.
- Support different agent clients through one interface
Agent clients can use different wire vocabularies while reaching the same application behavior. Wildo translates supported A2A method names and response shapes at the transport boundary.
Documentation portal
The docs site an application gets, and the API reference generated from its own routes.
- Continue into documentation with a short-lived session
A configured documentation site can receive a sign-in handoff from the application. It holds a short-lived session for participating documentation interactions while the application remains the owner of authentication.
- Give customers a place to understand the product
A documentation portal brings product guidance and an exact API reference together. Wildo derives the managed material from framework-authored guides and application declarations; your application owns the portal’s identity and published contract.
- Help your agent write useful product guidance
The authoring guide asks the coding agent to start with the reader’s task and verify the product facts behind every instruction. It turns source knowledge into guidance for customers and administrators rather than a tour of framework internals.
- Keep guidance connected to its evidence
Guide claims can point to admitted sources and projected application facts. Publication checks that those references are meaningful for the application before turning them into public material.
- Keep the API reference tied to real operations
The API contract is derived from the application’s resolved resource operations and authored specifications. That connects endpoint descriptions and request shapes to the mechanisms integrations actually call.
- Link an explanation to the exact API contract
A guide can point to a resource, operation, request or response without hard-coding a generated URL. Publication resolves the semantic target against the reference the application actually emits.
- Organize the reference around the product
Group API resources by the work they support, with names and descriptions readers can recognize. The engine supplies groups for its own resources; the application names the concepts only it understands.
- Publish guides as a navigable documentation site
Turn the accepted documentation bundle into pages, navigation and search data that belong together. Managed output checks catch missing destinations and malformed artifacts before the portal consumes them.
- Separate everyday integration from application administration
The reference distinguishes ordinary application operations from operations reserved exclusively for administrators of the application itself. Readers can focus on the contract relevant to their work.
- Show the product beside the instruction
A real screenshot can make a guide’s instructions easier to recognize. The documentation asset contract distinguishes captured product imagery from a provisional placeholder, so an unfinished capture is not mistaken for proof of the interface.
- Start with guides for the behavior you inherit
Reusable guides explain common application behavior such as access, administration and integrations. Application facts adapt those guides so the reader sees the product they are using, rather than an unrelated framework manual.
- Write for the reader’s next task
An orientation, a how-to and an API reference answer different questions. Documentation identifies its purpose and intended readers so administrators and integrating developers can find the depth they need.
Marketing site and brand
The public site an application gets, its visual identity, and being found.
- Adapt the story to the audience
A campaign or audience page can reuse the product’s shared story while changing the proof, language and call to action. Give that variation an explicit identity and a reason to exist.
- Catch contradictions in your published data
Check the structured information your pages emit against the catalogue that describes it. Findings identify the page and entity that need attention, so invisible metadata receives the same review as visible content.
- Choose how crawlers discover your pages
Keep your sitemap, crawler instructions and indexing policy tied to the site configuration. Public launches and preview environments can make different publication choices without maintaining separate hand-written policy files.
- Describe the product in machine-readable terms
Sections can publish structured descriptions of products, offers and other content alongside the visible page. A shared catalogue defines the supported entity contracts, while the application supplies its own factual values.
- Design your sections around your story
A page section can have its own markup and layout while declaring the words and structured information it needs. Wildo checks that contract without prescribing a stock landing-page design.
- Explore a logo, then accept the right direction
Use the brand brief to generate and review visual candidates before choosing an accepted identity. Separating exploration from acceptance keeps an unfinished experiment from becoming the product’s public mark.
- Give every page a consistent public identity
Page titles, descriptions, social previews and language links come from the page’s declared metadata and the site’s shared address. This keeps the public identity of a page connected to its content.
- Give every surface the same brand foundation
A shared brand declaration records the name, visual direction and accepted assets. Application screens, public sites and other participating surfaces can select suitable versions from that common identity.
- Give your coding agent a website authoring guide
Application-facing guides teach the coding agent how to add pages, sections, navigation and discovery metadata using Wildo’s actual website contracts. They give implementation work a consistent starting point while leaving the product story and design to you.
- Give your product its own public website
A public website introduces the product before someone enters the application. Wildo provides the page, language and configuration contracts; you author the story, sections and visual experience.
- Offer a concise, readable guide to your site
Publish a plain-text introduction and useful links at `llms.txt` for tools that choose to read it. You control the description; Wildo supplies the serving policy.
- Prepare the right asset for each use
A logo needs more than one file: small icons, header compositions and sharing images have different constraints. Derived assets keep their relationship to the accepted source while declaring where each version belongs.
- Put accepted brand assets where they are used
After a brand is accepted, distribute its files and references to the application’s participating front ends. This turns an approved asset set into the images each serving surface can actually load.
- Turn an enquiry into work your product can use
A website form can create a real application record rather than leave an enquiry in a disconnected mailbox. An anonymous visitor identity lets participating capture flows retain their connection when that visitor later creates an account.
Building it
Declaring a resource
One decorated schema per business object, its relationships, and the operations it offers.
- Act on the records people select
Apply a supported action to selected records while keeping the target separate from the values being changed.
- Decide what remains when a parent is removed
Declare how owned records are deleted or retained when their parent is removed.
- Give an action the right way to run
Expose work through the interface, a schedule or an internal call with an explicit contract for each entry point.
- Give business actions their own rules
Name actions such as assign, approve or ask, declare their contracts and permissions, and add application logic at the appropriate execution phase.
- Give each product area a clear home
Organize related resources, behavior and screens as a module the application can assemble.
- Give each variation the fields it needs
Share the common fields of a business object while defining what changes for each variation.
- Give every field one definition
Define field types, accepted values and shared metadata once; let API contracts, standard forms and storage consumers build on those definitions.
- Give every relationship a clear meaning
Describe ownership and references so connected records behave according to the relationship they actually have.
- Keep storage rules with the fields they protect
Declare identifiers, indexes and uniqueness alongside the values they govern.
- Keep the API reference connected to the application
Produce the API reference from registered operations and their request and response contracts.
- Keep the meaning beside the model
Explain what a resource and its fields mean in a specification connected to their declarations.
- Let a connection carry its own information
Model memberships, dependencies and other meaningful connections as records with their own fields.
- Let API addresses follow the business
Derive nested API routes from the relationships between records.
- Make your records ready to use
Choose the everyday actions a resource needs; Wildo supplies their shared execution machinery, with contracts and policies connected to the resource.
Storage and queries
Where rows live, what is refused at the door, and how a client reads and filters them.
- Bring external records into your application
Synchronize selected source fields into local resources while preserving the fields your application owns.
- Choose the database that fits your application
Keep the same resource model while PostgreSQL or MongoDB provides its storage through the shared repository layer.
- Decide which values may cross the client boundary
Declare server-only values, masked secrets and write restrictions beside the fields they protect.
- Define what remains when personal data is erased
Declare whether a resource is retained, how its personal values are treated and how retained rows leave ordinary use.
- Explore what the application is made of
Present application structure as read-only resources derived from the system that knows it, without maintaining a second catalogue.
- Give each new workspace a useful starting point
Declare initial and maintained records with a stable identity, a trigger and an explicit policy for later runs.
- Give every incoming value a clear contract
Use the resource’s field definitions to validate operation inputs and return errors that identify what needs correcting.
- Help people find the records they need
Define useful filters, text search, sorting and page sizes on a collection operation, alongside its access rules.
- Keep open views in step with the work
Send resource changes to connected views through authorized subscriptions, helping people see updates without repeatedly refreshing.
- Let people start before they sign in
Give a visitor private working records, then carry that work into an account according to the resource’s transfer policy.
- Show records from their original system
Read an external catalogue or business record through Wildo’s resource interface while its source system keeps ownership of the data.
- Take the records you are viewing with you
Offer CSV or JSON downloads from a declared list or search, using that operation’s filters, order and access scope.
- Tell people when a value is already in use
Check unique fields while a person fills in a form, using the same declared scope as the stored constraint.
Generated screens
The forms, lists and detail pages that build themselves from the data declaration.
- Bring related work onto one screen
Compose resource surfaces and charts into a workspace that shares their context.
- Explain what is available to each customer
Use feature availability to show an appropriate next action, hide an unavailable surface or guide the person to an administrator.
- Give fields a clear visual hierarchy
Arrange labels, help, errors and groups consistently without rebuilding every control.
- Give records a complete working interface
Compose standard browsing, reading, creation and editing surfaces around the operations your application exposes.
- Guide people toward useful first actions
Combine introductory content, contextual guidance and recorded milestones without treating them as the same thing.
- Help people correct the right field
Connect validation feedback to the field that needs attention, including errors returned by the server.
- Keep complex work in one workspace
Anchor a rich interaction to a record and open related operations without losing its local working context.
- Keep open screens in step with changes
Reconcile resource changes and reuse read results only while live subscriptions cover their scope.
- Make assistant activity understandable
Compose conversation, prompt and execution feedback surfaces around a configured assistant runtime.
- Make the screen your product needs
Replace one operation’s presentation or build an independent screen while choosing which framework behaviors to retain.
- Put plans, usage and invoices together
Give customers a billing home composed from shared subscription, plan, usage and invoice widgets.
- Save small edits as people work
Opt fields into automatic saving on existing records, with validation and visible save feedback.
- Show and edit each value appropriately
Give a field distinct reading and editing presentations while retaining its underlying value and constraints.
- Show how much work needs attention
Drive a navigation badge from a declared count of matching records instead of maintaining a separate counter by hand.
- Turn field definitions into working forms
Build create and edit forms from operation fields, then shape the layout without rewriting their validation and submission.
- Turn records into useful measures
Define a measure once, execute it against scoped records and present it as a chart or dashboard.
Components and theming
Replacing registered interface components without touching the framework, and the design system as data.
- Adapt the interaction to the space available
Use shared viewport and input signals to adapt layouts and navigation for different devices.
- Carry accessible behavior into everyday controls
Reuse shared focus, labelling and interaction behavior when composing application screens.
- Change the visual character without rebuilding screens
Apply a component theme across shared controls while preserving their application contracts.
- Explain when and how a component should be used
Keep component purpose, props, presets and examples in an inspectable specification.
- Give every interface word a shared home
Resolve user-visible labels from structured language bundles across resources and components.
- Give the whole interface a consistent visual language
Configure shared colors, spacing and surface tokens, with distinct values for light and dark appearances.
- Keep browser permissions aligned with deployment
Generate each browser surface’s content-security policy from its configuration and environment.
- Let containers explain how their content should behave
Share container behavior for layout, focus and content instead of leaving each child to guess.
- Prepare interface wording from its meaning
Generate and translate language files using the application’s declared resources, components and specifications.
- Replace the parts that make your product different
Replace a registered component while keeping the screens and contracts that use it.
- Start with working interface building blocks
Use supplied controls and layouts that share the application’s styling, labels and interaction contracts.
Navigation and layout
Declaring where content lands, and getting routes, addresses and the back button.
- Give the application a familiar frame
Configure the sidebar, command palette and shared controls; let modules contribute destinations without rebuilding the application frame.
- Keep links, history and context aligned
Resource routes and breadcrumbs follow declared operations and relationships, while navigation distinguishes a new destination from a change within the current screen.
- Keep the current workspace in view
A shared selector shows the record you are working inside and keeps that selection aligned with scope-aware routes and lists.
- Make frequent actions easy to reach
Shared keyboard registration, scoped dispatch and a help dialog keep shortcuts discoverable and tied to the active interface.
- Move between customer workspaces smoothly
Switch organisation from the user menu, reset navigation and update the live connection without reloading the page.
- Open work in the right place
Choose when an operation becomes a page, an adjacent pane or a dialog, with responsive rules shared across the application.
- Put account and workspace settings in one place
Arrange the supplied settings destinations into a clear home, with visible sections adapted to the current person and workspace.
Choose and configure providers
Connect application needs, provider choices and the runtimes that use them.
- Choose who answers, or send to every destination
Some integration needs should use one provider. Others, such as additional audit destinations, need every configured destination to receive the event. Wildo records that distinction in the capability itself.
- Configure from the providers your application knows
Configuration tooling discovers provider contributions and generates the catalogue used while authoring. The editor can offer provider references, capabilities and protocols from that catalogue instead of asking you to remember their names.
- Give each connection a clear contract
Email, model calls, incoming events and REST requests have different inputs and execution behavior. Wildo gives these connection types named contracts instead of treating every provider as an interchangeable URL.
- Keep server credentials out of browser integrations
A provider can contribute server behavior and browser behavior without putting them in the same module. The server side owns credential-aware execution; the browser side carries its public configuration and supported browser code.
- Keep vendor formats out of business code
The framework's email and SMS paths use common message contracts. Provider modules translate those messages into their vendor's request format and interpret the response back into a shared result.
- Separate what you need from who provides it
An application need, a provider's abilities and its connection method answer different questions. Wildo records each explicitly, so choosing an email service is distinct from enabling email or describing how that service receives a message.
- Use the right provider for each environment
The application can keep one provider declaration while an environment selects a different primary. Local email can use a non-delivering preview service while the application's default selects a sending provider.
Available integrations
Find the needed operation, configure its account and extend the catalogue with your own integration.
- Add your own integration through the same model
An application can supply a provider of its own instead of waiting for a vendor to join the engine. Its module declares what it offers and which runtime can use it.
- Choose server integrations for the work you need
Use provider modules for server-side services such as email, billing, models and business APIs. Each module describes its identity, capabilities, protocols and credential requirements.
- Connect browser services without exposing server secrets
Browser providers describe the public configuration and code a frontend service needs. Monitoring, analytics, sign-in and other integrations can be enabled for the product, website or documentation surface independently.
- Describe each sign-in provider once
Sign-in vendors differ in endpoints, requested scopes and identity fields. Provider contracts describe those differences so the authentication flow can use them without scattering vendor-specific branches through the application.
- Distinguish available integrations from reserved names
A name in a capability or protocol vocabulary is not always an executable integration. Reserved entries make that distinction explicit while the available modules describe what can actually be used.
- Give each integration the credentials it needs
Each provider describes the credentials it needs without putting their values in the module. Runtime configuration supplies the actual material to the processes that use it.
- Keep vendor facts beside the integration
A provider can describe its deployment options and processing regions. The application records which option it actually uses, so tooling can compare the configured choice with the provider’s declared facts.
- Make optional SDK requirements visible
A provider can name the extra library it loads when used. The backend checks these declared runtime packages and reports missing ones before the capability is first needed.
- Use vendor API definitions without another integration runtime
The vendor catalogue describes API operations as data: request methods, paths, inputs and authentication. Wildo’s executor uses those definitions to call the vendor.
Events and external data
Send customer events, receive provider callbacks and choose how external records enter the application.
- Bring Odoo data into your application
Bind a resource to the Odoo instance your deployment uses, with explicit model, identity and access configuration.
- Check an endpoint before relying on it
Send a signed diagnostic through the real delivery transport and distinguish remote refusal from a local send failure.
- Check destinations before sending requests
Shared target checks reject unsafe URL shapes and reserved addresses on the outbound paths that use them.
- Deliver verifiable events to customer endpoints
Send signed event payloads with stable delivery identities, retry handling and a customer-visible delivery record.
- Let business actions notify other systems
Declare which resource actions emit webhook notifications, then let the delivery system handle their subscribed destinations.
- Mobile push delivery is planned
The notification model reserves a mobile push channel; device delivery is not implemented.
- Receive provider events through their declared integration
Registered provider webhook contracts supply routes, verification and dispatch into the corresponding capability handler.
- Send transactional text messages
Use the configured SMS provider for transactional messages such as phone verification and sign-in codes.
- Use external records where your application needs them
Read records from their source or maintain a local copy, according to how the application needs to use them.
The product definition
The typed, cross-referenced artifacts that describe the business before any code exists.
- Connect each feature to the value it brings
Describe feature intent and relate it to the customer benefits it is meant to deliver.
- Decide what belongs together
Define business areas, resource ownership and tenancy before composing their implementation.
- Explain what customers pay for
Connect the revenue approach and each offer to its audience and intended scope.
- Give every destination a deliberate place
Record where an application destination belongs, or why it should remain unplaced.
- Give the product a recognizable identity
Record creative direction and connect it to the assets selected for the product.
- Ground obligations in the product and its context
Connect attributed research, product facts and evidence to the policy decisions the application needs.
- Keep product decisions in a shared model
Store different kinds of product decisions as structured, referenceable files in the application.
- Keep the reason for the product clear
Record the problem, desired improvement and constraints that should guide later product decisions.
- Keep the statement connected to its source
Separate reusable document facts from the prose that cites them, so a statement can be reviewed against what the application has actually declared.
- Know who benefits and why they would choose you
Connect customer needs, benefits, features and evidence in reusable product context.
- Turn decisions into work with clear outcomes
Give each task an intended product, work scope, prerequisites and a reason in the product definition.
- Turn goals into a clear delivery scope
State observable requirements and connect them to the increments intended to deliver them.
Playbooks and orchestration
How the system decides what can run next, and runs several things at once.
- Advance independent work together
Run compatible activities side by side within a managed round, while keeping overlapping output work separate.
- Choose the next step from the current project
Reassess available work after each round instead of following a sequence that no longer matches the application.
- Give each method the information it needs
Connect a method to relevant project facts and guidance without sending every available source to every run.
- Give recurring work a reusable method
Describe what a piece of work needs, how it should be done and what it should produce.
- Let complex work adapt as it progresses
Combine research, checks and production so that each next step responds to what the previous work established.
- See what can move forward and why
Make the next possible steps visible, with concrete reasons when their inputs are not ready.
Generation, review and acceptance
Producing an artifact, checking it, judging it, and accepting it as a commit.
- Ask for an artifact the application can use
Give structured generation the artifact’s contract, then normalize and validate its answer.
- Ask for the decisions only you can make
Give creation methods explicit product answers before they turn assumptions into proposed work.
- Catch broken relationships before writing the result
Check an artifact’s structure and supported relationships before generated content is landed.
- Choose where human acceptance belongs
Distinguish how freely work can run from who reviews and accepts its result.
- Compare alternatives through several expert lenses
Review competing proposals with explicit criteria, specialist perspectives and recorded revisions.
- Find gaps between product decisions
Compare connected specifications to reveal broken references and goals that have no planned delivery.
- Give reviewers your product’s standards
Turn product context into reviewable expert charters with explicit priorities and quality standards.
- Resolve a consequential question before generation
Pause a participating generation step for a product decision, then continue with the answer in context.
- Review changes where you already review code
Accept product definitions and implementation changes through ordinary Git review and commits.
- Review the quality, keep the reasoning
Evaluate produced work against declared criteria and retain actionable reasons beside each verdict.
- See whether sources reach the result
Compare collected source addresses with the addresses present in produced artifacts.
Coding agents
Run configured coding agents with application context, explicit execution policies and workspace changes to review.
- Check whether a generation brief needs more context
An optional brief check can identify a missing declared source and recompose the input once before generation.
- Choose what a run may approve
Apply an explicit permission policy to the requests a coding agent sends to Wildo.
- Keep coding runs from competing over the workspace
Serialize managed coding runs and configuration sync so their file changes do not overlap each other.
- Research a question and keep the evidence
Investigate external questions in a separate agent lane, with findings collected in the application research store.
- Run a coding agent in a workspace
Dispatch a coding task with an explicit provider, execution profile and workspace policy.
- See what changed during a coding run
Compare the workspace before and after a run, keeping earlier edits and uncertain ownership visible.
- Start each task with the relevant application context
Bring the task, existing application structure and intended design together before the coding run starts.
- Undo a generated specification run
Restore a playbook run's recorded files while surfacing later content changes for review.
Companion and workbench
The local daemon that runs the journey, and the surfaces you watch it through.
- Ground an agent’s change in the existing application
Developers and coding agents can discover and query the companion’s application views with provenance attached to the answers.
- Keep development tools connected to your application
A persistent local companion supplies application context and development services while short-lived commands and the workbench use them.
- Keep the application model ready to inspect
The companion derives application views from compiled packages, reuses them and refreshes affected views when emitted output changes.
- Reach the same development services from your tools
The terminal and workbench reach companion services through interfaces suited to commands and resource operations.
- See and guide application development
Inspect development work, application structure and results in a local browser workspace connected to companion services.
- Understand what happened inside a creation step
Inspect the recorded brief, events and answer associated with a creation step when investigating its result.
Scaffolding and knowledge
What the framework writes into an application, including the guidance its agents read.
- Add a connected marketing site
Compose an application website with its service and workspace registrations, ready for your content and brand.
- Add a documentation portal to your application
Compose the portal and connect it to the application documentation publication.
- Add a feature with its connections
Apply a named composition scenario to create files and register the new piece across the application, with a preview before writing.
- Catch broken guidance connections
Check the links between source topics, references, skills and methods before delivering guidance.
- Deliver guidance with the framework it describes
Compile authored methods and extracted contracts into the knowledge package delivered to applications.
- Give your agent a method for the whole change
Install task-specific guidance that connects a change to the framework contracts and application layers it affects.
- Give your agent a way to follow the work
Use distinct guides for inspecting development state, choosing work, running it and reviewing the result.
- Grow the site with its registrations
Add pages, sections and locale starting points while keeping their project registrations connected.
- Keep browser permissions aligned with deployment
Generate each browser surface’s content-security policy from its configuration and environment.
- Keep essential conventions in view
Deliver standing guidance alongside task-specific skills, with managed imports in the application instructions.
- Keep worked examples checked against the code
Keep examples in compiler coverage and connect executable samples to their runtime tests.
- Make the development method reusable
Describe the inputs, guidance and expected result of a development activity in a reusable method.
- Publish the framework knowledge package
Generate the source-backed guidance package that applications receive with the framework.
- Read the contract the framework exposes
Named source excerpts put actual framework contracts beside the method that explains how to use them.
- Turn the domain plan into connected project structure
Derive module and resource composition from the domain plan, keeping resource ownership and tenancy explicit.
The command line
What a person building with Wildo actually types.
- Add a feature with its connections
Apply a named composition scenario to create files and register the new piece across the application, with a preview before writing.
- Carry configuration changes into generated files
Refresh environment files, service artifacts and deployment workflows from the same authored configuration.
- Inspect what the running application exposes
Read resolved application structure, specifications and coherence from the running development companion.
- Keep development tools connected to your application
A persistent local companion supplies application context and development services while short-lived commands and the workbench use them.
- One command line for application work
Create, configure, run and inspect an application through commands that understand its workspace.
- Run and recover your local workspace
Start an ordered development session, inspect its state and choose between preserving data and starting fresh.
- Start with a connected application workspace
Create the application structure, local configuration and development knowledge together, then build your business features on that shared starting point.
Testing harnesses
The suites and doubles that prove the engine works against a running stack.
- Customer-infrastructure test double
A standalone service that stands in for a customer's identity provider, directory, security-event sink and webhook receiver, so enterprise integrations can be proven end to end without a real customer.
- Dependency-free end-to-end spine
The pieces every test lane needs, from running a scenario to surviving a backend restart, live in one package with no third-party dependencies, so packages that must stay isolated can still share them.
- Engine behaviour end-to-end harness
A registry of named scenarios drives a real running application over real HTTP and a real browser, and fails the run if the backend logged anything fatal while they ran.
- External-system provider simulators
Standalone doubles for the business systems an application reads data out of, so a data pipeline or a provider operation can be exercised against a real socket without a real business system.
- Platform control-plane end-to-end runner
The platform services that manage applications are tested from the host as external systems, on the same substrate the application lanes use and with a fatal-log gate scoped to the platform's own output.
- Shared browser drive with a gated login
Browser scenarios share one implementation of signing in, and a repository check refuses any browser wait that neither gates on the backend being up nor says in writing why it does not need to.
- Third-party integrator test double
A standalone service that behaves like an external integration consuming your application's API, so the outward-facing surface is proven from the outside rather than from inside the process that serves it.
Build and repository checks
How the framework compiles, publishes and polices itself.
- Code-conduct checkers
Rules that no type system can express are enforced by dedicated checks, each of which can prove it is not broken.
- Database schema planning and migration
Changes to a relational database are planned, compared against a committed baseline, generated as migrations and applied in order, from the command line.
- Dependency alignment for applications
One command brings a standalone application's dependency versions and declared peers back into step with the framework release it has installed.
- Design-token and brand tooling
The application's visual design is written as configuration, generated into the stylesheet every surface reads, and its brand assets are pushed to each site by one command.
- Dogfood diagnostic commands
One screen says whether the reference application's development environment is coherent, and a second streams every one of its process logs together.
- Framework release and publication commands
Releasing the framework is a small set of commands: set the version, sync it across every managed package, publish the packages, publish the image.
- OpenAPI generation for an application's API
A complete, browsable API reference is generated from the application's own resource declarations, with operation names a developer would have chosen by hand.
- Share application code as versioned modules
A reusable piece of an application can be published to a registry and installed into another application, with the downloaded artifact verified against the digest the registry resolved.
- Symbol-accurate code intelligence
A queryable index of every symbol in the repository, so the real consumers of a change can be found across package boundaries in under a second.
- Two coexisting TypeScript compiler lanes
The framework can compile a package with either the established TypeScript compiler or the new native one, package by package, with a single switch to roll everything back.
- Watcher-driven build and publication chain
While you work, every package recompiles and republishes itself in the background, and a consumer never sees a half-written build.
Running it
Observability
Logs, traces, metrics, and how an error is shaped before anyone sees it.
- Choose where telemetry goes
Telemetry collection uses a common protocol while its destination and authentication are configured separately. Wildo translates the selected provider’s connection contract into the environment read by OpenTelemetry.
- Connect traces, metrics and logs
Backend activity can produce connected traces, measurements and log records through OpenTelemetry. Wildo starts the instrumentation before application code and sends those signals to the configured OTLP endpoint.
- Connect website activity to product analytics
A selected analytics provider can load its browser SDK through the website’s provider system. Wildo keeps activation, public configuration and cleanup in one integration path instead of scattering vendor scripts across pages.
- Connect website errors to a monitoring service
A selected browser-monitoring provider loads and starts its SDK on the website. Wildo supplies the activation lifecycle and configuration boundary, while the provider supplies the actual error-monitoring integration.
- Follow activity with structured logs
Application logs keep messages, service identity and diagnostic context as separate fields. Wildo adds the current request’s correlation ID when one is available, so related activity can be found together.
- Give failed screens a useful fallback
React error boundaries replace a failed part of the interface with an error state. Wildo connects that fallback to its shared error context and declared frontend actions, so failures can be handled consistently.
- Give failures a consistent meaning
A backend failure carries a named type, message reference and context instead of relying on a free-form exception string. Wildo uses that shared contract to shape the response and guide its handling.
- Inspect telemetry locally
A local OpenTelemetry collector gives development processes a nearby receiver for traces, metrics and logs. Wildo’s Compose generation includes it when telemetry is enabled and the configured endpoint points to localhost.
- Keep internal error details on the server
Client error responses keep the information needed to understand a refusal or correct an input, while internal context is filtered before serialization. Wildo applies a shared rule instead of asking every endpoint to decide what to expose.
- Keep local output readable and inspectable
Local development labels and captures each service’s output while presenting it in the terminal. Choose structured output when diagnostic tools need to read individual log fields.
- Make important failures stand out
Wildo classifies handled errors so routine client conditions do not look like server outages. The boundary that handles a failure owns its log entry, with structured fields and a stack when the level warrants one.
- Recognize when people reach meaningful progress
Value moments describe activity that matters to your product, such as first value or an activation step. Wildo matches declared signals and exposes achieved moments for the application to use.
- See what model calls consumed
Model calls can leave a consistent trace of usage, timing and outcome. Wildo supplies a structured-log destination and can forward traces to a selected observability provider.
Background work
Jobs, schedules, queues and long-running workers.
- Give a background service a defined reach
Run a separate background service in always-up or scheduled mode, with explicit application-data access and independent platform permissions.
- Keep a history of background work
Record job identity, execution state, timing and errors through the application repository layer for operational investigation.
- Keep a separate copy of your audit history
Wildo can copy older audit records into dated JSON artifacts in object storage. Your operational trail remains available, while a separate archive supports longer-term review and controlled handover.
- Let background work run beyond the request
Queue work through the application service layer, with broker-held retry delays and a place to retain failed messages.
- Run recurring work on a declared schedule
Keep recurring work beside its application contract, while the platform delivers scheduled triggers to the runtime that performs it.
- Run specialist work in its own process
Call a separately deployed worker through authenticated HTTP, keeping application data access in the backend.
- See what each data setup run changed
Record the scope, version and outcome of data setup, with deliberate reruns and retention that preserves version history needed by later passes.
- Share the clock, keep each application’s work separate
A platform scheduler reads application schedules and sends signed dispatches to the appropriate application or minion queue; the receiving runtime performs the work.
Service health
Readiness, limits, and the guards that keep a running service safe.
- Finish active work before stopping
A shared shutdown sequence stops intake, allows active jobs to drain and runs registered cleanup before exit.
- Give platform services their own connections
The manager provisions service-specific access and brokers confined storage sessions for registered platform services.
- Keep record pages within their declared size
Paginated reads apply an operation-owned ceiling so an oversized page request does not become an unbounded response.
- Know whether a process is ready to serve
Separate an answering process from ready dependencies, with component status that helps explain a refusal.
- Notice when an organization has no usable owner
Startup diagnostics identify missing or fragile administrative access, with breach evidence and an explicit recovery direction.
- Replace credentials without an abrupt cutover
A timed overlap lets integrations adopt a new API key or OAuth client secret before the previous one stops working.
- Set request limits where the cost begins
Declare request windows per operation or authenticated subject, with quota and retry information for callers.
Environments and services
Describing an environment, standing it up locally, and the backing services it needs.
- Bring the supporting services together
Describe storage, caching, queues and supporting services as a connected environment with shared configuration and deployment rules.
- Choose where each service runs
Choose supported self-hosted or vendor-managed connections per service without putting the hosting decision into business logic.
- Describe each environment once
Keep runtime, service choices and public addresses in one typed environment definition, then derive the deployment and process configuration from it.
- Describe the stack for a cluster
Derive workloads, configuration, storage and public routing from the environment definition for Kubernetes deployment.
- Find what is stopping the stack
Separate machine prerequisites from running-service checks, with actionable diagnostics before and after startup.
- Give public services secure addresses
Derive public routes and certificate requests from the same environment addresses that the application advertises.
- Keep local data in a predictable place
Keep each local service’s data under a known application directory, independently of replaceable containers.
- Repair or rebuild a local environment
Choose between preserving local data while reconciling generated state and deliberately rebuilding an empty environment.
- Run the stack with Compose
Generate connected service containers from the environment definition, with shared ports, storage and startup checks.
- Start development in the right order
Bring up supporting services and application processes in one supervised local session, with shared output and coordinated shutdown.
Secrets and credentials
Where credentials come from and how they reach a running process.
- Connect each runtime to the services it needs
Wildo derives backing-service configuration and network membership from a runtime’s declared purpose. A background runtime can receive the services it needs without automatically receiving the backend’s full data access.
- Deploy with secrets outside source control
Production secret values can stay in the deployment’s secret store while the repository holds configuration. Wildo reconstructs the structured secret inputs from the runner’s environment and uses them to generate the runtime artifacts.
- Fill missing framework credentials without replacing working ones
Wildo declares the credential material it manages in one registry. Configuration synchronization can provision missing material while keeping already-provisioned credentials, so an existing environment can acquire what a new framework capability needs.
- Give each process one consistent environment
Wildo turns authored configuration and scoped secrets into the environment each process reads. A backend, frontend or background runtime receives its own generated projection, so configuration does not depend on hand-maintained copies of the same value.
- Give each runtime credentials for its own work
Wildo provisions application credentials and narrows background-runtime material to declared access. Database, queue, cache and storage access can follow the runtime’s responsibilities instead of inheriting a shared platform credential.
- Verify signed service calls
On the signed application-configuration route, the manager verifies a platform service against its published public key. The issuer and intended recipient are checked alongside the signature.
Shipping and verification
Building, publishing and checking what actually ships.
- Check the rules that hold the framework together
Automated repository checks catch specific architectural, dependency and security regressions before they become inherited application behavior.
- Keep dependency versions aligned
Derive application version pins and required peer declarations from the framework, then install the resulting dependency set.
- Package platform services with their dependencies
The platform image installs the declared production dependency graph inside Linux and selects its platform service at runtime.
- Ship the browser policy you configured
Generate each browser surface’s policy for its target environment and keep application artifacts and web-server headers aligned.
- Start deployment workflows from your environment
Generate a reviewable GitHub Actions workflow from environment and service declarations, then complete the rollout steps for your hosting setup.
- Use one platform image reference on Intel and Arm
The framework publication lane builds amd64 and arm64 variants under one image reference, letting the host select its matching variant.
Shared services and application authority
Prepare applications, supply configuration and coordinate schedules, with explicit authority for support within each product.
- Explain who changed customer permissions
Organization-wide and unit-scoped role changes produce distinct evidence of the requested and resulting authority, attributed to the actor who changed it.
- Give each application its own startup configuration
Each application resolves configuration for its own identity. Wildo combines environment connections with platform-managed metadata and credentials, then applies the application's authored behavior.
- Make access across customer boundaries visible
Cross-tenant access observations identify the operator, target organization, operation and authorizing grant, separate from ordinary member activity.
- Open specific support actions, not blanket access
Application operators reach a customer organization through explicitly declared operations and a usable grant for that organization.
- Prepare another application for its first start
Register an application with its own identity and service declarations. Wildo prepares its platform records, service access and first application records, then derives the configuration its runtimes need.
- Separate product administration from customer administration
Each application has its own product-wide roles and customer-organization roles. Managing one customer account does not make someone an administrator of the whole product.
- Share the clock, keep each application’s work separate
A platform scheduler reads application schedules and sends signed dispatches to the appropriate application or minion queue; the receiving runtime performs the work.
- Share the services around your applications
Applications can share the services that register them, coordinate scheduled work and distribute reusable modules. Each application keeps its own identity and configuration while using the same operational foundation.