Skip to content

Instantly share code, notes, and snippets.

@julrich
Created February 24, 2025 11:54
Show Gist options
  • Save julrich/c62da2f92ba2bbbb606137e6715e615f to your computer and use it in GitHub Desktop.
Save julrich/c62da2f92ba2bbbb606137e6715e615f to your computer and use it in GitHub Desktop.
Complex CLI task
{
"definitions": {},
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "https://ruhmesmeile.com/rm-dist.json",
"type": "object",
"title": "ruhmesmeile Basiswebsite / rm-dist configuration",
"required": [
"project",
"configuration",
"remote",
"typo3"
],
"properties": {
"project": {
"$id": "#/properties/project",
"type": "object",
"title": "The Project Schema",
"required": [
"key",
"name"
],
"properties": {
"key": {
"$id": "#/properties/project/properties/key",
"type": "string",
"title": "The Key Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"name": {
"$id": "#/properties/project/properties/name",
"type": "string",
"title": "The Name Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"configuration": {
"$id": "#/properties/configuration",
"type": "object",
"title": "The Configuration Schema",
"required": [
"atlassianKey",
"multi"
],
"properties": {
"atlassianKey": {
"$id": "#/properties/configuration/properties/atlassianKey",
"type": "string",
"title": "The Atlassiankey Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"multi": {
"$id": "#/properties/configuration/properties/multi",
"type": "object",
"title": "The Multi Schema",
"required": [
"frontend"
],
"properties": {
"frontend": {
"$id": "#/properties/configuration/properties/multi/properties/frontend",
"type": "string",
"title": "The Frontend Schema",
"default": "",
"examples": [
"single"
],
"pattern": "^(.*)$"
}
}
}
}
},
"remote": {
"$id": "#/properties/remote",
"type": "object",
"title": "The Remote Schema",
"required": [
"ssh",
"db",
"solr",
"typo3"
],
"properties": {
"ssh": {
"$id": "#/properties/remote/properties/ssh",
"type": "object",
"title": "The Ssh Schema",
"required": [
"host",
"user",
"pass",
"dir"
],
"properties": {
"host": {
"$id": "#/properties/remote/properties/ssh/properties/host",
"type": "string",
"title": "The Host Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"user": {
"$id": "#/properties/remote/properties/ssh/properties/user",
"type": "string",
"title": "The User Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"pass": {
"$id": "#/properties/remote/properties/ssh/properties/pass",
"type": "string",
"title": "The Pass Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"dir": {
"$id": "#/properties/remote/properties/ssh/properties/dir",
"type": "string",
"title": "The Dir Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"db": {
"$id": "#/properties/remote/properties/db",
"type": "object",
"title": "The Db Schema",
"required": [
"host",
"user",
"pass",
"name"
],
"properties": {
"host": {
"$id": "#/properties/remote/properties/db/properties/host",
"type": "string",
"title": "The Host Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"user": {
"$id": "#/properties/remote/properties/db/properties/user",
"type": "string",
"title": "The User Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"pass": {
"$id": "#/properties/remote/properties/db/properties/pass",
"type": "string",
"title": "The Pass Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"name": {
"$id": "#/properties/remote/properties/db/properties/name",
"type": "string",
"title": "The Name Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"solr": {
"$id": "#/properties/remote/properties/solr",
"type": "object",
"title": "The Solr Schema",
"required": [
"pass"
],
"properties": {
"pass": {
"$id": "#/properties/remote/properties/solr/properties/pass",
"type": "string",
"title": "The Pass Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"typo3": {
"$id": "#/properties/remote/properties/typo3",
"type": "object",
"title": "The Typo3 Schema",
"required": [
"privateDir"
],
"properties": {
"privateDir": {
"$id": "#/properties/remote/properties/typo3/properties/privateDir",
"type": "string",
"title": "The Privatedir Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
}
}
},
"typo3": {
"$id": "#/properties/typo3",
"type": "object",
"title": "The Typo3 Schema",
"required": [
"extensions",
"CCEs",
"instances"
],
"properties": {
"extensions": {
"$id": "#/properties/typo3/properties/extensions",
"type": "array",
"title": "The Extensions Schema"
},
"CCEs": {
"$id": "#/properties/typo3/properties/CCEs",
"type": "array",
"title": "The Cces Schema"
},
"instances": {
"$id": "#/properties/typo3/properties/instances",
"type": "array",
"title": "The Instances Schema",
"items": {
"$id": "#/properties/typo3/properties/instances/items",
"type": "object",
"title": "The Items Schema",
"required": [
"key",
"encryptionKey",
"meta",
"tracking",
"maps",
"company",
"frontend",
"settings"
],
"properties": {
"key": {
"$id": "#/properties/typo3/properties/instances/items/properties/key",
"type": "string",
"title": "The Key Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"encryptionKey": {
"$id": "#/properties/typo3/properties/instances/items/properties/encryptionKey",
"type": "string",
"title": "The Encryptionkey Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"meta": {
"$id": "#/properties/typo3/properties/instances/items/properties/meta",
"type": "object",
"title": "The Meta Schema",
"required": [
"title"
],
"properties": {
"title": {
"$id": "#/properties/typo3/properties/instances/items/properties/meta/properties/title",
"type": "string",
"title": "The Title Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"tracking": {
"$id": "#/properties/typo3/properties/instances/items/properties/tracking",
"type": "object",
"title": "The Tracking Schema",
"required": [
"googleAnalytics"
],
"properties": {
"googleAnalytics": {
"$id": "#/properties/typo3/properties/instances/items/properties/tracking/properties/googleAnalytics",
"type": "object",
"title": "The Googleanalytics Schema",
"required": [
"active",
"apiKey"
],
"properties": {
"active": {
"$id": "#/properties/typo3/properties/instances/items/properties/tracking/properties/googleAnalytics/properties/active",
"type": "boolean",
"title": "The Active Schema",
"default": false,
"examples": [
false
]
},
"apiKey": {
"$id": "#/properties/typo3/properties/instances/items/properties/tracking/properties/googleAnalytics/properties/apiKey",
"type": "string",
"title": "The Apikey Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
}
}
},
"maps": {
"$id": "#/properties/typo3/properties/instances/items/properties/maps",
"type": "object",
"title": "The Maps Schema",
"required": [
"googleMaps"
],
"properties": {
"googleMaps": {
"$id": "#/properties/typo3/properties/instances/items/properties/maps/properties/googleMaps",
"type": "object",
"title": "The Googlemaps Schema",
"required": [
"active",
"apiKey"
],
"properties": {
"active": {
"$id": "#/properties/typo3/properties/instances/items/properties/maps/properties/googleMaps/properties/active",
"type": "boolean",
"title": "The Active Schema",
"default": false,
"examples": [
true
]
},
"apiKey": {
"$id": "#/properties/typo3/properties/instances/items/properties/maps/properties/googleMaps/properties/apiKey",
"type": "string",
"title": "The Apikey Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
}
}
},
"company": {
"$id": "#/properties/typo3/properties/instances/items/properties/company",
"type": "object",
"title": "The Company Schema",
"required": [
"name",
"contact",
"address",
"social"
],
"properties": {
"name": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/name",
"type": "object",
"title": "The Name Schema",
"required": [
"display",
"legal"
],
"properties": {
"display": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/name/properties/display",
"type": "string",
"title": "The Display Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"legal": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/name/properties/legal",
"type": "string",
"title": "The Legal Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"contact": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/contact",
"type": "object",
"title": "The Contact Schema",
"required": [
"mail",
"phone",
"phoneHtml"
],
"properties": {
"mail": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/contact/properties/mail",
"type": "string",
"title": "The Mail Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"phone": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/contact/properties/phone",
"type": "string",
"title": "The Phone Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"phoneHtml": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/contact/properties/phoneHtml",
"type": "string",
"title": "The Phonehtml Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"address": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/address",
"type": "object",
"title": "The Address Schema",
"required": [
"street",
"zip",
"city",
"country"
],
"properties": {
"street": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/address/properties/street",
"type": "string",
"title": "The Street Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"zip": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/address/properties/zip",
"type": "string",
"title": "The Zip Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"city": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/address/properties/city",
"type": "string",
"title": "The City Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"country": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/address/properties/country",
"type": "string",
"title": "The Country Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"social": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/social",
"type": "object",
"title": "The Social Schema",
"required": [
"facebook",
"twitter",
"youtube",
"xing",
"instagram",
"linkedin"
],
"properties": {
"facebook": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/social/properties/facebook",
"type": "string",
"title": "The Facebook Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"twitter": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/social/properties/twitter",
"type": "string",
"title": "The Twitter Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"youtube": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/social/properties/youtube",
"type": "string",
"title": "The Youtube Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"xing": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/social/properties/xing",
"type": "string",
"title": "The Xing Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"instagram": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/social/properties/instagram",
"type": "string",
"title": "The Instagram Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"linkedin": {
"$id": "#/properties/typo3/properties/instances/items/properties/company/properties/social/properties/linkedin",
"type": "string",
"title": "The Linkedin Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
}
}
},
"frontend": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend",
"type": "object",
"title": "The Frontend Schema",
"required": [
"font",
"logo",
"colors"
],
"properties": {
"font": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/font",
"type": "object",
"title": "The Font Schema",
"required": [
"name",
"type",
"source"
],
"properties": {
"name": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/font/properties/name",
"type": "string",
"title": "The Name Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"type": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/font/properties/type",
"type": "string",
"title": "The Type Schema",
"default": "",
"examples": [
"local"
],
"pattern": "^(.*)$"
},
"source": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/font/properties/source",
"type": "string",
"title": "The Source Schema",
"default": "",
"examples": [
"local"
],
"pattern": "^(.*)$"
}
}
},
"logo": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/logo",
"type": "object",
"title": "The Logo Schema",
"required": [
"default",
"white"
],
"properties": {
"default": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/logo/properties/default",
"type": "object",
"title": "The Default Schema",
"required": [
"name",
"type"
],
"properties": {
"name": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/logo/properties/default/properties/name",
"type": "string",
"title": "The Name Schema",
"default": "",
"examples": [
"logo.svg"
],
"pattern": "^(.*)$"
},
"type": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/logo/properties/default/properties/type",
"type": "string",
"title": "The Type Schema",
"default": "",
"examples": [
"svg"
],
"pattern": "^(.*)$"
}
}
},
"white": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/logo/properties/white",
"type": "object",
"title": "The White Schema",
"required": [
"name",
"type"
],
"properties": {
"name": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/logo/properties/white/properties/name",
"type": "string",
"title": "The Name Schema",
"default": "",
"examples": [
"logo-white.svg"
],
"pattern": "^(.*)$"
},
"type": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/logo/properties/white/properties/type",
"type": "string",
"title": "The Type Schema",
"default": "",
"examples": [
"svg"
],
"pattern": "^(.*)$"
}
}
}
}
},
"colors": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/colors",
"type": "object",
"title": "The Colors Schema",
"required": [
"brand"
],
"properties": {
"brand": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/colors/properties/brand",
"type": "object",
"title": "The Brand Schema",
"required": [
"primary",
"secondary",
"tertiary"
],
"properties": {
"primary": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/colors/properties/brand/properties/primary",
"type": "string",
"title": "The Primary Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"secondary": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/colors/properties/brand/properties/secondary",
"type": "string",
"title": "The Secondary Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"tertiary": {
"$id": "#/properties/typo3/properties/instances/items/properties/frontend/properties/colors/properties/brand/properties/tertiary",
"type": "string",
"title": "The Tertiary Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
}
}
}
}
},
"settings": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings",
"type": "object",
"title": "The Settings Schema",
"required": [
"header",
"content"
],
"properties": {
"header": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header",
"type": "object",
"title": "The Header Schema",
"required": [
"variant",
"fixed",
"navigation",
"logo",
"mobile"
],
"properties": {
"variant": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/variant",
"type": "string",
"title": "The Variant Schema",
"default": "",
"examples": [
"Templates/Standard"
],
"pattern": "^(.*)$"
},
"fixed": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/fixed",
"type": "object",
"title": "The Fixed Schema",
"required": [
"selected",
"animated"
],
"properties": {
"selected": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/fixed/properties/selected",
"type": "boolean",
"title": "The Selected Schema",
"default": false,
"examples": [
false
]
},
"animated": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/fixed/properties/animated",
"type": "boolean",
"title": "The Animated Schema",
"default": false,
"examples": [
false
]
}
}
},
"navigation": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/navigation",
"type": "object",
"title": "The Navigation Schema",
"required": [
"meta",
"main"
],
"properties": {
"meta": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/navigation/properties/meta",
"type": "object",
"title": "The Meta Schema",
"required": [
"display",
"height"
],
"properties": {
"display": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/navigation/properties/meta/properties/display",
"type": "boolean",
"title": "The Display Schema",
"default": false,
"examples": [
true
]
},
"height": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/navigation/properties/meta/properties/height",
"type": "string",
"title": "The Height Schema",
"default": "",
"examples": [
"80px"
],
"pattern": "^(.*)$"
}
}
},
"main": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/navigation/properties/main",
"type": "object",
"title": "The Main Schema",
"required": [
"itemPadding"
],
"properties": {
"itemPadding": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/navigation/properties/main/properties/itemPadding",
"type": "string",
"title": "The Itempadding Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
}
}
},
"logo": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/logo",
"type": "object",
"title": "The Logo Schema",
"required": [
"size",
"padding"
],
"properties": {
"size": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/logo/properties/size",
"type": "object",
"title": "The Size Schema",
"required": [
"width",
"height"
],
"properties": {
"width": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/logo/properties/size/properties/width",
"type": "string",
"title": "The Width Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
},
"height": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/logo/properties/size/properties/height",
"type": "string",
"title": "The Height Schema",
"default": "",
"examples": [
"120px"
],
"pattern": "^(.*)$"
}
}
},
"padding": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/logo/properties/padding",
"type": "string",
"title": "The Padding Schema",
"default": "",
"examples": [
""
],
"pattern": "^(.*)$"
}
}
},
"mobile": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/mobile",
"type": "object",
"title": "The Mobile Schema",
"required": [
"searchInHeader",
"contactInHeader",
"loginInHeader",
"langInHeader"
],
"properties": {
"searchInHeader": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/mobile/properties/searchInHeader",
"type": "boolean",
"title": "The Searchinheader Schema",
"default": false,
"examples": [
true
]
},
"contactInHeader": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/mobile/properties/contactInHeader",
"type": "boolean",
"title": "The Contactinheader Schema",
"default": false,
"examples": [
true
]
},
"loginInHeader": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/mobile/properties/loginInHeader",
"type": "boolean",
"title": "The Logininheader Schema",
"default": false,
"examples": [
true
]
},
"langInHeader": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/header/properties/mobile/properties/langInHeader",
"type": "boolean",
"title": "The Langinheader Schema",
"default": false,
"examples": [
true
]
}
}
}
}
},
"content": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/content",
"type": "object",
"title": "The Content Schema",
"required": [
"variant",
"backToTop"
],
"properties": {
"variant": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/content/properties/variant",
"type": "string",
"title": "The Variant Schema",
"default": "",
"examples": [
"Content-100.html"
],
"pattern": "^(.*)$"
},
"backToTop": {
"$id": "#/properties/typo3/properties/instances/items/properties/settings/properties/content/properties/backToTop",
"type": "boolean",
"title": "The Backtotop Schema",
"default": false,
"examples": [
true
]
}
}
}
}
}
}
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment