Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Descriptive Manifest JSON-Schemas #928

Merged
merged 13 commits into from
Jun 21, 2022
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,29 @@
*/

export interface AppManifest {
/**
* Polywrap app manifest format version.
*/
format: "0.0.1-prealpha.1";
/**
* Language in which the source code is written.
*/
language: string;
/**
* Path to graphql schema.
*/
schema: string;
/**
* Redirects enabling the import of plugins.
*/
import_redirects?: {
/**
* URI resolving to the plugin schema.
*/
uri: string;
/**
* Graphql schema for imported plugin.
*/
schema: string;
}[];
__type: "AppManifest";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,33 @@
*/

export interface AppManifest {
/**
* Polywrap app manifest format version.
*/
format: "0.0.1-prealpha.2";
/**
* Name of this wrapper package.
*/
name: string;
/**
* Language in which the source code is written.
*/
language: string;
/**
* Path to graphql schema.
*/
schema: string;
/**
* Redirects enabling the import of plugins.
*/
import_redirects?: {
/**
* URI resolving to the plugin schema.
*/
uri: string;
/**
* Graphql schema for imported plugin.
*/
schema: string;
}[];
__type: "AppManifest";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,30 @@
*/

export interface BuildManifest {
/**
* Polywrap build manifest format version.
*/
format: "0.0.1-prealpha.1";
/**
* Docker build artifact properties.
*/
docker?: {
/**
* Docker image name.
*/
name?: string;
/**
* Docker image file name.
*/
dockerfile?: string;
/**
* Id of the docker image.
*/
buildImageId?: string;
};
/**
* Custom configuration.
*/
config?: {
[k: string]: unknown;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,45 @@
*/

export interface BuildManifest {
/**
* Polywrap build manifest format version.
*/
format: "0.0.1-prealpha.2";
docker?: {
/**
* Docker image name.
*/
name?: string;
/**
* Docker image file name.
*/
dockerfile?: string;
/**
* Id of the docker image.
*/
buildImageId?: string;
};
/**
* Custom configuration.
*/
config?: {
[k: string]: unknown;
};
/**
* Locally linked packages into docker build image.
*/
linked_packages?: {
/**
* Package name
*/
name: string;
/**
* Path to linked package directory.
*/
path: string;
/**
* Ignore files matching this regex in linked package directory.
*/
filter?: string;
}[];
__type: "BuildManifest";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,68 @@
*/

export interface BuildManifest {
/**
* Polywrap build manifest format version.
*/
format: "0.0.1-prealpha.3";
docker?: {
/**
* Docker image name.
*/
name?: string;
/**
* Docker image file name.
*/
dockerfile?: string;
/**
* Id of the docker image.
*/
buildImageId?: string;
/**
* Configuration options for Docker Buildx, set to true for default value.
*/
buildx?:
| {
/**
* Path to cache directory, set to true for default value, set to false to disable caching.
*/
cache?: string | boolean;
/**
* Path to cache directory, set to true or false for default value.
*/
output?: string | boolean;
/**
* Remove a builder instance.
*/
removeBuilder?: boolean;
}
| boolean;
/**
* Remove the image.
*/
removeImage?: boolean;
};
/**
* Custom configuration.
*/
config?: {
[k: string]: unknown;
};
/**
* Locally linked packages into docker build image.
*/
linked_packages?: {
/**
* Package name.
*/
name: string;
/**
* Path to linked package directory.
*/
path: string;
/**
* Ignore files matching this regex in linked package directory.
*/
filter?: string;
}[];
__type: "BuildManifest";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,35 @@
*/

export interface DeployManifest {
/**
* Polywrap deployment manifest format version.
*/
format: "0.0.1-prealpha.1";
stages: {
/**
* Deployment stage.
*
* This interface was referenced by `undefined`'s JSON-Schema definition
* via the `patternProperty` "^.*$".
*/
[k: string]: {
/**
* Name of the publisher plugin.
*/
package: string;
/**
* Custom configuration.
*/
config?: {
[k: string]: unknown;
};
/**
* Name of the required stage.
*/
depends_on?: string;
/**
* URI resolving to the publisher plugin.
*/
uri?: string;
};
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,13 @@
*/

export interface InfraManifest {
/**
* Polywrap infra manifest format version.
*/
format: "0.0.1-prealpha.1";
/**
* Path to docker compose manifest.
*/
dockerCompose?: string;
env?: {
/**
Expand All @@ -25,12 +31,30 @@ export interface InfraManifest {
};
__type: "InfraManifest";
}
/**
* A remote docker-compose package.
*/
export interface RemoteModule {
/**
* Package name.
*/
package: string;
/**
* Package registry name.
*/
registry: string;
/**
* Package version.
*/
version: string;
/**
* Path to docker-compose file in the package directory.
*/
dockerComposePath?: string;
}
export interface LocalModule {
/**
* Path to the package.
*/
path: string;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,19 @@
* and run json-schema-to-typescript to regenerate this file.
*/

/**
* A module available by default.
*/
export type DefaultModule = "default";

export interface InfraManifest {
/**
* Polywrap infra manifest format version.
*/
format: "0.0.1-prealpha.2";
/**
* Path to docker compose manifest.
*/
dockerCompose?: string;
env?: {
/**
Expand All @@ -27,12 +36,33 @@ export interface InfraManifest {
};
__type: "InfraManifest";
}
/**
* A remote package with a docker-compose file.
*/
export interface RemoteModule {
/**
* Package name.
*/
package: string;
/**
* Package registry name.
*/
registry: string;
/**
* Package version.
*/
version: string;
/**
* Path to docker-compose file in the package directory.
*/
dockerComposePath?: string;
}
/**
* A local package with a docker-compose file.
*/
export interface LocalModule {
/**
* Path to the package.
*/
path: string;
}
Loading