Skip to content

Submit for review ​

Submit only after the integration works end to end in your developer tenant. A public widget has two independent submissions; an API-only integration has only the app-card submission.

Before submitting ​

  • The app code is claimed and permanent.
  • Every selected marketplace language has a name, pre-install description, privacy policy, and support URL or email.
  • Install, revoke and webhook URLs are public HTTPS endpoints and have been exercised.
  • required_permissions is the narrowest list that works.
  • The exact widget.zip attached to the release passes validation.
  • The release was previewed or saved locally and tested on every declared surface.
  • Uninstall/reinstall, error states and consent were tested.
  • Release notes explain the behavior changed in this version.

amoCRM's official moderation guidance asks developers to provide a reproducible test case and any required test access. Follow the same operational discipline for Bito: make the moderator's path short, deterministic and free of production customer data. Never put long-lived secrets in the archive or public listing.

1. Submit the release ​

In My apps → app → Versions, open the intended version and press Submit for review.

http
POST /admin/settings/widget/release/submit
Authorization: Bearer <Bito session token>
Content-Type: application/json

{ "_id": "<release_id>" }

The release moves from an editable state to queued, then to testing when a moderator picks it up. You can withdraw it while it is queued or being tested.

2. Submit the app card ​

In General info, save all changes and press Submit for review.

http
POST /admin/settings/integration/publish
Authorization: Bearer <Bito session token>
Content-Type: application/json

{ "_id": "<integration_id>" }

The card moves to pending and is locked until it is approved, rejected or withdrawn. Version work remains available because the review tracks are separate.

For a first public widget, get the release moderator-approved before final card approval. Bito will not publish a card that points at a locally activated or unmoderated release.

What moderators inspect ​

The review follows the same practical layers described in amoCRM's public-integration requirements and moderation flow, applied to Bito's contracts. While a release is testing, the moderator works through three stages in strict order — each opens only after the previous one passed, and approval requires all three:

#StageWhat is checked
1Code checkValidation, assets and manifest pass; the static scan has no blockers; declared surfaces and permissions match what the code calls.
2Listing checkName, descriptions and setup instructions exist in every declared language; the privacy policy and support links resolve.
3Usability testInstalled on a sandbox account: every declared surface opens and works, and uninstall runs cleanly.

Bito itself blocks the first stage: a release that failed validation, hit an asset-extraction error, or has a static-scan blocker cannot pass the Code check.

The static code scan ​

The .js and .html files in the uploaded archive are scanned line by line, and the findings are shown to the moderator next to the source.

RuleSeverityWhat it finds
evalBlockereval(...) — evaluating a string as code
new-functionBlockernew Function(...) — building code from a string at runtime
string-timerBlockerPassing a string to setTimeout/setInterval
plain-httpBlockerCalling a host over http:// (except localhost)
ip-literalBlockerCalling a host by IP address instead of a domain
remote-importBlockerimport('https://...') — loading code from a remote URL
token-accessReviewgetAccessToken() — check where the token is sent
storage-accessReviewdocument.cookie, localStorage, sessionStorage
inner-htmlReview.innerHTML = — tenant data must not land in markup unescaped
post-message-anyReviewpostMessage(..., '*')
undeclared-originReviewAn https:///wss:// origin the code calls but bito.network.connect_origins does not declare

A single blocker closes the first stage — fix the release and resubmit it with a new archive. Review findings do not stop anything, but the moderator reads them. The scan matches line patterns and does not understand the code, so the moderator still reads the source.

Decision log ​

Bito keeps a moderation log: on a release — review started, each stage passed (with the text of what was checked), approval and rejection; on a card — approval and rejection. Every entry carries the moderator's name and the time. The log is append-only. The rejection reason is shown to you on the release or card. When a release re-enters testing, the stages start over from zero.

Approval is not inferred from a successful upload or build. It is a separate human decision recorded on the card or release.

Bito 2.0 Integration API