mirror of https://github.com/Lissy93/dashy.git
Converted schema from JavaScript into JSON
This commit is contained in:
parent
9bdc960799
commit
0e86d0dbfb
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
import VJsoneditor from 'v-jsoneditor';
|
import VJsoneditor from 'v-jsoneditor';
|
||||||
import { localStorageKeys } from '@/utils/defaults';
|
import { localStorageKeys } from '@/utils/defaults';
|
||||||
import configSchema from '@/utils/ConfigSchema';
|
import configSchema from '@/utils/ConfigSchema.json';
|
||||||
import Ajv from 'ajv7';
|
import Ajv from 'ajv7';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
@ -1,158 +0,0 @@
|
||||||
---
|
|
||||||
pageInfo:
|
|
||||||
title: Hello World
|
|
||||||
description: 'This is a demo'
|
|
||||||
sections:
|
|
||||||
- name: Firewall
|
|
||||||
items:
|
|
||||||
- title: OPNsense
|
|
||||||
description: Firewall Central Management
|
|
||||||
icon: networking/opnsense.png
|
|
||||||
target: iframe
|
|
||||||
url: https://192.168.1.1
|
|
||||||
- title: NetData
|
|
||||||
description: System resource usage on firewall
|
|
||||||
icon: networking/netdata.png
|
|
||||||
url: http://192.168.1.1:19999/
|
|
||||||
- title: MalTrail
|
|
||||||
description: Malicious traffic detection system
|
|
||||||
icon: networking/maltrail.png
|
|
||||||
url: http://192.168.1.1:8338
|
|
||||||
- title: Ntopng
|
|
||||||
description: Network traffic probe and network use monitor
|
|
||||||
icon: networking/ntop.png
|
|
||||||
url: http://192.168.1.1:3001
|
|
||||||
- title: Sensei
|
|
||||||
description: Additional data features
|
|
||||||
icon: networking/sensei.png
|
|
||||||
url: https://192.168.1.1/ui/sensei/
|
|
||||||
- title: Monit
|
|
||||||
description: Status of firewall system alerts
|
|
||||||
icon: networking/monit.png
|
|
||||||
url: https://192.168.1.1/ui/monit/status
|
|
||||||
- title: Firewall Logs
|
|
||||||
description: Real-time view of firewall data and logs
|
|
||||||
icon: networking/logs.png
|
|
||||||
url: https://192.168.1.1/ui/diagnostics/firewall/log
|
|
||||||
- title: WireGuard
|
|
||||||
description: Manage WireGuard client and server on firewall
|
|
||||||
icon: networking/wireguard.png
|
|
||||||
url: https://192.168.1.1/ui/wireguard/general
|
|
||||||
- name: DNS Device
|
|
||||||
displayData:
|
|
||||||
collapsed: false
|
|
||||||
rows: 2
|
|
||||||
items:
|
|
||||||
- title: Pi-Hole
|
|
||||||
description: DNS settings for ad & tracker blocking
|
|
||||||
icon: networking/pihole.png
|
|
||||||
url: http://192.168.130.2/admin
|
|
||||||
- title: PiAlert
|
|
||||||
description: Presence monitoring and ARP scanning
|
|
||||||
icon: networking/pialert.png
|
|
||||||
url: http://192.168.130.2/pialert/
|
|
||||||
- title: SmokePing
|
|
||||||
description: Network latency monitoring
|
|
||||||
icon: networking/smokeping.png
|
|
||||||
url: http://192.168.130.2:8086/
|
|
||||||
- title: StatPing
|
|
||||||
description: Up-time monitoring for local service
|
|
||||||
icon: networking/statping.png
|
|
||||||
url: http://192.168.130.2:8083/
|
|
||||||
- title: LibreSpeed
|
|
||||||
description: Local network speed and latency test
|
|
||||||
icon: networking/librespeed.png
|
|
||||||
url: http://192.168.130.2:49154/
|
|
||||||
- title: NetData
|
|
||||||
description: Real-time system resource usage
|
|
||||||
icon: networking/netdata.png
|
|
||||||
url: http://192.168.130.2:19999
|
|
||||||
- title: Portainer
|
|
||||||
description: Docker container management
|
|
||||||
icon: networking/portainer.png
|
|
||||||
url: http://192.168.130.2:9000/
|
|
||||||
- title: cAdvisor
|
|
||||||
description: Container monitoring
|
|
||||||
icon: networking/cadvisor.png
|
|
||||||
url: http://192.168.130.2:8084/
|
|
||||||
- title: Glances
|
|
||||||
description: Simple resource usage
|
|
||||||
icon: networking/glances.png
|
|
||||||
url: http://192.168.130.2:61208
|
|
||||||
- title: Dozzle
|
|
||||||
description: Docker container web log viewer
|
|
||||||
icon: networking/dozzle.png
|
|
||||||
url: http://192.168.130.2:8093
|
|
||||||
- title: Prometheus
|
|
||||||
description: System Statistics Aggregation with PromQL
|
|
||||||
icon: networking/prometheus.png
|
|
||||||
url: http://192.168.130.2:8090/
|
|
||||||
- title: Grafana
|
|
||||||
description: Data visualised on dashboards
|
|
||||||
icon: networking/grafana.png
|
|
||||||
url: http://192.168.130.2:8091/
|
|
||||||
- name: External Services
|
|
||||||
items:
|
|
||||||
- title: DuckDNS
|
|
||||||
description: Dynamic DNS for fixed public IP
|
|
||||||
icon: networking/duckdns.png
|
|
||||||
url: https://www.duckdns.org/
|
|
||||||
- title: BorgBase
|
|
||||||
description: Off-site system Borg backups
|
|
||||||
icon: networking/borgbase.png
|
|
||||||
url: https://www.borgbase.com/repositories
|
|
||||||
- title: Mullvad
|
|
||||||
description: Hosted VPN provider
|
|
||||||
icon: networking/mullvad.png
|
|
||||||
url: https://mullvad.net/en/account/
|
|
||||||
- title: ZeroTier
|
|
||||||
description: Secure networks between devices
|
|
||||||
icon: networking/zeroteir.png
|
|
||||||
url: https://my.zerotier.com/
|
|
||||||
- title: HealthChecks
|
|
||||||
description: Cron Job Monitoring
|
|
||||||
icon: networking/healthchecks.png
|
|
||||||
url: https://healthchecks.io/checks/
|
|
||||||
- title: ISP - Vodafone
|
|
||||||
description: Broadband internet provider
|
|
||||||
icon: networking/vodafone.png
|
|
||||||
url: https://myaccount.vodafone.co.uk/
|
|
||||||
- name: Other Devices
|
|
||||||
items:
|
|
||||||
- title: Modem
|
|
||||||
description: ISP Router Modem Combo
|
|
||||||
icon: ''
|
|
||||||
url: http://192.168.1.5
|
|
||||||
- title: Wireless Access Point
|
|
||||||
description: View clients connected to WiFi
|
|
||||||
icon: ''
|
|
||||||
url: http://192.168.1.109/info.php
|
|
||||||
- title: Fing
|
|
||||||
description: Monitor connectivity issues, ISP quality, health checks and troubleshooting
|
|
||||||
provider: Fing
|
|
||||||
icon: ''
|
|
||||||
url: https://app.fing.com/
|
|
||||||
- title: Switch
|
|
||||||
description: Manage VLANs on Ubiquity Ethernet switch
|
|
||||||
icon: ''
|
|
||||||
url: "#"
|
|
||||||
- name: External Utilities
|
|
||||||
displayData:
|
|
||||||
collapsed: true
|
|
||||||
items:
|
|
||||||
- title: Public IP
|
|
||||||
description: Check public IP and associated data
|
|
||||||
icon: ''
|
|
||||||
url: https://www.whatismyip.com/
|
|
||||||
- title: Who Is Lookup
|
|
||||||
description: Check ICAN info for a given IP address or domain
|
|
||||||
icon: ''
|
|
||||||
url: https://whois.domaintools.com/
|
|
||||||
- title: Speed Test
|
|
||||||
description: Upload + download speeds and latency
|
|
||||||
icon: ''
|
|
||||||
url: https://speed.cloudflare.com/
|
|
||||||
- title: Mullvad Check
|
|
||||||
description: Confirms a secure connection to Mullvad's WireGuard servers
|
|
||||||
icon: ''
|
|
||||||
url: https://mullvad.net/check
|
|
|
@ -12,7 +12,6 @@
|
||||||
--warning: #f6f000;
|
--warning: #f6f000;
|
||||||
--danger: #f80363;
|
--danger: #f80363;
|
||||||
--neutral: #272f4d;
|
--neutral: #272f4d;
|
||||||
|
|
||||||
--white: #fff;
|
--white: #fff;
|
||||||
--black: #000;
|
--black: #000;
|
||||||
|
|
||||||
|
|
|
@ -1,217 +0,0 @@
|
||||||
/**
|
|
||||||
* This is the schema for the main app configuration (usually ./public/conf.yml)
|
|
||||||
* It enables the users data to be validated when making changes,
|
|
||||||
* and detailed warnings shown, to avoid any unexpected errors or issues
|
|
||||||
*/
|
|
||||||
module.exports = {
|
|
||||||
type: 'object',
|
|
||||||
required: ['sections'],
|
|
||||||
additionalProperties: false,
|
|
||||||
properties: {
|
|
||||||
|
|
||||||
/* Page Info */
|
|
||||||
pageInfo: {
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
title: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'Title and heading for the app',
|
|
||||||
},
|
|
||||||
description: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'Sub-title, displayed in header',
|
|
||||||
},
|
|
||||||
navLinks: {
|
|
||||||
type: 'array',
|
|
||||||
maxItems: 6,
|
|
||||||
description: 'Quick access links, displayed in header',
|
|
||||||
items: {
|
|
||||||
type: 'object',
|
|
||||||
additionalProperties: false,
|
|
||||||
required: ['title', 'path'],
|
|
||||||
properties: {
|
|
||||||
title: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
path: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
footerText: { type: 'string' },
|
|
||||||
},
|
|
||||||
required: ['title'],
|
|
||||||
additionalProperties: false,
|
|
||||||
},
|
|
||||||
|
|
||||||
/* App Config */
|
|
||||||
appConfig: {
|
|
||||||
type: 'object',
|
|
||||||
description: 'Application configuration',
|
|
||||||
properties: {
|
|
||||||
backgroundImg: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'A URL to an image asset to be displayed as background',
|
|
||||||
},
|
|
||||||
theme: {
|
|
||||||
type: 'string',
|
|
||||||
default: 'Callisto',
|
|
||||||
description: 'A theme to be applied by default on first load',
|
|
||||||
},
|
|
||||||
enableFontAwesome: {
|
|
||||||
type: 'boolean',
|
|
||||||
default: true,
|
|
||||||
description: 'Should load font-awesome assets',
|
|
||||||
},
|
|
||||||
fontAwesomeKey: {
|
|
||||||
type: 'string',
|
|
||||||
pattern: '^[a-z0-9]{10}$',
|
|
||||||
description: 'API key for font-awesome',
|
|
||||||
},
|
|
||||||
cssThemes: {
|
|
||||||
type: 'array',
|
|
||||||
description: 'Theme names to be added to the dropdown',
|
|
||||||
items: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
externalStyleSheet: {
|
|
||||||
description: 'URL or URLs of external stylesheets to add to dropdown/ load',
|
|
||||||
type: [
|
|
||||||
'string', 'array',
|
|
||||||
],
|
|
||||||
items: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
customCss: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'Any custom CSS overides, must be minified',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
additionalProperties: false,
|
|
||||||
},
|
|
||||||
|
|
||||||
/* Sections */
|
|
||||||
sections: {
|
|
||||||
type: 'array',
|
|
||||||
description: 'Array of sections, containing items',
|
|
||||||
items: {
|
|
||||||
type: 'object',
|
|
||||||
required: ['name', 'items'],
|
|
||||||
additionalProperties: false,
|
|
||||||
properties: {
|
|
||||||
name: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'Title/ heading for a section',
|
|
||||||
},
|
|
||||||
icon: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'Icon will be displayed next to title',
|
|
||||||
},
|
|
||||||
/* Section Display Data */
|
|
||||||
displayData: {
|
|
||||||
type: 'object',
|
|
||||||
additionalProperties: false,
|
|
||||||
description: 'Optional meta data for customizing a section',
|
|
||||||
properties: {
|
|
||||||
collapsed: {
|
|
||||||
type: 'boolean',
|
|
||||||
default: false,
|
|
||||||
description: 'If true, section needs to be clicked to open',
|
|
||||||
},
|
|
||||||
color: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'Hex code, or HTML color for section fill',
|
|
||||||
},
|
|
||||||
customStyles: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'CSS overides for section container',
|
|
||||||
},
|
|
||||||
itemSize: {
|
|
||||||
enum: ['small', 'medium', 'large'],
|
|
||||||
default: 'medium',
|
|
||||||
description: 'Size of items within the section',
|
|
||||||
},
|
|
||||||
rows: {
|
|
||||||
type: 'number',
|
|
||||||
minimum: 1,
|
|
||||||
maximum: 5,
|
|
||||||
default: 1,
|
|
||||||
description: 'The amount of space that the section spans vertically',
|
|
||||||
},
|
|
||||||
cols: {
|
|
||||||
type: 'number',
|
|
||||||
minimum: 1,
|
|
||||||
maximum: 5,
|
|
||||||
default: 1,
|
|
||||||
description: 'The amount of space that the section spans horizontally',
|
|
||||||
},
|
|
||||||
layout: {
|
|
||||||
enum: ['grid', 'auto'],
|
|
||||||
default: 'auto',
|
|
||||||
description: 'If set to grid, items have uniform width, and itemCount can be set',
|
|
||||||
},
|
|
||||||
itemCountX: {
|
|
||||||
type: 'number',
|
|
||||||
minimum: 1,
|
|
||||||
maximum: 12,
|
|
||||||
description: 'Number of items per column',
|
|
||||||
},
|
|
||||||
itemCountY: {
|
|
||||||
type: 'number',
|
|
||||||
minimum: 1,
|
|
||||||
maximum: 12,
|
|
||||||
description: 'Number of items per row',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
/* Items within a section */
|
|
||||||
items: {
|
|
||||||
type: 'array',
|
|
||||||
description: 'Array of items to display with a section',
|
|
||||||
items: {
|
|
||||||
type: 'object',
|
|
||||||
additionalProperties: false,
|
|
||||||
required: ['title'],
|
|
||||||
properties: {
|
|
||||||
title: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'Text shown on the item',
|
|
||||||
},
|
|
||||||
description: {
|
|
||||||
type: 'string',
|
|
||||||
nullable: true,
|
|
||||||
description: 'Short description, shown on hover or in a tooltip',
|
|
||||||
},
|
|
||||||
icon: {
|
|
||||||
type: 'string',
|
|
||||||
nullable: true,
|
|
||||||
description: 'An icon, either as a font-awesome identifier, local or remote URL, or auto-fetched favicon',
|
|
||||||
},
|
|
||||||
url: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'The destination to navigate to when item is clicked',
|
|
||||||
},
|
|
||||||
target: {
|
|
||||||
enum: ['newtab', 'sametab', 'iframe'],
|
|
||||||
default: 'newtab',
|
|
||||||
description: 'Opening method, when item is clicked',
|
|
||||||
},
|
|
||||||
color: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'A custom fill color of the item',
|
|
||||||
},
|
|
||||||
provider: {
|
|
||||||
type: 'string',
|
|
||||||
description: 'Provider name, e.g. Microsoft',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -0,0 +1,230 @@
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"sections"
|
||||||
|
],
|
||||||
|
"additionalProperties": false,
|
||||||
|
"properties": {
|
||||||
|
"pageInfo": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"title": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Title and heading for the app"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Sub-title, displayed in header"
|
||||||
|
},
|
||||||
|
"navLinks": {
|
||||||
|
"type": "array",
|
||||||
|
"maxItems": 6,
|
||||||
|
"description": "Quick access links, displayed in header",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [
|
||||||
|
"title",
|
||||||
|
"path"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"title": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"path": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"footerText": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"title"
|
||||||
|
],
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
"appConfig": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Application configuration",
|
||||||
|
"properties": {
|
||||||
|
"backgroundImg": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A URL to an image asset to be displayed as background"
|
||||||
|
},
|
||||||
|
"theme": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "Callisto",
|
||||||
|
"description": "A theme to be applied by default on first load"
|
||||||
|
},
|
||||||
|
"enableFontAwesome": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": true,
|
||||||
|
"description": "Should load font-awesome assets"
|
||||||
|
},
|
||||||
|
"fontAwesomeKey": {
|
||||||
|
"type": "string",
|
||||||
|
"pattern": "^[a-z0-9]{10}$",
|
||||||
|
"description": "API key for font-awesome"
|
||||||
|
},
|
||||||
|
"cssThemes": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Theme names to be added to the dropdown",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"externalStyleSheet": {
|
||||||
|
"description": "URL or URLs of external stylesheets to add to dropdown/ load",
|
||||||
|
"type": [
|
||||||
|
"string",
|
||||||
|
"array"
|
||||||
|
],
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"customCss": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Any custom CSS overides, must be minified"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
"sections": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Array of sections, containing items",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"name",
|
||||||
|
"items"
|
||||||
|
],
|
||||||
|
"additionalProperties": false,
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Title/ heading for a section"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Icon will be displayed next to title"
|
||||||
|
},
|
||||||
|
"displayData": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"description": "Optional meta data for customizing a section",
|
||||||
|
"properties": {
|
||||||
|
"collapsed": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "If true, section needs to be clicked to open"
|
||||||
|
},
|
||||||
|
"color": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Hex code, or HTML color for section fill"
|
||||||
|
},
|
||||||
|
"customStyles": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "CSS overides for section container"
|
||||||
|
},
|
||||||
|
"itemSize": {
|
||||||
|
"enum": [
|
||||||
|
"small",
|
||||||
|
"medium",
|
||||||
|
"large"
|
||||||
|
],
|
||||||
|
"default": "medium",
|
||||||
|
"description": "Size of items within the section"
|
||||||
|
},
|
||||||
|
"rows": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 5,
|
||||||
|
"default": 1,
|
||||||
|
"description": "The amount of space that the section spans vertically"
|
||||||
|
},
|
||||||
|
"cols": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 5,
|
||||||
|
"default": 1,
|
||||||
|
"description": "The amount of space that the section spans horizontally"
|
||||||
|
},
|
||||||
|
"layout": {
|
||||||
|
"enum": [
|
||||||
|
"grid",
|
||||||
|
"auto"
|
||||||
|
],
|
||||||
|
"default": "auto",
|
||||||
|
"description": "If set to grid, items have uniform width, and itemCount can be set"
|
||||||
|
},
|
||||||
|
"itemCountX": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 12,
|
||||||
|
"description": "Number of items per column"
|
||||||
|
},
|
||||||
|
"itemCountY": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 12,
|
||||||
|
"description": "Number of items per row"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"items": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Array of items to display with a section",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [
|
||||||
|
"title"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"title": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Text shown on the item"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string",
|
||||||
|
"nullable": true,
|
||||||
|
"description": "Short description, shown on hover or in a tooltip"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"type": "string",
|
||||||
|
"nullable": true,
|
||||||
|
"description": "An icon, either as a font-awesome identifier, local or remote URL, or auto-fetched favicon"
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The destination to navigate to when item is clicked"
|
||||||
|
},
|
||||||
|
"target": {
|
||||||
|
"enum": [
|
||||||
|
"newtab",
|
||||||
|
"sametab",
|
||||||
|
"iframe"
|
||||||
|
],
|
||||||
|
"default": "newtab",
|
||||||
|
"description": "Opening method, when item is clicked"
|
||||||
|
},
|
||||||
|
"color": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "A custom fill color of the item"
|
||||||
|
},
|
||||||
|
"provider": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Provider name, e.g. Microsoft"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,7 +2,7 @@ const Ajv = require('ajv');
|
||||||
const yaml = require('js-yaml');
|
const yaml = require('js-yaml');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
|
||||||
const schema = require('./ConfigSchema');
|
const schema = require('./ConfigSchema.json');
|
||||||
|
|
||||||
const validatorOptions = {
|
const validatorOptions = {
|
||||||
strict: true,
|
strict: true,
|
||||||
|
|
Loading…
Reference in New Issue