All Downloads are FREE. Search and download functionalities are using the official Maven repository.

json.schema.entity.applications.app.json Maven / Gradle / Ivy

There is a newer version: 1.6.0-rc1
Show newest version
{
  "$id": "https://open-metadata.org/schema/entity/applications/app.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "App",
  "javaType": "org.openmetadata.schema.entity.app.App",
  "javaInterfaces": ["org.openmetadata.schema.EntityInterface"],
  "description": "This schema defines the applications for Open-Metadata.",
  "type": "object",
  "definitions": {
    "scheduleType": {
      "javaType": "org.openmetadata.schema.entity.app.ScheduleType",
      "description": "This schema defines the type of application.",
      "type": "string",
      "enum": [
        "Live",
        "Scheduled",
        "ScheduledOrManual",
        "NoSchedule"
      ],
      "javaEnums": [
        {
          "name": "Live"
        },
        {
          "name": "Scheduled"
        },
        {
          "name": "ScheduledOrManual"
        },
        {
          "name": "NoSchedule"
        }
      ]
    },
    "scheduleTimeline": {
      "javaType": "org.openmetadata.schema.entity.app.ScheduleTimeline",
      "description": "This schema defines the Application ScheduleTimeline Options",
      "type": "string",
      "enum": ["Hourly"," Daily", "Weekly", "Monthly", "Custom", "None"],
      "default": "Weekly"
    },
    "appSchedule": {
      "javaType": "org.openmetadata.schema.entity.app.AppSchedule",
      "description": "This schema defines the type of application.",
      "properties": {
        "scheduleTimeline": {
          "$ref": "#/definitions/scheduleTimeline"
        },
        "cronExpression": {
          "description": "Cron Expression in case of Custom scheduled Trigger",
          "type": "string"
        }
      },
      "required": ["scheduleTimeline"],
      "additionalProperties": false
    },
    "appType": {
      "javaType": "org.openmetadata.schema.entity.app.AppType",
      "description": "This schema defines the type of application.",
      "type": "string",
      "enum": [
        "internal",
        "external"
      ],
      "javaEnums": [
        {
          "name": "Internal"
        },
        {
          "name": "External"
        }
      ]
    },
    "permissions": {
      "javaType": "org.openmetadata.schema.entity.app.NativeAppPermission",
      "description": "This schema defines the Permission used by Native Application.",
      "type": "string",
      "enum": [
        "All"
      ],
      "javaEnums": [
        {
          "name": "All"
        }
      ]
    },
    "executionContext": {
      "description": "Execution Configuration.",
      "oneOf": [
        {
          "$ref": "./liveExecutionContext.json"
        },
        {
          "$ref": "./scheduledExecutionContext.json"
        }
      ],
      "additionalProperties": false
    }
  },
  "properties": {
    "id": {
      "description": "Unique identifier of this application.",
      "$ref": "../../type/basic.json#/definitions/uuid"
    },
    "name": {
      "description": "Name of the Application.",
      "$ref": "../../type/basic.json#/definitions/entityName"
    },
    "displayName": {
      "description": "Display Name for the application.",
      "type": "string"
    },
    "description": {
      "description": "Description of the Application.",
      "$ref": "../../type/basic.json#/definitions/markdown"
    },
    "features": {
      "description": "Features of the Application.",
      "$ref": "../../type/basic.json#/definitions/markdown"
    },
    "fullyQualifiedName": {
      "description": "FullyQualifiedName same as `name`.",
      "$ref": "../../type/basic.json#/definitions/fullyQualifiedEntityName"
    },
    "owners": {
      "description": "Owners of this workflow.",
      "$ref": "../../type/entityReferenceList.json",
      "default": null
    },
    "version": {
      "description": "Metadata version of the entity.",
      "$ref": "../../type/entityHistory.json#/definitions/entityVersion"
    },
    "updatedAt": {
      "description": "Last update time corresponding to the new version of the entity in Unix epoch time milliseconds.",
      "$ref": "../../type/basic.json#/definitions/timestamp"
    },
    "updatedBy": {
      "description": "User who made the update.",
      "type": "string"
    },
    "href": {
      "description": "Link to the resource corresponding to this entity.",
      "$ref": "../../type/basic.json#/definitions/href"
    },
    "changeDescription": {
      "description": "Change that lead to this version of the entity.",
      "$ref": "../../type/entityHistory.json#/definitions/changeDescription"
    },
    "deleted": {
      "description": "When `true` indicates the entity has been soft deleted.",
      "type": "boolean",
      "default": false
    },
    "provider" : {
      "$ref": "../../type/basic.json#/definitions/providerType"
    },
    "developer": {
      "description": "Developer For the Application.",
      "type": "string"
    },
    "developerUrl": {
      "description": "Url for the developer",
      "type": "string"
    },
    "privacyPolicyUrl": {
      "description": "Privacy Policy for the developer",
      "type": "string"
    },
    "supportEmail": {
      "description": "Support Email for the application",
      "type": "string"
    },
    "className": {
      "description": "Fully Qualified ClassName for the Schedule",
      "type": "string"
    },
    "sourcePythonClass": {
      "description": "Fully Qualified class name for the Python source that will execute the external application.",
      "type": "string"
    },
    "appType": {
      "description": "This schema defines the type of application.",
      "$ref": "#/definitions/appType"
    },
    "scheduleType": {
      "description": "This schema defines the Schedule Type of Application.",
      "$ref": "#/definitions/scheduleType"
    },
    "permission": {
      "description": "Permission used by Native Applications.",
      "$ref": "#/definitions/permissions"
    },
    "bot": {
      "description": "Bot User Associated with this application.",
      "$ref": "../../type/entityReference.json",
      "default": null
    },
    "runtime": {
      "description": "Execution Configuration.",
      "$ref": "#/definitions/executionContext"
    },
    "allowConfiguration": {
      "description": "Allow users to configure the app from the UI. If `false`, the `configure` step will be hidden.",
      "type": "boolean",
      "default": true
    },
    "system": {
      "description": "A system app cannot be uninstalled or modified.",
      "type": "boolean",
      "default": false
    },
    "appConfiguration": {
      "description": "Application Configuration object.",
      "$ref": "./configuration/applicationConfig.json#/definitions/appConfig"
    },
    "privateConfiguration": {
      "description": "Application Private configuration loaded at runtime.",
      "$ref": "./configuration/applicationConfig.json#/definitions/privateConfig"
    },
    "preview": {
      "type": "boolean",
      "description": "Flag to enable/disable preview for the application. If the app is in preview mode, it can't be installed.",
      "default": false
    },
    "pipelines": {
      "description": "References to pipelines deployed for this database service to extract metadata, usage, lineage etc..",
      "$ref": "../../type/entityReferenceList.json"
    },
    "appSchedule": {
      "description": "In case the app supports scheduling, list of different app schedules",
      "$ref": "#/definitions/appSchedule"
    },
    "openMetadataServerConnection": {
      "$ref": "../services/connections/metadata/openMetadataConnection.json"
    },
    "appLogoUrl": {
      "description": "Application Logo Url.",
      "type": "string",
      "format": "uri"
    },
    "appScreenshots": {
      "description": "Application Screenshots.",
      "type": "array",
      "items":{
        "type": "string"
      },
      "uniqueItems": true
    },
    "domain" : {
      "description": "Domain the asset belongs to. When not set, the asset inherits the domain from the parent it belongs to.",
      "$ref": "../../type/entityReference.json"
    },
    "supportsInterrupt": {
      "description": "If the app run can be interrupted as part of the execution.",
      "type": "boolean",
      "default": false
    }
  },
  "additionalProperties": false,
  "required": ["id", "name", "appType", "className", "scheduleType", "permission", "runtime", "appSchedule"]
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy