Read first
- Read
/llms.txtto find the current documentation pages. - Inspect
fentaris.json,package.json, the package-manager lockfile,src/index.ts,.fentaris/secrets.manifest.json, and existing tests. - Check the installed
@fentaris/coreand CLI versions before using version-sensitive APIs. - Prefer CLI help and current documentation over compiled package internals.
fentaris init with explicit options. For an existing
project, preserve its API style and make the smallest coherent change.
API decision table
Safe implementation workflow
1. Resolve the runtime boundary
Keep host, port, MCP path, entrypoint, package manager, and auth directory infentaris.json. Keep the host on 127.0.0.1 unless the user explicitly chooses
a protected shared boundary.
OAuth 2.1 and fentaris deploy are not currently available. Use Fentaris API
keys, trusted identity headers behind an authenticated gateway, or an existing
auth boundary. Do not invent deploy commands.
2. Declare capabilities with stable names
Server and local namespace names become client-visible tool prefixes. Changinggithub to source-control, for example, changes
github__search_issues to source-control__search_issues.
Register an upstream before referencing it in policy:
3. Fail closed
Use explicit allow-list policies for shared projects.Policy.allowAll() is a
local-development shortcut and must be labeled as such.
Test both sides of each policy:
- an allowed subject can discover and call the capability;
- a denied subject cannot discover it;
- a direct denied call fails before the upstream or local handler runs.
4. Leave secret material to the user
Agents may add credential references and an updated manifest, but must not invent or print real secret values.5. Validate in layers
Run the narrowest checks first:tools/list and representative tools/call requests for both allowed and
denied users.
Required handoff
An agent completing a Fentaris change should report:- files and namespaces changed;
- endpoint and runtime assumptions;
- auth, users, groups, policy, secrets, and logging added;
- exact validation commands and their results;
- remaining secret provisioning steps;
- one expected allowed result and one expected denied result;
- current limitations that materially affect the setup.