Files
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
2026-06-08 00:38:27 -04:00

236 lines
8.5 KiB
YAML

$schema: http://json-schema.org/draft-07/schema#
description: Json schema of main EVerest config file
$defs:
config_map:
type: object
description: >-
This is a config map. Each property specifies one simple config
option and will be validated agains the schema provided by the module's manifest
file.
patternProperties:
^[a-zA-Z_][a-zA-Z0-9_.-]*$:
description: A single config option
type:
- boolean
- integer
- number
- string
default: {}
additionalProperties: false
type: object
required:
- active_modules
additionalProperties: false
properties:
settings:
type: object
properties:
prefix:
type: string
config_file:
type: string
configs_dir:
type: string
schemas_dir:
type: string
modules_dir:
type: string
interfaces_dir:
type: string
types_dir:
type: string
errors_dir:
type: string
www_dir:
type: string
logging_config_file:
type: string
controller_port:
type: integer
controller_rpc_timeout_ms:
type: integer
mqtt_broker_socket_path:
type: string
mqtt_broker_host:
type: string
mqtt_broker_port:
type: integer
mqtt_everest_prefix:
type: string
mqtt_external_prefix:
type: string
telemetry_prefix:
type: string
telemetry_enabled:
type: boolean
validate_schema:
type: boolean
run_as_user:
type: string
forward_exceptions:
type: boolean
additionalProperties: false
active_modules:
type: object
patternProperties:
# module id
^[a-zA-Z_][a-zA-Z0-9_.-]*$:
description: This are the required properties for every module id entry
required:
- module
properties:
standalone:
description: Indicates to the manager that the module will be started standalone
type: boolean
module:
description: Module name (e.g. directory name in the modules subdirectory)
type: string
# module name
pattern: ^[a-zA-Z_][a-zA-Z0-9_-]*$
capabilities:
description: Linux capabilities required to run this module
type: array
items:
type: string
config_module:
description: Config map for the module
$ref: '#/$defs/config_map'
config_implementation:
description: List of config maps for each implementation
type: object
patternProperties:
# implementation id
^[a-zA-Z_][a-zA-Z0-9_.-]*$:
description: Config map for this implementation.
# arbitrary implementation config validated by our schema in the module manifest later on
$ref: '#/$defs/config_map'
# add empty config if not already present
default: {}
# don't allow arbitrary additional properties
additionalProperties: false
telemetry:
description: If this object is present telemetry for the module will be enabled
type: object
required:
- id
properties:
id:
description: Telemetry from modules using the same id will be grouped together
type: integer
connections:
type: object
description: >-
List of requirements: a mapping of all requirement ids listed
in the module's manifest to module_id (declared in this file) and implementation_id
(declared in manifest).
patternProperties:
# requirement id
^[a-zA-Z_][a-zA-Z0-9_.-]*$:
type: array
items:
type: object
required:
- module_id
- implementation_id
properties:
module_id:
description: module_id this requirement id maps to
type: string
# reference to module id
pattern: ^[a-zA-Z_][a-zA-Z0-9_.-]*$
implementation_id:
description: implementation_id this requirement id maps to
type: string
# reference to implementation id
pattern: ^[a-zA-Z_][a-zA-Z0-9_.-]*$
# don't allow arbitrary additional properties
additionalProperties: false
# add empty config if not already present
default: {}
# don't allow arbitrary additional properties
additionalProperties: false
mapping:
description: >-
this configures a module mapping and a list of implementations this module provides and their mapping to the 3-tier-model of charging station, evse and connector
if no mapping is provided by default this implementation is associated with the charging station
type: object
properties:
module:
type: object
properties:
evse:
description: evse this module id maps to
type: integer
connector:
description: connector this module id maps to
type: integer
# allow arbitrary additional properties for future extensions (not used at the moment)
additionalProperties: true
implementations:
type: object
patternProperties:
# implementation id
^[a-zA-Z_][a-zA-Z0-9_.-]*$:
type: object
required:
- evse
properties:
evse:
description: evse this implementation id maps to
type: integer
connector:
description: connector this implementation id maps to
type: integer
# allow arbitrary additional properties for future extensions (not used at the moment)
additionalProperties: true
# add empty config if not already present
default: {}
# don't allow arbitrary additional properties
additionalProperties: false
access:
description: >-
Access control settings for this specific module
type: object
properties:
config:
description: >-
Fine grained control about configuration access to other modules
type: object
properties:
allow_global_read:
description: Allow global read access to config items
type: boolean
allow_global_write:
description: Allow global write access to config items
type: boolean
allow_set_read_only:
description: Allow setting of readonly config items, will need a restart
type: boolean
modules:
description: Module access settings
type: object
patternProperties:
# reference to module id
^[a-zA-Z_][a-zA-Z0-9_.-]*$:
type: object
properties:
allow_read:
description: Allow read access to config items
type: boolean
allow_write:
description: Allow write access to config items
type: boolean
allow_set_read_only:
description: Allow setting of a readonly config items, will need a restart
type: boolean
additionalProperties: false
additionalProperties: false
# don't allow arbitrary additional properties
additionalProperties: false
# add empty config dict if not already present
default: {}
# don't allow arbitrary additional properties
additionalProperties: false
x-module-layout: {}