|
| 1 | +# MONAI Application Packager |
| 2 | + |
| 3 | +## Description |
| 4 | + |
| 5 | +This is a proposal for the MONAI Deploy Working Group. |
| 6 | + |
| 7 | +- [Overview](#overview) |
| 8 | + - [Goal](#goal) |
| 9 | +- [Requirements](#requirements) |
| 10 | + - [Creates Deployable Single Container](#creates-deployable-single-container) |
| 11 | + - [Packages Required MAP Components](#packages-required-map-components) |
| 12 | + - [Offers Intuitive Interface](#offers-intuitive-interface) |
| 13 | + - [Input Requirements](#input-requirements) |
| 14 | + - [Converting Existing Images](#converting-existing-images) |
| 15 | +- [Architecture & Design](#architecture--design) |
| 16 | + - [Packager Specification](#packager-specification) |
| 17 | + - [Packaging MAP with MONAI Application](#packaging-map-with-monai-application) |
| 18 | + - [Packaging MAP from existing container](#packaging-map-from-existing-container) |
| 19 | + |
| 20 | +## Overview |
| 21 | +Data scientists and application developers will require a utility to package their MONAI applications into deployable MONAI Application Packages (MAP). This proposal documents the specification of the initial version of the MONAI Application Packager (Packager). |
| 22 | + |
| 23 | +### Goal |
| 24 | + |
| 25 | +The goal of this proposal is to achieve clarity on the initial structure of the Packager, with regards specifically to how it should create a deployable package and the interface it should provide to users. |
| 26 | + |
| 27 | +## Requirements |
| 28 | + |
| 29 | +The following are requirements which need to be met by the MAP Packager specification to be considered complete and approved. |
| 30 | + |
| 31 | +### Creates Deployable Single Container |
| 32 | + |
| 33 | +Packager SHALL produce a functional MAP which SHALL be a deployable single containerized application |
| 34 | + |
| 35 | +### Packages Required MAP Components |
| 36 | + |
| 37 | +Packager SHALL package/provide all required components specified in [MONAI Application Package](./monai-application-package.md). |
| 38 | + |
| 39 | +### Offers Intuitive Interface |
| 40 | + |
| 41 | +Packager SHOULD provide users with an intuitive interface to package an application into a MAP. |
| 42 | + |
| 43 | +Packager SHOULD provide a command-line interface for users to package an application into a MAP. |
| 44 | + |
| 45 | +### Input Requirements |
| 46 | + |
| 47 | +Packager SHALL take a MONAI Application and any optional pre-trained models as input. |
| 48 | + |
| 49 | +### Converting Existing Images |
| 50 | + |
| 51 | +Packager SHALL support converting existing container images into MAPs |
| 52 | + |
| 53 | +## Architecture & Design |
| 54 | + |
| 55 | +Packager SHALL accept a user supplied application and package it into a MAP |
| 56 | + |
| 57 | +[!IMPORTANT] |
| 58 | +The full design and layout for a MAP produced by Packager can be found in the [MONAI Application Package](./monai-application-package.md) design document. |
| 59 | + |
| 60 | +### Packager Specification |
| 61 | + |
| 62 | +Packager SHALL adhere to the MAP specification when packaging a MAP |
| 63 | + |
| 64 | +Packager SHALL be a client that supports the following features |
| 65 | + |
| 66 | +#### Packaging MAP with MONAI Application |
| 67 | + |
| 68 | +Packager SHALL support packaging a MAP with a user supplied MONAI application and any optional pre-trained models |
| 69 | + |
| 70 | +#### Packaging MAP from existing container |
| 71 | + |
| 72 | +Packager SHALL support packaging a MAP from an existing container |
0 commit comments