labfy-investigation/data/osint_tools.schema.json
2026-07-18 09:27:07 +02:00

503 lines
11 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://labfytools.com/schemas/osint-tools.schema.json",
"title": "Labfy Investigation OSINT Tool Inventory",
"description": "Schéma de qualification des outils OSINT intégrables à Labfy Investigation.",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"tools"
],
"properties": {
"schema_version": {
"type": "string",
"const": "1.0.0"
},
"tools": {
"type": "array",
"items": {
"$ref": "#/$defs/tool"
}
}
},
"$defs": {
"ubuntu_support": {
"type": "object",
"additionalProperties": false,
"required": [
"supported",
"official_packages",
"install_methods",
"tested_versions",
"notes"
],
"properties": {
"supported": {
"type": "boolean"
},
"official_packages": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"install_methods": {
"type": "array",
"items": {
"enum": [
"APT",
"DEB",
"PIPX",
"PYTHON_VENV",
"BINARY_RELEASE",
"SOURCE_BUILD",
"CONTAINER_ROOTLESS",
"MANUAL"
]
},
"uniqueItems": true
},
"minimum_version": {
"type": [
"string",
"null"
]
},
"tested_versions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"notes": {
"type": "string"
}
}
},
"arch_support": {
"type": "object",
"additionalProperties": false,
"required": [
"supported",
"official_packages",
"aur_packages",
"install_methods",
"tested_versions",
"notes"
],
"properties": {
"supported": {
"type": "boolean"
},
"official_packages": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"aur_packages": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"install_methods": {
"type": "array",
"items": {
"enum": [
"PACMAN",
"AUR",
"PIPX",
"PYTHON_VENV",
"BINARY_RELEASE",
"SOURCE_BUILD",
"CONTAINER_ROOTLESS",
"MANUAL"
]
},
"uniqueItems": true
},
"tested_versions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"notes": {
"type": "string"
}
}
},
"tool": {
"type": "object",
"additionalProperties": false,
"required": [
"identifier",
"name",
"repository",
"homepage",
"publisher",
"category",
"subcategories",
"description",
"license",
"license_verified",
"open_source_status",
"latest_release",
"last_activity",
"primary_language",
"platforms",
"source_build_supported",
"runtime_dependencies",
"input_types",
"output_formats",
"supports_json",
"supports_csv",
"supports_stdout",
"supports_file_output",
"requires_account",
"requires_api_key",
"requires_paid_service",
"network_activity",
"collection_mode",
"authentication_mode",
"rate_limit_risk",
"terms_of_service_risk",
"personal_data_risk",
"false_positive_risk",
"evidentiary_value",
"reproducibility",
"tool_version_command",
"integration_mode",
"integration_priority",
"legal_status",
"maintenance_status",
"decision",
"decision_reason",
"score",
"notes",
"reviewed_at",
"reviewed_by"
],
"properties": {
"identifier": {
"type": "string",
"pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
},
"name": {
"type": "string",
"minLength": 1
},
"repository": {
"type": [
"string",
"null"
]
},
"homepage": {
"type": [
"string",
"null"
]
},
"publisher": {
"type": "string",
"minLength": 1
},
"category": {
"type": "string",
"minLength": 1
},
"subcategories": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"description": {
"type": "string",
"minLength": 1
},
"license": {
"type": [
"string",
"null"
]
},
"license_verified": {
"type": "boolean"
},
"open_source_status": {
"enum": [
"OPEN_SOURCE",
"SOURCE_AVAILABLE",
"OPEN_CLIENT_CLOSED_SERVICE",
"CLOSED_SOURCE",
"UNKNOWN"
]
},
"latest_release": {
"type": [
"string",
"null"
]
},
"last_activity": {
"type": [
"string",
"null"
],
"format": "date"
},
"primary_language": {
"type": [
"string",
"null"
]
},
"platforms": {
"type": "object",
"additionalProperties": false,
"required": [
"ubuntu",
"arch"
],
"properties": {
"ubuntu": {
"$ref": "#/$defs/ubuntu_support"
},
"arch": {
"$ref": "#/$defs/arch_support"
}
}
},
"source_build_supported": {
"type": "boolean"
},
"runtime_dependencies": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"input_types": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"output_formats": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"supports_json": {
"type": "boolean"
},
"supports_csv": {
"type": "boolean"
},
"supports_stdout": {
"type": "boolean"
},
"supports_file_output": {
"type": "boolean"
},
"requires_account": {
"type": "boolean"
},
"requires_api_key": {
"type": "boolean"
},
"requires_paid_service": {
"type": "boolean"
},
"network_activity": {
"type": "string",
"minLength": 1
},
"collection_mode": {
"enum": [
"LOCAL_ONLY",
"PASSIVE_REMOTE",
"REMOTE_PUBLIC_REQUESTS",
"AUTHENTICATED_PUBLIC_API",
"ACTIVE_LOW_IMPACT",
"ACTIVE_INTRUSIVE",
"MIXED"
]
},
"authentication_mode": {
"enum": [
"NONE",
"OPTIONAL_ACCOUNT",
"REQUIRED_ACCOUNT",
"API_KEY",
"COOKIE",
"OAUTH",
"MIXED"
]
},
"rate_limit_risk": {
"enum": [
"NONE",
"LOW",
"MEDIUM",
"HIGH",
"UNKNOWN"
]
},
"terms_of_service_risk": {
"enum": [
"NONE",
"LOW",
"MEDIUM",
"HIGH",
"UNKNOWN"
]
},
"personal_data_risk": {
"enum": [
"NONE",
"LOW",
"MEDIUM",
"HIGH",
"UNKNOWN"
]
},
"false_positive_risk": {
"enum": [
"NONE",
"LOW",
"MEDIUM",
"HIGH",
"UNKNOWN"
]
},
"evidentiary_value": {
"enum": [
"LOW",
"MEDIUM",
"HIGH",
"CONTEXT_ONLY",
"UNKNOWN"
]
},
"reproducibility": {
"enum": [
"LOW",
"MEDIUM",
"HIGH",
"UNKNOWN"
]
},
"tool_version_command": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"integration_mode": {
"enum": [
"DIRECT_CLI",
"DIRECT_LIBRARY",
"LOCAL_SERVICE",
"REMOTE_API",
"BROWSER_ASSISTED",
"EXPORT_IMPORT",
"REFERENCE_ONLY",
"REJECTED"
]
},
"integration_priority": {
"enum": [
"P0",
"P1",
"P2",
"P3",
"BACKLOG",
"REJECTED"
]
},
"legal_status": {
"enum": [
"APPROVED_PASSIVE",
"APPROVED_WITH_CONFIGURATION",
"MANUAL_REVIEW_REQUIRED",
"RESTRICTED_TO_AUTHORIZED_TARGETS",
"REJECTED",
"UNKNOWN"
]
},
"maintenance_status": {
"enum": [
"ACTIVE",
"MAINTAINED",
"LOW_ACTIVITY",
"UNMAINTAINED",
"ARCHIVED",
"UNKNOWN"
]
},
"decision": {
"enum": [
"INTEGRATE",
"PROTOTYPE",
"MONITOR",
"MANUAL_ONLY",
"REJECT",
"UNREVIEWED"
]
},
"decision_reason": {
"type": "string"
},
"score": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 100
},
"notes": {
"type": "string"
},
"reviewed_at": {
"type": [
"string",
"null"
],
"format": "date"
},
"reviewed_by": {
"type": [
"string",
"null"
]
}
}
}
}
}