> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.instabase.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.instabase.com/_mcp/server.

# Publishing developer packages

> Developer packages enable distribution and sharing of custom Python files used in flows, such as functions and libraries.

Enterprise Single-tenant

Developer packages enable distribution and sharing of custom Python files used in flows, such as custom functions and libraries.

Members with the advanced developer role or higher can build flows and create developer packages. Create the developer package by adding a [developer package directory](#developer-package-contents) anywhere in the advanced view file explorer. Then, right-click the content directory and select **Package**. An `.ibsolution` file is generated at the same level as the solution directory with the name and version specified in the solution's JSON metadata.

To publish a package to the Marketplace, access **Marketplace Admin** (**All apps** > **Marketplace Admin**) and use the **Tools** > **Publish** menu.

## Developer package contents

Developer packages consist of the package payload stored in a `src` directory and a JSON file that includes package metadata. Developer packages can optionally include a README and screenshots.

```
├── solution
│   ├── src
│   ├── package.json
│   ├── README.md
│   ├── screenshots
```

**Package payload**

The package payload is a `src` directory that contains your custom Python files.

**JSON file**

A JSON file describes the solution metadata.

Required fields:

* `name` - Unique name for the developer package.

* `version` - Semantic version in major.minor.patch format.

* `short_description` - Short description that displays in the Marketplace.

* `long_description` - Long description of the developer package.

* `authors` - List of solution author or authors.

* `accelerator_type` - List of accelerator types: `package`.

* `industry` - List of industry tags: `Financial Services`, `Healthcare`, `Insurance`, `Public Sector`, or `Shared Services`.

* `business_vertical` - List of business verticals: `Asset & Wealth Management`, `Business & Commercial Banking`, `Corporate & Investment Banking`, or `Retail & Consumer Banking`.

* `package_type` - List of package tags: `integration`, `refiner`, `step`, or `validation`.

* `function_type` - List of function tags: `formatting`, `integrations`, `machine learning`, `parsing`, or `validating`.

Optional fields:

* `icon_url` - Path to optional icon. Always `icon.png`.

* `beta` - `true` adds a visual beta tag to the developer package.

* `encryption_config` - Dictionary that specifies the encryption protocol to use. The `encryption_type` must be specified with the value `v1`.

See the following sample `package.json` file for a custom library solution:

```json
{
  "name": "ib_classifier_docsplitting",
  "version": "1.0.1",
  "short_description": "Classifier for variable-length document bundles",
  "long_description": "The docsplitting classifier learns to split a PDF bundle of documents, and predict the class of each document. Import FirstPageDocsplittingClassifier from docsplit_classifier in the solution.",
  "authors": [
        "Instabase"
    ],
  "accelerator_type": [
        "package"
    ],
  "industry": [],
  "business_vertical": [],
  "package_type": [
        "integration"
    ],
  "function_type": [
        "machine learning"
    ],
  "icon_url": "icon.png",
  "beta": true,
  "encryption_config": {
    "encryption_type": "v1"
  }
}
```

**README**

An optional `README.md` file that describes the solution package. The README might describe use cases, benefits, and instructions.

**Screenshots**

Optional screenshots in a `screenshots/` folder illustrate how the solution works.