Merge pull request #3784 from nurbek91/Validationtest

Fix validation error
main
Elbert Alias 4 years ago committed by GitHub
commit 0fe2821e91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -223,6 +223,9 @@
}, },
"icon": { "icon": {
"$ref": "#/definitions/non-empty-non-blank-string" "$ref": "#/definitions/non-empty-non-blank-string"
},
"xhr": {
"$ref": "#/definitions/non-empty-non-blank-string"
} }
} }
} }

@ -0,0 +1,234 @@
{
"title": "Wappalyzer schema",
"definitions": {
"non-empty-non-blank-string": {
"type": "string",
"pattern": "^(?!\\s*$).+"
}
},
"type": "object",
"additionalProperties": false,
"required": ["technologies", "categories"],
"properties": {
"$schema": {
"type": "string"
},
"categories": {
"type": "object",
"minProperties": 64,
"additionalProperties": false,
"patternProperties": {
"^[0-9]+$": {
"type": "object",
"properties": {
"priority": {
"type": "number"
},
"name": {
"type": "string"
}
}
}
}
},
"technologies": {
"type": "object",
"additionalProperties": {
"additionalProperties": false,
"required": ["cats","website"],
"properties": {
"description": {
"type": "string",
"pattern": "^.{0,500}$"
},
"oss": {
"type": "boolean"
},
"saas": {
"type": "boolean"
},
"pricing": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(low|mid|high|freemium|poa|payg|onetime|recurring)$"
}
},
"cats": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 1
},
"cpe": {
"$ref": "#/definitions/non-empty-non-blank-string"
},
"cookies": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^.+$": {
},
"additionalProperties": {
"type": "string"
}
}
},
"js": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^.+$": {
},
"additionalProperties": {
"type": "string"
}
}
},
"dom": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^.+$": {
}
}
},
"dns": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^.+$": {
}
}
},
"headers": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^.+$": {
},
"additionalProperties": {
"type": "string"
}
}
},
"html": {
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/definitions/non-empty-non-blank-string"
}
},
{
"$ref": "#/definitions/non-empty-non-blank-string"
}
]
},
"css": {
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/definitions/non-empty-non-blank-string"
}
},
{
"$ref": "#/definitions/non-empty-non-blank-string"
}
]
},
"robots": {
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/definitions/non-empty-non-blank-string"
}
},
{
"$ref": "#/definitions/non-empty-non-blank-string"
}
]
},
"certIssuer": {
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/definitions/non-empty-non-blank-string"
}
},
{
"$ref": "#/definitions/non-empty-non-blank-string"
}
]
},
"excludes": {
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/definitions/non-empty-non-blank-string"
}
},
{
"$ref": "#/definitions/non-empty-non-blank-string"
}
]
},
"implies": {
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/definitions/non-empty-non-blank-string"
}
},
{
"$ref": "#/definitions/non-empty-non-blank-string"
}
]
},
"meta": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^.+$": {
},
"additionalProperties": {
"type": "string"
}
}
},
"scripts": {
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/definitions/non-empty-non-blank-string"
}
},
{
"$ref": "#/definitions/non-empty-non-blank-string"
}
]
},
"url": {
"$ref": "#/definitions/non-empty-non-blank-string"
},
"website": {
"$ref": "#/definitions/non-empty-non-blank-string"
},
"icon": {
"$ref": "#/definitions/non-empty-non-blank-string"
},
"xhr": {
"$ref": "#/definitions/non-empty-non-blank-string"
}
}
}
}
}
}

@ -93,5 +93,6 @@
"categoryName72": { "message": "Appointment scheduling" }, "categoryName72": { "message": "Appointment scheduling" },
"categoryName73": { "message": "Surveys" }, "categoryName73": { "message": "Surveys" },
"categoryName74": { "message": "A/B testing" }, "categoryName74": { "message": "A/B testing" },
"categoryName75": { "message": "Email" } "categoryName75": { "message": "Email" },
"categoryName76": { "message": "Personalization" }
} }

@ -87,11 +87,12 @@
"categoryName66": { "message": "UI Фреймворк" }, "categoryName66": { "message": "UI Фреймворк" },
"categoryName67": { "message": "Соответствие cookie" }, "categoryName67": { "message": "Соответствие cookie" },
"categoryName68": { "message": "Доступность" }, "categoryName68": { "message": "Доступность" },
"categoryName69": { "message": "Social logins" }, "categoryName69": { "message": "Логин через социальные сети" },
"categoryName70": { "message": "SSL/TLS certificate authorities" }, "categoryName70": { "message": "SSL/TLS certificate authorities" },
"categoryName71": { "message": "Affiliate programs" }, "categoryName71": { "message": "Партнерская программы" },
"categoryName72": { "message": "Appointment scheduling" }, "categoryName72": { "message": "Сервисы расписания и бронирования" },
"categoryName73": { "message": "Surveys" }, "categoryName73": { "message": "Опросы" },
"categoryName74": { "message": "A/B testing" }, "categoryName74": { "message": "A/B тестирование" },
"categoryName75": { "message": "Email" } "categoryName75": { "message": "Email" },
"categoryName76": { "message": "Персонализация" }
} }

@ -288,6 +288,10 @@
"75": { "75": {
"name": "Email", "name": "Email",
"priority": 9 "priority": 9
},
"76": {
"name": "Personalization",
"priority": 9
} }
}, },
"technologies": { "technologies": {
@ -3713,8 +3717,7 @@
}, },
"Clerk.io": { "Clerk.io": {
"cats": [ "cats": [
10, 76
6
], ],
"description": "Clerk.io is an all-in-one ecommerce personalization platform.", "description": "Clerk.io is an all-in-one ecommerce personalization platform.",
"icon": "Clerk.io.svg", "icon": "Clerk.io.svg",
@ -5219,7 +5222,8 @@
}, },
"Dynamic Yield": { "Dynamic Yield": {
"cats": [ "cats": [
74 74,
76
], ],
"cookies": { "cookies": {
"_dy_geo": "", "_dy_geo": "",
@ -9065,7 +9069,7 @@
}, },
"Kibo Personalization": { "Kibo Personalization": {
"cats": [ "cats": [
10, 76,
74 74
], ],
"description": "Kibo Personalization is a omnichannel personalization software powered by machine learning to deliver individualized customer experiences and powered by Monetate and Certona.", "description": "Kibo Personalization is a omnichannel personalization software powered by machine learning to deliver individualized customer experiences and powered by Monetate and Certona.",
@ -11693,7 +11697,7 @@
}, },
"Nosto": { "Nosto": {
"cats": [ "cats": [
32, 76,
74 74
], ],
"description": "Nosto is an ecommerce platform providing product recommendations based on individual behavioral data.", "description": "Nosto is an ecommerce platform providing product recommendations based on individual behavioral data.",
@ -13715,7 +13719,8 @@
}, },
"Qubit": { "Qubit": {
"cats": [ "cats": [
74 74,
76
], ],
"description": "Qubit is a SaaS based persuasive personalization at scale services.", "description": "Qubit is a SaaS based persuasive personalization at scale services.",
"icon": "Qubit.png", "icon": "Qubit.png",
@ -15493,7 +15498,7 @@
6 6
], ],
"pricing": [ "pricing": [
"medium", "mid",
"recurring" "recurring"
], ],
"saas": true, "saas": true,