├── .gencode_hash.txt ├── .gitattributes ├── .github └── workflows │ ├── integration.yaml │ ├── release-discovery.yaml │ ├── release-udmi.yaml │ └── testing.yml ├── .gitignore ├── .gitlab-ci.yml ├── .pylintrc ├── .spellcheck.yml ├── .wordlist.txt ├── AUTHORS ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── _includes └── head-custom.html ├── agent ├── git_manager.py ├── go.sh ├── mqtt_manager.py └── udmi_agent.py ├── bin ├── augment_auth ├── augment_metadata ├── check_version ├── clean_tags ├── clone_model ├── container ├── deploy ├── diagnoser ├── fail ├── gcp_device_logs ├── gencode ├── gencode_buckets ├── gencode_categories ├── gencode_docs ├── gencode_docs_checklinks ├── gencode_docs_examples ├── gencode_java ├── gencode_python ├── gencode_root_schemas ├── gencode_seq ├── gencovg ├── gendocs.py ├── genkeys ├── git-branch-create ├── git-branch-remote ├── git-branch-status ├── git-branch-update ├── keygen ├── mapper ├── mosquctl_client ├── mosquctl_log ├── mosquctl_site ├── pagent ├── presubmit ├── pubber ├── pull_messages ├── pull_mqtt ├── pull_pubsub ├── registrar ├── reset_config ├── run_tests ├── sequencer ├── sequencer_cache ├── sequencer_report ├── set_project ├── setup_base ├── setup_ca ├── setup_chromedriver ├── start_etcd ├── start_hivemq ├── start_influx ├── start_local ├── start_mosquitto ├── start_pubsub ├── start_udmis ├── stream_device_messages ├── support ├── support_process ├── test_automapper ├── test_combos ├── test_etcd ├── test_itemcheck ├── test_itemized ├── test_mosquitto ├── test_proxy ├── test_py ├── test_pylint ├── test_redirect ├── test_regclean ├── test_registrar ├── test_registrar_e2e ├── test_runlocal ├── test_schema ├── test_sequcheck ├── test_sequencer ├── test_sequencer_plan ├── test_sequencer_report ├── test_sites ├── test_special ├── test_trace ├── test_udmis ├── test_validator ├── timestamp ├── toolrun ├── update_udmis ├── upgrade_version ├── validate_site_model_actual ├── validator └── which_venv_pip3 ├── cloud └── gcp │ ├── api.tf │ ├── auth │ └── credentials.json.template │ ├── gks.tf │ ├── main.tf.template │ ├── modules │ └── terraform-google-udmi-site │ │ ├── LICENSE │ │ ├── examples │ │ └── example.tf │ │ ├── iotcore.tf │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── pubsub.tf │ │ ├── readme.md │ │ ├── sourcerepo.tf │ │ └── variables.tf │ ├── outputs.tf │ ├── postgresql.tf │ ├── provider.tf │ ├── readme.md │ ├── setup.sh │ ├── sourcerepo.tf │ ├── storage.tf │ ├── terraform.tfvars.template │ ├── udmi-sites.tf.template │ ├── udmi.tf │ ├── variables.tf │ └── vpc.tf ├── common └── src │ ├── main │ └── java │ │ ├── com │ │ └── google │ │ │ └── udmi │ │ │ └── util │ │ │ ├── CertManager.java │ │ │ ├── CleanDateFormat.java │ │ │ ├── CommandLineOption.java │ │ │ ├── CommandLineProcessor.java │ │ │ ├── Common.java │ │ │ ├── ContextWrapper.java │ │ │ ├── DiffEntry.java │ │ │ ├── DualOutputStream.java │ │ │ ├── ErrorMap.java │ │ │ ├── ExceptionList.java │ │ │ ├── ExceptionMap.java │ │ │ ├── GeneralUtils.java │ │ │ ├── JsonUtil.java │ │ │ ├── MessageDowngrader.java │ │ │ ├── MessageUpgrader.java │ │ │ ├── MessageValidator.java │ │ │ ├── MetadataMapKeys.java │ │ │ ├── NanSerializer.java │ │ │ ├── ProperPrinter.java │ │ │ ├── SheetsOutputStream.java │ │ │ ├── SiteModel.java │ │ │ ├── SpreadsheetManager.java │ │ │ ├── ValidationError.java │ │ │ ├── ValidationException.java │ │ │ └── ValidationWarning.java │ │ └── udmi │ │ ├── lib │ │ └── ProtocolFamily.java │ │ └── util │ │ └── SchemaVersion.java │ └── test │ └── java │ └── com │ └── google │ └── udmi │ └── util │ ├── GeneralUtilsTest.java │ ├── MessageDowngraderTest.java │ ├── MessageUpgraderTest.java │ ├── SheetsOutputStreamTest.java │ └── SpreadsheetManagerTest.java ├── contrib └── mango │ ├── .gitignore │ └── mango_docker ├── docs ├── cloud │ ├── gcp │ │ ├── functions.md │ │ ├── readme.md │ │ ├── swarm.md │ │ ├── terraform.md │ │ └── udmis.md │ └── readme.md ├── device_testing │ ├── gateways_and_direct_devices.html │ ├── img │ │ ├── circle.png │ │ ├── circle_no.png │ │ ├── circle_yes.png │ │ ├── no-black.png │ │ ├── no.png │ │ ├── no.xcf │ │ ├── products │ │ │ ├── ALC_OFHI.png │ │ │ ├── FS-32.png │ │ │ ├── FW-14.png │ │ │ ├── LROC_400.png │ │ │ ├── Mango_os.png │ │ │ ├── O3-DIN-CPU.png │ │ │ ├── RED5-EDGE-634.png │ │ │ ├── RED5-PLUS-1180.png │ │ │ ├── danfoss.png │ │ │ ├── distech_apex.jpg │ │ │ ├── eBCON-2.png │ │ │ ├── enlighted.png │ │ │ ├── tridium_jace-8000.jpg │ │ │ ├── tyrrell.jpg │ │ │ └── vayandata.png │ │ ├── skip-black.png │ │ ├── skip.png │ │ ├── skip.xcf │ │ ├── untested.png │ │ ├── untested.xcf │ │ ├── yes-black.png │ │ ├── yes.png │ │ └── yes.xcf │ ├── index.html │ └── proxied_devices.html ├── guides │ ├── config_nonce.md │ ├── development.md │ ├── device_testing.md │ ├── feature_stages.md │ ├── readme.md │ ├── sequencing.md │ └── workflow.md ├── learning │ └── readme.md ├── messages │ ├── config.md │ ├── envelope.md │ ├── event.md │ ├── pointset.md │ ├── readme.md │ ├── state.md │ ├── status.md │ └── system.md ├── readme.md ├── specs │ ├── buckets.md │ ├── categories.md │ ├── compliance.md │ ├── connecting.md │ ├── discovery.md │ ├── entries.md │ ├── gateway.md │ ├── mapping.md │ ├── message_walk.md │ ├── metadata.md │ ├── mqtt_client.md │ ├── onboarding.md │ ├── point_mapping.md │ ├── provisioning.md │ ├── proxy.md │ ├── readme.md │ ├── sequences │ │ ├── config.md │ │ ├── discovery.md │ │ ├── endpoint_reconfiguration.md │ │ ├── generated.md │ │ ├── images │ │ │ ├── state.png │ │ │ ├── writeback-basic.png │ │ │ └── writeback-etag-example.png │ │ ├── readme.md │ │ └── writeback.md │ ├── site_model.md │ ├── subblocks.md │ ├── system_mode.md │ ├── tech_stack.md │ ├── topology.md │ └── validation.md ├── tech_primer.md ├── tools │ ├── bambi_service.md │ ├── exceptions.json │ ├── gcloud.md │ ├── gittools.md │ ├── keygen.md │ ├── pagent.md │ ├── project_spec.md │ ├── pubber.md │ ├── readme.md │ ├── registrar.md │ ├── reset_config.md │ ├── sequencer.md │ ├── setup.md │ ├── sharding.md │ ├── stream_to_gsheet.md │ ├── troubleshooting.md │ └── validator.md └── udmis │ ├── class_overview.md │ ├── local_docker.md │ ├── pubber_output.md │ ├── readme.md │ ├── registrar_output.md │ ├── report_output.md │ ├── sequencer_output.md │ └── udmis_output.md ├── etc ├── Bucket.java ├── Category.java ├── Level.java ├── actions_init.sh ├── category.json ├── checkstyle.xml ├── docker-compose.yml ├── external_refs.txt ├── extract_parameters.sh ├── local_tests.txt ├── mosquitto.conf ├── mosquitto_ctrl.sh ├── mosquitto_udmi.conf ├── pubber_configs │ ├── boshiot_config.json │ ├── clearblade_config.json │ ├── digitalbuilding.json │ ├── gcp_config.json │ ├── kore_config.json │ └── leverege_config.json ├── requirements.txt ├── schema.out ├── schema_extras.js ├── schema_hideme.txt ├── schema_itemized.out ├── schema_local.out ├── schema_navbar.html ├── schema_nostate.out ├── schema_readme_template.md ├── sequencer.out ├── sequencer_local.out ├── sequencer_nostate.out ├── sequencer_plan.txt ├── sequencer_report.md.template ├── shell_common.sh ├── site_configs │ ├── bos-platform-dev.json │ └── udmi-external.json ├── telegraf.conf ├── test_itemized.in ├── test_itemized.out ├── upversion.txt └── validator.out ├── gencode ├── docs │ ├── commands_discovery.html │ ├── commands_mapping.html │ ├── config.html │ ├── config_mapping.html │ ├── configuration_endpoint.html │ ├── configuration_execution.html │ ├── configuration_pod.html │ ├── configuration_pubber.html │ ├── data_template.html │ ├── events.html │ ├── events_discovery.html │ ├── events_mapping.html │ ├── events_pointset.html │ ├── events_system.html │ ├── events_udmi.html │ ├── events_validation.html │ ├── metadata.html │ ├── monitoring.html │ ├── persistent_device.html │ ├── properties.html │ ├── query_cloud.html │ ├── readme.md │ ├── schema_doc.css │ ├── schema_doc.min.js │ ├── schema_extras.js │ ├── site_metadata.html │ ├── state.html │ ├── state_mapping.html │ └── state_validation.html ├── java │ └── udmi │ │ └── schema │ │ ├── Area.java │ │ ├── Asset.java │ │ ├── Auth_provider.java │ │ ├── BasePodConfiguration.java │ │ ├── Basic.java │ │ ├── BlobBlobsetConfig.java │ │ ├── BlobBlobsetState.java │ │ ├── BlobsetConfig.java │ │ ├── BlobsetState.java │ │ ├── BridgePodConfiguration.java │ │ ├── Bucket.java │ │ ├── BuildingTranslation.java │ │ ├── CapabilityValidationState.java │ │ ├── Category.java │ │ ├── CloudConfigModel.java │ │ ├── CloudModel.java │ │ ├── CloudQuery.java │ │ ├── Common.java │ │ ├── Config.java │ │ ├── Connections.java │ │ ├── Coordinates.java │ │ ├── Credential.java │ │ ├── DeviceMappingConfig.java │ │ ├── DeviceMappingState.java │ │ ├── DevicePersistent.java │ │ ├── DeviceValidationEvents.java │ │ ├── Dimension.java │ │ ├── DiscoveryCommand.java │ │ ├── DiscoveryConfig.java │ │ ├── DiscoveryEvents.java │ │ ├── DiscoveryModel.java │ │ ├── DiscoveryState.java │ │ ├── Electricity.java │ │ ├── EndpointConfiguration.java │ │ ├── Entry.java │ │ ├── Enumerations.java │ │ ├── Envelope.java │ │ ├── Events.java │ │ ├── ExecutionConfiguration.java │ │ ├── FamilyDiscovery.java │ │ ├── FamilyDiscoveryConfig.java │ │ ├── FamilyDiscoveryModel.java │ │ ├── FamilyDiscoveryState.java │ │ ├── FamilyLocalnetConfig.java │ │ ├── FamilyLocalnetModel.java │ │ ├── FamilyLocalnetState.java │ │ ├── FeatureDiscovery.java │ │ ├── FeatureValidationState.java │ │ ├── Gas.java │ │ ├── GatewayConfig.java │ │ ├── GatewayModel.java │ │ ├── GatewayState.java │ │ ├── IotAccess.java │ │ ├── Jwt.java │ │ ├── Level.java │ │ ├── LocalnetConfig.java │ │ ├── LocalnetModel.java │ │ ├── LocalnetState.java │ │ ├── Location.java │ │ ├── MappingCommand.java │ │ ├── MappingConfig.java │ │ ├── MappingEventEntity.java │ │ ├── MappingEvents.java │ │ ├── MappingState.java │ │ ├── MessageTemplateData.java │ │ ├── Metadata.java │ │ ├── Metrics.java │ │ ├── Monitoring.java │ │ ├── MonitoringMetric.java │ │ ├── Operation.java │ │ ├── Parameters.java │ │ ├── Parent.java │ │ ├── Physical_tag.java │ │ ├── PodConfiguration.java │ │ ├── PointPointsetConfig.java │ │ ├── PointPointsetEvents.java │ │ ├── PointPointsetModel.java │ │ ├── PointPointsetState.java │ │ ├── PointsetConfig.java │ │ ├── PointsetEvents.java │ │ ├── PointsetModel.java │ │ ├── PointsetState.java │ │ ├── PointsetSummary.java │ │ ├── Position.java │ │ ├── Properties.java │ │ ├── PubberConfiguration.java │ │ ├── PubberOptions.java │ │ ├── RefDiscovery.java │ │ ├── SchemaValidationState.java │ │ ├── Scoring.java │ │ ├── SequenceValidationState.java │ │ ├── SetupUdmiConfig.java │ │ ├── SetupUdmiState.java │ │ ├── SiteLinks.java │ │ ├── SiteLocation.java │ │ ├── SiteMetadata.java │ │ ├── State.java │ │ ├── StateSystemHardware.java │ │ ├── StateSystemOperation.java │ │ ├── Structure.java │ │ ├── SystemConfig.java │ │ ├── SystemDiscoveryData.java │ │ ├── SystemEvents.java │ │ ├── SystemHardware.java │ │ ├── SystemModel.java │ │ ├── SystemState.java │ │ ├── TargetTestingModel.java │ │ ├── TestingModel.java │ │ ├── TestingSystemConfig.java │ │ ├── UdmiConfig.java │ │ ├── UdmiEvents.java │ │ ├── UdmiState.java │ │ ├── ValidationEvents.java │ │ ├── ValidationState.java │ │ ├── ValidationSummary.java │ │ ├── VirtualEquipmentLinks.java │ │ └── Water.java └── python │ └── udmi │ └── schema │ ├── __init__.py │ ├── access_iot.py │ ├── ancillary_properties.py │ ├── building_translation.py │ ├── category.py │ ├── commands_discovery.py │ ├── commands_mapping.py │ ├── common.py │ ├── config.py │ ├── config_blobset.py │ ├── config_blobset_blob.py │ ├── config_discovery.py │ ├── config_discovery_family.py │ ├── config_gateway.py │ ├── config_localnet.py │ ├── config_localnet_family.py │ ├── config_mapping.py │ ├── config_mapping_device.py │ ├── config_pointset.py │ ├── config_pointset_point.py │ ├── config_system.py │ ├── config_system_testing.py │ ├── config_udmi.py │ ├── configuration_endpoint.py │ ├── configuration_execution.py │ ├── configuration_pod.py │ ├── configuration_pod_base.py │ ├── configuration_pod_bridge.py │ ├── configuration_pubber.py │ ├── data_template.py │ ├── dimension.py │ ├── discovery_family.py │ ├── discovery_feature.py │ ├── discovery_ref.py │ ├── entry.py │ ├── envelope.py │ ├── equipment_translation.py │ ├── events.py │ ├── events_discovery.py │ ├── events_mapping.py │ ├── events_mapping_entities.py │ ├── events_mapping_entity.py │ ├── events_pointset.py │ ├── events_pointset_point.py │ ├── events_system.py │ ├── events_udmi.py │ ├── events_validation.py │ ├── events_validation_device.py │ ├── metadata.py │ ├── model_cloud.py │ ├── model_cloud_config.py │ ├── model_discovery.py │ ├── model_discovery_family.py │ ├── model_features.py │ ├── model_gateway.py │ ├── model_localnet.py │ ├── model_localnet_family.py │ ├── model_pointset.py │ ├── model_pointset_point.py │ ├── model_system.py │ ├── model_system_hardware.py │ ├── model_testing.py │ ├── model_testing_target.py │ ├── monitoring.py │ ├── monitoring_metric.py │ ├── options_pubber.py │ ├── persistent_device.py │ ├── properties.py │ ├── query_cloud.py │ ├── site_metadata.py │ ├── state.py │ ├── state_blobset.py │ ├── state_blobset_blob.py │ ├── state_discovery.py │ ├── state_discovery_family.py │ ├── state_gateway.py │ ├── state_localnet.py │ ├── state_localnet_family.py │ ├── state_mapping.py │ ├── state_mapping_device.py │ ├── state_pointset.py │ ├── state_pointset_point.py │ ├── state_system.py │ ├── state_system_hardware.py │ ├── state_system_operation.py │ ├── state_udmi.py │ ├── state_validation.py │ ├── state_validation_capability.py │ ├── state_validation_feature.py │ ├── state_validation_schema.py │ ├── state_validation_sequence.py │ └── virtual_links.py ├── misc ├── .gitignore ├── Dockerfile.misc ├── automated_sequencer │ ├── README.md │ ├── reporter │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── config.sh │ │ ├── generate_device_report │ │ ├── index_template.html │ │ ├── listener.sh │ │ └── python │ │ │ ├── device_runs.py │ │ │ ├── device_template.html │ │ │ ├── generate_report.py │ │ │ ├── merge_master.py │ │ │ ├── requirements.txt │ │ │ ├── run_metadata.py │ │ │ ├── run_results.py │ │ │ ├── template_helper.py │ │ │ └── test_result.py │ └── sequencer │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── config.sh │ │ └── entrypoint.sh ├── bambi │ └── metadata.json ├── bin │ ├── build │ └── migrate_num_id ├── discoverynode │ ├── .gitignore │ ├── README.md │ ├── bin │ │ ├── build_binary │ │ ├── install_daemon │ │ ├── run │ │ └── setup │ ├── buildenvs │ │ ├── build.sh │ │ ├── debian11.Dockerfile │ │ └── ubuntu16.Dockerfile │ ├── discoverybuilder.Dockerfile │ ├── etc │ │ └── base_config.json │ ├── samples │ │ ├── config.json │ │ ├── config_clearblade.json │ │ ├── config_localhost.json │ │ ├── sample_bacnet.py │ │ └── sample_passive.py │ ├── src │ │ ├── main.py │ │ ├── requirements.txt │ │ ├── tests │ │ │ ├── config.toml │ │ │ ├── nmaplocalhost.xml │ │ │ ├── test_discovery.py │ │ │ ├── test_integration.py │ │ │ ├── test_nmap.py │ │ │ └── test_udmi.py │ │ └── udmi │ │ │ ├── __init__.py │ │ │ ├── core.py │ │ │ ├── discovery │ │ │ ├── bacnet.py │ │ │ ├── discovery.py │ │ │ ├── nmap.py │ │ │ ├── numbers.py │ │ │ ├── passive.py │ │ │ └── utils │ │ │ │ └── nmap.py │ │ │ ├── publishers │ │ │ ├── mock_publisher.py │ │ │ ├── mqtt.py │ │ │ └── publisher.py │ │ │ └── schema │ │ │ ├── config.py │ │ │ ├── discovery_event.py │ │ │ ├── state.py │ │ │ └── util.py │ └── testing │ │ ├── docker │ │ ├── bacnet_device │ │ │ ├── Dockerfile │ │ │ ├── bacnet_server.py │ │ │ ├── build.sh │ │ │ ├── entrypoint.sh │ │ │ └── requirements.txt │ │ └── discovery_node │ │ │ ├── Dockerfile │ │ │ ├── build.sh │ │ │ └── entrypoint.sh │ │ ├── e2e │ │ ├── .gitignore │ │ ├── test_local │ │ └── test_local.py │ │ └── integration │ │ └── integration_test.sh ├── distroless_tools │ ├── Dockerfile │ └── readme.md ├── etc │ └── dummy ├── gcloud_deployment │ ├── create_reflect_credentials │ └── setup_gcp_project ├── gcloud_iot_config │ ├── README.md │ ├── deploy │ └── functions │ │ ├── index.js │ │ └── package.json ├── gcloud_iot_connection_log │ ├── README.md │ ├── deploy │ ├── functions │ │ ├── index.js │ │ └── package.json │ └── schema_iot_logs.json ├── gcloud_iot_pingreq_log │ ├── README.md │ ├── deploy │ ├── functions │ │ ├── index.js │ │ └── package.json │ ├── schema_iot_logs.json │ └── schema_messages.json ├── gcloud_messages_telemetry │ ├── README.md │ ├── deploy │ ├── functions │ │ ├── index.js │ │ └── package.json │ ├── pubber │ │ └── out │ │ │ ├── config.json │ │ │ ├── events_pointset.json │ │ │ ├── events_system.json │ │ │ ├── pubber.log │ │ │ └── state.json │ ├── schema_messages.json │ ├── schema_state.json │ └── schema_telemetry.json ├── gcloud_pubsub_mirror │ ├── README.md │ └── mirror.py ├── gcloud_state_hardware_software │ ├── README.md │ ├── deploy │ ├── functions │ │ ├── index.js │ │ └── package.json │ └── schema_state.json ├── gcloud_store_message │ ├── README.md │ ├── deploy │ └── functions │ │ ├── index.js │ │ └── package.json └── replay_validated │ ├── replay │ └── requirements.txt ├── proxy ├── Dockerfile.proxy ├── attributes.json ├── bin │ ├── deploy │ └── run ├── k8s_deployment.yaml └── pubber.json ├── pubber ├── .idea │ ├── checkstyle-idea.xml │ ├── codeStyles │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── compiler.xml │ ├── dictionaries │ │ └── peringknife.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── inspectionProfiles │ │ └── Project_Default.xml │ ├── jarRepositories.xml │ ├── libraries-with-intellij-classes.xml │ ├── misc.xml │ ├── modules.xml │ ├── modules │ │ └── datafmt.iml │ ├── runConfigurations │ │ ├── Pubber_Config.xml │ │ └── _template__of_Application.xml │ ├── uiDesigner.xml │ └── vcs.xml ├── Dockerfile.pubber ├── bin │ ├── build │ ├── publish │ ├── puller │ └── run ├── build.gradle ├── etc │ ├── Dockerfile.puller │ └── deployment.yaml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── pubber.iml ├── settings.gradle └── src │ ├── main │ └── java │ │ ├── daq │ │ └── pubber │ │ │ ├── Pubber.java │ │ │ └── impl │ │ │ ├── PubberFeatures.java │ │ │ ├── PubberManager.java │ │ │ ├── host │ │ │ ├── PubberProxyHost.java │ │ │ └── PubberPublisherHost.java │ │ │ ├── manager │ │ │ ├── PubberDeviceManager.java │ │ │ ├── PubberDiscoveryManager.java │ │ │ ├── PubberGatewayManager.java │ │ │ ├── PubberLocalnetManager.java │ │ │ ├── PubberPointsetManager.java │ │ │ └── PubberSystemManager.java │ │ │ ├── point │ │ │ ├── PubberRandomBoolean.java │ │ │ └── PubberRandomPoint.java │ │ │ └── provider │ │ │ ├── PubberBacnetProvider.java │ │ │ ├── PubberFamilyProvider.java │ │ │ ├── PubberIpProvider.java │ │ │ └── PubberVendorProvider.java │ │ └── udmi │ │ ├── lib │ │ ├── base │ │ │ ├── BasicPoint.java │ │ │ ├── GatewayError.java │ │ │ ├── ListPublisher.java │ │ │ ├── ManagerBase.java │ │ │ ├── MqttDevice.java │ │ │ └── MqttPublisher.java │ │ ├── client │ │ │ ├── host │ │ │ │ ├── ProxyHost.java │ │ │ │ └── PublisherHost.java │ │ │ └── manager │ │ │ │ ├── DeviceManager.java │ │ │ │ ├── DiscoveryManager.java │ │ │ │ ├── GatewayManager.java │ │ │ │ ├── LocalnetManager.java │ │ │ │ ├── PointsetManager.java │ │ │ │ └── SystemManager.java │ │ └── intf │ │ │ ├── AbstractPoint.java │ │ │ ├── FamilyProvider.java │ │ │ ├── ManagerHost.java │ │ │ ├── ManagerLog.java │ │ │ ├── Publisher.java │ │ │ └── SubBlockManager.java │ │ └── util │ │ └── CatchingScheduledThreadPoolExecutor.java │ └── test │ ├── configs │ └── localnet.json │ └── java │ ├── daq │ └── pubber │ │ ├── IpManagerTest.java │ │ ├── PubberTest.java │ │ └── SupportedFeaturesTest.java │ └── udmi │ └── lib │ ├── ListPublisherTest.java │ ├── MqttDeviceTest.java │ ├── MqttPublisherTest.java │ └── TestBase.java ├── schema ├── access_iot.json ├── ancillary_properties.json ├── building_translation.json ├── category.json ├── commands_discovery.json ├── commands_mapping.json ├── common.json ├── config.json ├── config_blobset.json ├── config_blobset_blob.json ├── config_discovery.json ├── config_discovery_family.json ├── config_gateway.json ├── config_localnet.json ├── config_localnet_family.json ├── config_mapping.json ├── config_mapping_device.json ├── config_pointset.json ├── config_pointset_point.json ├── config_system.json ├── config_system_testing.json ├── config_udmi.json ├── configuration_endpoint.json ├── configuration_execution.json ├── configuration_pod.json ├── configuration_pod_base.json ├── configuration_pod_bridge.json ├── configuration_pubber.json ├── data_template.json ├── dimension.json ├── discovery_family.json ├── discovery_feature.json ├── discovery_ref.json ├── entry.json ├── envelope.json ├── equipment_translation.json ├── events.json ├── events_discovery.json ├── events_mapping.json ├── events_mapping_entities.json ├── events_mapping_entity.json ├── events_pointset.json ├── events_pointset_point.json ├── events_system.json ├── events_udmi.json ├── events_validation.json ├── events_validation_device.json ├── metadata.json ├── model_cloud.json ├── model_cloud_config.json ├── model_discovery.json ├── model_discovery_family.json ├── model_features.json ├── model_gateway.json ├── model_localnet.json ├── model_localnet_family.json ├── model_pointset.json ├── model_pointset_point.json ├── model_system.json ├── model_system_hardware.json ├── model_testing.json ├── model_testing_target.json ├── monitoring.json ├── monitoring_metric.json ├── options_pubber.json ├── persistent_device.json ├── properties.json ├── query_cloud.json ├── site_metadata.json ├── state.json ├── state_blobset.json ├── state_blobset_blob.json ├── state_discovery.json ├── state_discovery_family.json ├── state_gateway.json ├── state_localnet.json ├── state_localnet_family.json ├── state_mapping.json ├── state_mapping_device.json ├── state_pointset.json ├── state_pointset_point.json ├── state_system.json ├── state_system_hardware.json ├── state_system_operation.json ├── state_udmi.json ├── state_validation.json ├── state_validation_capability.json ├── state_validation_feature.json ├── state_validation_schema.json ├── state_validation_sequence.json └── virtual_links.json ├── selfie ├── Dockerfile.selfie ├── bin │ ├── build │ └── selfie └── etc │ └── k8s_selfie.yaml ├── services ├── Dockerfile.services ├── bin │ ├── bambi_service │ └── build ├── build.gradle ├── etc │ ├── k8s_account.yaml │ ├── k8s_bambi.yaml │ └── k8s_config.yaml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ ├── main │ └── java │ │ └── com │ │ └── google │ │ └── bos │ │ └── iot │ │ └── core │ │ └── bambi │ │ ├── BambiSiteModel.java │ │ ├── BambiSiteModelManager.java │ │ ├── BambiSync.java │ │ ├── LocalDiskSync.java │ │ └── LocalSiteModelManager.java │ └── test │ ├── configs │ └── localnet.json │ └── java │ └── com │ └── google │ └── bos │ └── iot │ └── core │ └── bambi │ ├── BambiSiteModelManagerTest.java │ ├── BambiSiteModelTest.java │ └── LocalSiteModelManagerTest.java ├── tests ├── combos │ ├── missing_pointset.json │ └── supersimple.json ├── discovery │ └── bitbox │ │ ├── 1.json │ │ ├── 10.json │ │ ├── 11.json │ │ ├── 12.json │ │ ├── 13.json │ │ ├── 15.json │ │ ├── 16.json │ │ ├── 2.json │ │ ├── 3.json │ │ ├── 4.json │ │ ├── 5.json │ │ ├── 6.json │ │ ├── 7.json │ │ ├── 8.json │ │ └── 9.json ├── schemas │ ├── commands_discovery │ │ ├── provision.json │ │ └── provision.out │ ├── commands_mapping │ │ ├── mapping.json │ │ └── mapping.out │ ├── config │ │ ├── blobset_final.json │ │ ├── blobset_final.out │ │ ├── blobset_final_incomplete_payload.out │ │ ├── blobset_final_incomplete_url.json │ │ ├── blobset_final_incomplete_url.out │ │ ├── commit.out │ │ ├── continuous.json │ │ ├── continuous.out │ │ ├── delta_x1_gateway.json │ │ ├── delta_x1_gateway.out │ │ ├── delta_x1_target.json │ │ ├── delta_x1_target.out │ │ ├── direct.json │ │ ├── direct.out │ │ ├── discovery.json │ │ ├── discovery.out │ │ ├── easing.json │ │ ├── easing.out │ │ ├── empty.json │ │ ├── empty.out │ │ ├── endpoint_reconfiguration.json │ │ ├── endpoint_reconfiguration.out │ │ ├── enumeration.json │ │ ├── enumeration.out │ │ ├── errors.json │ │ ├── errors.out │ │ ├── example.json │ │ ├── example.out │ │ ├── fcu.json │ │ ├── fcu.out │ │ ├── fetch.out │ │ ├── from_bacnet.json │ │ ├── from_bacnet.out │ │ ├── from_radix.json │ │ ├── from_radix.out │ │ ├── gateway.json │ │ ├── gateway.out │ │ ├── implicit.json │ │ ├── implicit.out │ │ ├── periodic.json │ │ ├── periodic.out │ │ ├── proxy.json │ │ ├── proxy.out │ │ ├── restart.json │ │ ├── restart.out │ │ ├── smartprimus.json │ │ ├── smartprimus.out │ │ ├── writeback.json │ │ └── writeback.out │ ├── config_mapping │ │ ├── mapping.json │ │ └── mapping.out │ ├── config_pointset │ │ ├── easing.json │ │ ├── easing.out │ │ ├── example.json │ │ └── example.out │ ├── configuration_endpoint │ │ ├── delta.json │ │ ├── delta.out │ │ ├── gcp_iot_core.json │ │ ├── gcp_iot_core.out │ │ ├── mosquitto.json │ │ ├── mosquitto.out │ │ ├── multiple.json │ │ ├── multiple.out │ │ ├── simple.json │ │ └── simple.out │ ├── configuration_execution │ │ ├── cloud_iot_config.json │ │ └── cloud_iot_config.out │ ├── configuration_pubber │ │ ├── mosquitto.json │ │ └── mosquitto.out │ ├── envelope │ │ ├── empty.json │ │ ├── empty.out │ │ ├── errors1.json │ │ ├── errors1.out │ │ ├── errors2.json │ │ ├── errors2.out │ │ ├── example.json │ │ ├── example.out │ │ ├── example2.json │ │ ├── example2.out │ │ ├── gateway.json │ │ ├── gateway.out │ │ ├── lgtw.json │ │ └── lgtw.out │ ├── events_discovery │ │ ├── continuous.json │ │ ├── continuous.out │ │ ├── discovery.json │ │ ├── discovery.out │ │ ├── discovery_node.json │ │ ├── discovery_node.out │ │ ├── discovery_node2.json │ │ ├── discovery_node2.out │ │ ├── empty.json │ │ ├── empty.out │ │ ├── enumeration.json │ │ ├── enumeration.out │ │ ├── errors.json │ │ ├── errors.out │ │ ├── features.json │ │ ├── features.out │ │ ├── from_bacnet.json │ │ ├── from_bacnet.out │ │ ├── from_radix.json │ │ ├── from_radix.out │ │ ├── implicit.json │ │ ├── implicit.out │ │ ├── node.json │ │ ├── node.out │ │ ├── point_error.json │ │ ├── point_error.out │ │ ├── proxied_scan.json │ │ ├── proxied_scan.out │ │ ├── scan_error.json │ │ └── scan_error.out │ ├── events_mapping │ │ ├── mapping.json │ │ ├── mapping.out │ │ ├── prediction.json │ │ ├── prediction.out │ │ └── staged_equip_response.txt │ ├── events_pointset │ │ ├── empty.json │ │ ├── empty.out │ │ ├── errors.json │ │ ├── errors.out │ │ ├── example.json │ │ ├── example.out │ │ ├── fcu.json │ │ ├── fcu.out │ │ ├── partial.json │ │ ├── partial.out │ │ ├── smartprimus.json │ │ ├── smartprimus.out │ │ ├── writeback.json │ │ └── writeback.out │ ├── events_system │ │ ├── categories.json │ │ ├── categories.out │ │ ├── empty.json │ │ ├── empty.out │ │ ├── errors.json │ │ ├── errors.out │ │ ├── example.json │ │ ├── example.out │ │ ├── fcu.json │ │ ├── fcu.out │ │ ├── metrics.json │ │ └── metrics.out │ ├── events_validation │ │ ├── simple_error.json │ │ ├── simple_error.out │ │ ├── simple_ok.json │ │ └── simple_ok.out │ ├── metadata │ │ ├── bacmodel.json │ │ ├── bacmodel.out │ │ ├── bad.json │ │ ├── bad.out │ │ ├── direct.json │ │ ├── direct.out │ │ ├── discovery_metadata.json │ │ ├── discovery_metadata.out │ │ ├── empty.json │ │ ├── empty.out │ │ ├── errors.json │ │ ├── errors.out │ │ ├── example.json │ │ ├── example.out │ │ ├── gateway.json │ │ ├── gateway.out │ │ ├── network.json │ │ ├── network.out │ │ ├── nosys.json │ │ ├── nosys.out │ │ ├── proxy.json │ │ ├── proxy.out │ │ ├── toomany.json │ │ ├── toomany.out │ │ ├── upgrade_root_tags.json │ │ └── upgrade_root_tags.out │ ├── model_pointset │ │ ├── example.json │ │ └── example.out │ ├── site_metadata │ │ ├── errors.json │ │ ├── errors.out │ │ ├── example.json │ │ └── example.out │ ├── state │ │ ├── blobset_received.json │ │ ├── blobset_received.out │ │ ├── blobset_updating.json │ │ ├── blobset_updating.out │ │ ├── continuous.json │ │ ├── continuous.out │ │ ├── delta_x1_gateway.json │ │ ├── delta_x1_gateway.out │ │ ├── delta_x1_target.json │ │ ├── delta_x1_target.out │ │ ├── direct.json │ │ ├── direct.out │ │ ├── discovery.json │ │ ├── discovery.out │ │ ├── empty.json │ │ ├── empty.out │ │ ├── endpoint_reconfiguration.json │ │ ├── endpoint_reconfiguration.out │ │ ├── endpoint_reconfiguration_failed.json │ │ ├── endpoint_reconfiguration_failed.out │ │ ├── enumeration.json │ │ ├── enumeration.out │ │ ├── errors.json │ │ ├── errors.out │ │ ├── example.json │ │ ├── example.out │ │ ├── fcu.json │ │ ├── fcu.out │ │ ├── gateway.json │ │ ├── gateway.out │ │ ├── makemodel_error.json │ │ ├── makemodel_error.out │ │ ├── makemodel_upgrade.json │ │ ├── makemodel_upgrade.out │ │ ├── networks.json │ │ ├── networks.out │ │ ├── periodic.json │ │ ├── periodic.out │ │ ├── proxy.json │ │ ├── proxy.out │ │ ├── restart.json │ │ ├── restart.out │ │ ├── scan_bad.json │ │ ├── scan_bad.out │ │ ├── scan_error.json │ │ ├── scan_error.out │ │ ├── scan_stop.json │ │ ├── scan_stop.out │ │ ├── upgrade_gateway_devices.json │ │ ├── upgrade_gateway_devices.out │ │ ├── writeback.json │ │ └── writeback.out │ ├── state_mapping │ │ ├── mapping.json │ │ └── mapping.out │ ├── state_pointset │ │ ├── example.json │ │ └── example.out │ └── state_validation │ │ ├── report.json │ │ ├── report.out │ │ ├── sequencer.json │ │ └── sequencer.out ├── sites │ ├── basic │ │ ├── cloud_iot_config.json │ │ ├── devices │ │ │ ├── AHU-1 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── AHU-22 │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── GAT-123 │ │ │ │ ├── ec_private.pem │ │ │ │ ├── ec_private.pkcs8 │ │ │ │ ├── ec_public.pem │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── GAT-72 │ │ │ │ ├── ec_private.pem │ │ │ │ ├── ec_private.pkcs8 │ │ │ │ ├── ec_public.pem │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── SNS-4 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ └── SNS-8 │ │ │ │ ├── expected │ │ │ │ ├── generated_config.json │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ ├── registration_summary.json │ │ ├── site_defaults.json │ │ └── site_metadata.json │ ├── configs │ │ ├── cloud_iot_config.json │ │ ├── devices │ │ │ ├── AHU-1 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── AHU-22 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── GAT-123 │ │ │ │ ├── config │ │ │ │ │ └── config.json │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ └── GAT-456 │ │ │ │ ├── config │ │ │ │ └── notjson.txt │ │ │ │ ├── expected │ │ │ │ ├── errors.map │ │ │ │ ├── generated_config.json │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ ├── registration_summary.json │ │ └── site_metadata.json │ ├── discovery │ │ ├── cloud_iot_config.json │ │ ├── devices │ │ │ └── GAT-123 │ │ │ │ ├── expected │ │ │ │ ├── errors.map │ │ │ │ ├── generated_config.json │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ └── registration_summary.json │ ├── downgrade │ │ ├── cloud_iot_config.json │ │ ├── devices │ │ │ ├── .dummy_bad_device │ │ │ │ └── metadata.json │ │ │ ├── AHU-102 │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── CGW-1 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── CGW-12 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── CGW-350101 │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── DDC-54 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── DWN-1 │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── DWN-2 │ │ │ │ ├── expected │ │ │ │ │ └── errors.map │ │ │ │ └── metadata.json │ │ │ ├── DWN-3 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── DWN-4 │ │ │ │ ├── expected │ │ │ │ │ └── errors.map │ │ │ │ └── metadata.json │ │ │ └── SF-28 │ │ │ │ ├── expected │ │ │ │ ├── generated_config.json │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ ├── registration_summary.json │ │ ├── site_defaults.json │ │ └── site_metadata.json │ ├── mapping │ │ ├── cloud_iot_config.json │ │ ├── devices │ │ │ └── GAT-123 │ │ │ │ ├── expected │ │ │ │ ├── errors.map │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ ├── registration_summary.json │ │ └── site_metadata.json │ ├── metering │ │ ├── cloud_iot_config.json │ │ ├── devices │ │ │ ├── DDC-1 │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── EM-1 │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── GAT-1 │ │ │ │ ├── ec_private.pem │ │ │ │ ├── ec_private.pkcs8 │ │ │ │ ├── ec_public.pem │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── SRV-1 │ │ │ │ ├── ec_private.pem │ │ │ │ ├── ec_private.pkcs8 │ │ │ │ ├── ec_public.pem │ │ │ │ ├── expected │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ └── TEST-05053 │ │ │ │ ├── expected │ │ │ │ ├── errors.map │ │ │ │ ├── generated_config.json │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ └── registration_summary.json │ ├── missing │ │ ├── cloud_iot_config.json │ │ ├── devices │ │ │ ├── AHU-1 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── AHU-22 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ ├── GAT-123 │ │ │ │ ├── expected │ │ │ │ │ ├── errors.map │ │ │ │ │ ├── generated_config.json │ │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ │ └── SNS-4 │ │ │ │ ├── expected │ │ │ │ ├── generated_config.json │ │ │ │ └── metadata_norm.json │ │ │ │ └── metadata.json │ │ ├── registration_summary.json │ │ └── site_defaults.json │ └── supersimple │ │ ├── cloud_iot_config.json │ │ ├── devices │ │ └── TPS-1 │ │ │ ├── expected │ │ │ ├── errors.map │ │ │ ├── generated_config.json │ │ │ └── metadata_norm.json │ │ │ └── metadata.json │ │ └── registration_summary.json └── traces │ ├── discover │ ├── devices │ │ └── GAT-123 │ │ │ ├── 001_state_update.json │ │ │ ├── 002_state_gateway.json │ │ │ ├── 003_events_discovery.json │ │ │ └── 004_state_system.json │ └── expected │ │ ├── devices │ │ ├── AHU-1 │ │ │ ├── events_pointset.attr │ │ │ ├── events_pointset.json │ │ │ ├── events_pointset.out │ │ │ ├── events_system.attr │ │ │ ├── events_system.json │ │ │ ├── events_system.orig │ │ │ └── events_system.out │ │ ├── AHU-22 │ │ │ ├── events_pointset.attr │ │ │ ├── events_pointset.json │ │ │ ├── events_pointset.out │ │ │ ├── events_system.attr │ │ │ ├── events_system.json │ │ │ └── events_system.out │ │ ├── GAT-123 │ │ │ ├── state.attr │ │ │ ├── state.json │ │ │ ├── state.out │ │ │ ├── state_gateway.attr │ │ │ ├── state_gateway.json │ │ │ ├── state_gateway.out │ │ │ ├── state_system.attr │ │ │ ├── state_system.json │ │ │ └── state_system.out │ │ └── SNS-4 │ │ │ ├── events_discovery.attr │ │ │ ├── events_discovery.json │ │ │ ├── events_discovery.out │ │ │ ├── events_pointset.attr │ │ │ ├── events_pointset.json │ │ │ ├── events_pointset.out │ │ │ ├── events_system.attr │ │ │ ├── events_system.json │ │ │ └── events_system.out │ │ └── validation_report.json │ ├── lengthy │ ├── devices │ │ └── AHU-1 │ │ │ ├── 001_events_pointset.json │ │ │ ├── 002_events_pointset.json │ │ │ └── 003_events_pointset.json │ └── expected │ │ ├── devices │ │ └── AHU-1 │ │ │ ├── events_pointset.attr │ │ │ ├── events_pointset.json │ │ │ ├── events_pointset.out │ │ │ ├── events_system.attr │ │ │ ├── events_system.json │ │ │ └── events_system.out │ │ └── validation_report.json │ ├── simple │ ├── devices │ │ ├── AHU-1 │ │ │ ├── 001_events_pointset.json │ │ │ ├── 002_events_system.json │ │ │ └── 003_events_pointset.json │ │ ├── AHU-22 │ │ │ ├── 001_events_pointset.json │ │ │ ├── 002_events_pointset.json │ │ │ ├── 003_events_system.json │ │ │ └── 004_events_pointset.json │ │ ├── GAT-123 │ │ │ ├── 001_state_update.json │ │ │ ├── 002_state_gateway.json │ │ │ ├── 004_state_system.json │ │ │ └── 005_reply_update.json │ │ └── SNS-4 │ │ │ ├── 001_events_pointset.json │ │ │ ├── 002_events_discovery.json │ │ │ └── 003_events_system.json │ └── expected │ │ ├── devices │ │ ├── AHU-1 │ │ │ ├── events_pointset.attr │ │ │ ├── events_pointset.json │ │ │ ├── events_pointset.out │ │ │ ├── events_system.attr │ │ │ ├── events_system.json │ │ │ ├── events_system.orig │ │ │ └── events_system.out │ │ ├── AHU-22 │ │ │ ├── events_pointset.attr │ │ │ ├── events_pointset.json │ │ │ ├── events_pointset.out │ │ │ ├── events_system.attr │ │ │ ├── events_system.json │ │ │ └── events_system.out │ │ ├── GAT-123 │ │ │ ├── state.attr │ │ │ ├── state.json │ │ │ ├── state.out │ │ │ ├── state_gateway.attr │ │ │ ├── state_gateway.json │ │ │ ├── state_gateway.out │ │ │ ├── state_system.attr │ │ │ ├── state_system.json │ │ │ └── state_system.out │ │ └── SNS-4 │ │ │ ├── events_discovery.attr │ │ │ ├── events_discovery.json │ │ │ ├── events_discovery.out │ │ │ ├── events_pointset.attr │ │ │ ├── events_pointset.json │ │ │ ├── events_pointset.out │ │ │ ├── events_system.attr │ │ │ ├── events_system.json │ │ │ └── events_system.out │ │ └── validation_report.json │ ├── supersimple │ ├── devices │ │ └── TPS-1 │ │ │ └── 001_events_pointset.json │ └── expected │ │ ├── devices │ │ └── TPS-1 │ │ │ └── events_pointset.out │ │ └── validation_report.json │ └── upgrade │ ├── devices │ ├── AHU-1 │ │ ├── 001_state_update.json │ │ └── 002_state_system.json │ ├── AHU-22 │ │ └── 001_state_update.json │ ├── NON-1 │ │ └── 001_state_update.json │ ├── NON-2 │ │ └── 001_state_update.json │ └── SNS-4 │ │ └── 001_state_update.json │ └── expected │ ├── devices │ ├── AHU-1 │ │ ├── state.attr │ │ ├── state.json │ │ ├── state.orig │ │ ├── state.out │ │ ├── state_system.attr │ │ ├── state_system.json │ │ └── state_system.out │ ├── AHU-22 │ │ ├── state.attr │ │ ├── state.json │ │ ├── state.orig │ │ └── state.out │ ├── NON-1 │ │ ├── state.attr │ │ ├── state.json │ │ ├── state.orig │ │ └── state.out │ ├── NON-2 │ │ ├── state.attr │ │ ├── state.json │ │ └── state.out │ └── SNS-4 │ │ ├── state.attr │ │ ├── state.json │ │ ├── state.orig │ │ └── state.out │ └── validation_report.json ├── udmis ├── .gitignore ├── .idea │ ├── checkstyle-idea.xml │ ├── codeStyles │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── compiler.xml │ ├── docs.iml │ ├── encodings.xml │ ├── gradle.xml │ ├── inspectionProfiles │ │ └── Project_Default.xml │ ├── jarRepositories.xml │ ├── libraries-with-intellij-classes.xml │ ├── libraries │ │ ├── Gradle__com_fasterxml_jackson_core_jackson_annotations_2_12_4.xml │ │ ├── Gradle__com_fasterxml_jackson_core_jackson_core_2_12_4.xml │ │ ├── Gradle__com_fasterxml_jackson_core_jackson_databind_2_12_4.xml │ │ ├── Gradle__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_12_4.xml │ │ ├── Gradle__com_google_api_grpc_grpc_google_cloud_pubsub_v1_1_48_0.xml │ │ ├── Gradle__com_google_api_grpc_proto_google_cloud_pubsub_v1_1_48_0.xml │ │ ├── Gradle__com_google_cloud_google_cloud_pubsub_1_66_0.xml │ │ ├── Gradle__com_google_code_findbugs_jsr305_3_0_2.xml │ │ ├── Gradle__com_google_guava_failureaccess_1_0_1.xml │ │ ├── Gradle__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml │ │ ├── Gradle__com_google_j2objc_j2objc_annotations_1_3.xml │ │ ├── Gradle__commons_io_commons_io_2_5.xml │ │ ├── Gradle__javax_annotation_javax_annotation_api_1_3_2.xml │ │ ├── Gradle__org_apiguardian_apiguardian_api_1_1_2.xml │ │ ├── Gradle__org_hamcrest_hamcrest_core_1_3.xml │ │ ├── Gradle__org_jetbrains_annotations_20_1_0.xml │ │ ├── Gradle__org_opentest4j_opentest4j_1_2_0.xml │ │ └── Gradle__org_yaml_snakeyaml_1_27.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations │ │ ├── BaselineValidator.xml │ │ ├── ClearBladeIotAccessProvider.xml │ │ ├── UDMIS_Remote.xml │ │ ├── UdmiServicePod_Dev.xml │ │ ├── UdmiServicePod_Local.xml │ │ ├── Validator_Remote.xml │ │ ├── WritebackSequences_writeback_states.xml │ │ ├── _template__of_Application.xml │ │ └── _template__of_JUnit.xml │ ├── schema.iml │ ├── uiDesigner.xml │ └── vcs.xml ├── Dockerfile.udmis ├── README.md ├── bin │ ├── actualize │ ├── build │ ├── etcdctl │ ├── monitoring │ ├── pod_logs │ ├── run │ └── update ├── build.gradle ├── etc │ ├── dev_pod.json │ ├── k8s_account.yaml │ ├── k8s_broker.yaml │ ├── k8s_config.yaml │ ├── k8s_etcd.yaml │ ├── k8s_udmis.yaml │ ├── local_pod.json │ ├── peringknife~k8s_config.yaml │ └── prod_pod.json ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── settings.gradle ├── src │ ├── .idea │ │ └── src.iml │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── google │ │ │ │ └── bos │ │ │ │ └── udmi │ │ │ │ ├── monitoring │ │ │ │ ├── LogTail.java │ │ │ │ ├── LogTailBase.java │ │ │ │ ├── LogTailEntry.java │ │ │ │ ├── LogTailJsonOutput.java │ │ │ │ ├── LogTailOutput.java │ │ │ │ └── LogTimeSeries.java │ │ │ │ └── service │ │ │ │ ├── access │ │ │ │ ├── ClearBladeIotAccessProvider.java │ │ │ │ ├── DynamicIotAccessProvider.java │ │ │ │ ├── ImplicitIotAccessProvider.java │ │ │ │ ├── IotAccessBase.java │ │ │ │ ├── IotAccessProvider.java │ │ │ │ ├── LocalIotAccessProvider.java │ │ │ │ ├── ProfilingProxy.java │ │ │ │ └── PubSubIotAccessProvider.java │ │ │ │ ├── core │ │ │ │ ├── BitboxAdapter.java │ │ │ │ ├── BridgeProcessor.java │ │ │ │ ├── CloudQueryHandler.java │ │ │ │ ├── ComponentName.java │ │ │ │ ├── ComponentProvider.java │ │ │ │ ├── ControlProcessor.java │ │ │ │ ├── CronProcessor.java │ │ │ │ ├── DistributorPipe.java │ │ │ │ ├── MessageHandler.java │ │ │ │ ├── ProcessorBase.java │ │ │ │ ├── ProvisioningEngine.java │ │ │ │ ├── ReflectProcessor.java │ │ │ │ ├── StateProcessor.java │ │ │ │ └── TargetProcessor.java │ │ │ │ ├── messaging │ │ │ │ ├── ConfigUpdate.java │ │ │ │ ├── MessageContinuation.java │ │ │ │ ├── MessageDispatcher.java │ │ │ │ ├── MessagePipe.java │ │ │ │ ├── ModelUpdate.java │ │ │ │ ├── SiteMetadataUpdate.java │ │ │ │ ├── StateUpdate.java │ │ │ │ └── impl │ │ │ │ │ ├── DirectoryTraverser.java │ │ │ │ │ ├── FileMessagePipe.java │ │ │ │ │ ├── LocalMessagePipe.java │ │ │ │ │ ├── MessageBase.java │ │ │ │ │ ├── MessageDispatcherImpl.java │ │ │ │ │ ├── PubSubPipe.java │ │ │ │ │ ├── SimpleMqttPipe.java │ │ │ │ │ └── TraceMessagePipe.java │ │ │ │ ├── pod │ │ │ │ ├── ContainerBase.java │ │ │ │ ├── SimpleHandler.java │ │ │ │ ├── UdmiComponent.java │ │ │ │ └── UdmiServicePod.java │ │ │ │ └── support │ │ │ │ ├── ConnectionBroker.java │ │ │ │ ├── DataRef.java │ │ │ │ ├── EtcdDataProvider.java │ │ │ │ ├── IotDataProvider.java │ │ │ │ └── MosquittoBroker.java │ │ └── main.iml │ └── test │ │ ├── configs │ │ ├── base_pod.json │ │ ├── bridge_pod.json │ │ ├── clearblade_pod.json │ │ ├── dynamic_pod.json │ │ ├── gcp_pod.json │ │ ├── localnet.json │ │ └── trace_pod.json │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── bos │ │ │ └── udmi │ │ │ ├── monitoring │ │ │ └── LogTailTest.java │ │ │ └── service │ │ │ ├── access │ │ │ ├── ClearBladeIotAccessProviderTest.java │ │ │ └── IotAccessBaseTest.java │ │ │ ├── core │ │ │ ├── BitboxAdapterTest.java │ │ │ ├── BridgeProcessorTest.java │ │ │ ├── CloudQueryHandlerTest.java │ │ │ ├── ProcessorTestBase.java │ │ │ ├── ProvisioningEngineTest.java │ │ │ ├── ReflectProcessorTest.java │ │ │ ├── StateProcessorTest.java │ │ │ └── TargetProcessorTest.java │ │ │ ├── messaging │ │ │ └── impl │ │ │ │ ├── FileMessagePipeTest.java │ │ │ │ ├── LocalMessagePipeTest.java │ │ │ │ ├── MessageDispatcherImplTest.java │ │ │ │ ├── MessagePipeTestBase.java │ │ │ │ ├── MessageTestBase.java │ │ │ │ ├── MessageTestCore.java │ │ │ │ ├── PubSubPipeTest.java │ │ │ │ ├── SimpleMqttPipeTest.java │ │ │ │ └── TraceMessagePipeTest.java │ │ │ └── pod │ │ │ ├── ContainerBaseTest.java │ │ │ └── UdmiServicePodTest.java │ │ ├── messages │ │ ├── bitbox_discovery.json │ │ └── legacy_state.json │ │ └── test.iml ├── traces │ └── legacy-discovery │ │ ├── 2023-04-21T15 │ │ └── 30 │ │ │ ├── 2023-04-15T10x30x07.639Z_7433161289605221.json │ │ │ ├── 2023-04-15T10x30x08.335Z_7433164294754843.json │ │ │ ├── 2023-04-15T10x30x08.449Z_7433156993819165.json │ │ │ ├── 2023-04-15T10x30x09.229Z_7433164294753347.json │ │ │ ├── 2023-04-15T10x30x09.343Z_7433160574515384.json │ │ │ ├── 2023-04-15T10x30x10.140Z_7433134008802290.json │ │ │ ├── 2023-04-15T10x30x10.256Z_7433157618033170.json │ │ │ ├── 2023-04-15T10x30x11.070Z_7433120306262818.json │ │ │ ├── 2023-04-15T10x30x11.182Z_7433136545071999.json │ │ │ ├── 2023-04-15T10x30x11.976Z_7433165260609985.json │ │ │ ├── 2023-04-15T10x30x12.089Z_7433150411453159.json │ │ │ ├── 2023-04-15T10x30x12.894Z_7433120306259508.json │ │ │ ├── 2023-04-15T10x30x13.008Z_7433119275043366.json │ │ │ ├── 2023-04-15T10x30x13.799Z_7433156187195402.json │ │ │ ├── 2023-04-15T10x30x13.914Z_7433170829490014.json │ │ │ ├── 2023-04-15T10x30x14.723Z_7433157618024779.json │ │ │ ├── 2023-04-15T10x30x14.833Z_7433138059236973.json │ │ │ ├── 2023-04-15T10x30x15.605Z_7433161289586675.json │ │ │ ├── 2023-04-15T10x30x15.719Z_7433137689201943.json │ │ │ ├── 2023-04-15T10x30x16.523Z_7433160552426155.json │ │ │ ├── 2023-04-15T10x30x16.640Z_7433137299515713.json │ │ │ ├── 2023-04-15T10x30x17.450Z_7433161491213028.json │ │ │ ├── 2023-04-15T10x30x17.567Z_7433139957948815.json │ │ │ ├── 2023-04-15T10x30x18.350Z_7433157618017140.json │ │ │ ├── 2023-04-15T10x30x18.466Z_7433160681462038.json │ │ │ ├── 2023-04-15T10x30x19.258Z_7433136653249560.json │ │ │ ├── 2023-04-15T10x30x19.373Z_7433099756842277.json │ │ │ ├── 2023-04-15T10x30x20.207Z_7433171060424282.json │ │ │ ├── 2023-04-15T10x30x20.316Z_7433137393152264.json │ │ │ ├── 2023-04-15T10x30x21.124Z_7433120306241397.json │ │ │ ├── 2023-04-15T10x30x21.233Z_7433165260590481.json │ │ │ ├── 2023-04-15T10x30x22.055Z_7433164365905662.json │ │ │ ├── 2023-04-15T10x30x22.171Z_7433166092180158.json │ │ │ ├── 2023-04-15T10x30x22.980Z_7433099756836438.json │ │ │ ├── 2023-04-15T10x30x23.079Z_7433156763533735.json │ │ │ ├── 2023-04-15T10x30x23.887Z_7433160552411655.json │ │ │ └── 2023-04-15T10x30x24.007Z_7433194454817151.json │ │ └── 2023-04-21T18 │ │ └── 32 │ │ ├── 2023-04-21T18x32x00.369Z_7489680220264224.json │ │ ├── 2023-04-21T18x32x03.282Z_7489728031267727.json │ │ ├── 2023-04-21T18x32x04.405Z_7489692515438159.json │ │ ├── 2023-04-21T18x32x05.340Z_7489689740895435.json │ │ ├── 2023-04-21T18x32x06.269Z_7489648276784900.json │ │ ├── 2023-04-21T18x32x07.413Z_7489688824580088.json │ │ ├── 2023-04-21T18x32x08.431Z_7489711968570199.json │ │ ├── 2023-04-21T18x32x09.391Z_7489693841548066.json │ │ ├── 2023-04-21T18x32x10.414Z_7489731824596615.json │ │ ├── 2023-04-21T18x32x12.768Z_7489633191663032.json │ │ ├── 2023-04-21T18x32x13.668Z_7489644526486357.json │ │ ├── 2023-04-21T18x32x14.725Z_7489625611021474.json │ │ ├── 2023-04-21T18x32x16.694Z_7489704024147961.json │ │ ├── 2023-04-21T18x32x17.738Z_7489685532306057.json │ │ ├── 2023-04-21T18x32x18.707Z_7489669930864342.json │ │ ├── 2023-04-21T18x32x19.717Z_7489719705098610.json │ │ ├── 2023-04-21T18x32x20.758Z_7489699801885198.json │ │ ├── 2023-04-21T18x32x21.557Z_7489700545696454.json │ │ ├── 2023-04-21T18x32x22.552Z_7489731168062630.json │ │ ├── 2023-04-21T18x32x23.779Z_7489728118782719.json │ │ ├── 2023-04-21T18x32x24.586Z_7489633321991546.json │ │ ├── 2023-04-21T18x32x25.571Z_7489719705085004.json │ │ ├── 2023-04-21T18x32x26.763Z_7489665415307183.json │ │ ├── 2023-04-21T18x32x27.709Z_7489728280103935.json │ │ ├── 2023-04-21T18x32x28.736Z_7489737726278277.json │ │ ├── 2023-04-21T18x32x29.778Z_7489726891920941.json │ │ ├── 2023-04-21T18x32x30.782Z_7489693841508604.json │ │ ├── 2023-04-21T18x32x31.569Z_7489728690345958.json │ │ ├── 2023-04-21T18x32x32.714Z_7489669001787830.json │ │ ├── 2023-04-21T18x32x33.751Z_7489707765176237.json │ │ ├── 2023-04-21T18x32x34.781Z_7489727288080428.json │ │ ├── 2023-04-21T18x32x36.101Z_7489732504745179.json │ │ ├── 2023-04-21T18x32x37.091Z_7489713179952616.json │ │ ├── 2023-04-21T18x32x38.147Z_7489704856328651.json │ │ ├── 2023-04-21T18x32x39.125Z_7489748802939172.json │ │ ├── 2023-04-21T18x32x40.167Z_7489633390772167.json │ │ ├── 2023-04-21T18x32x41.153Z_7489719705046159.json │ │ ├── 2023-04-21T18x32x42.179Z_7489675368007040.json │ │ ├── 2023-04-21T18x32x43.131Z_7489656359709867.json │ │ ├── 2023-04-21T18x32x45.148Z_7489684567215519.json │ │ ├── 2023-04-21T18x32x48.846Z_7489739890239967.json │ │ ├── 2023-04-21T18x32x49.806Z_7489720161418872.json │ │ ├── 2023-04-21T18x32x50.564Z_7489708868907272.json │ │ ├── 2023-04-21T18x32x51.856Z_7489727073998087.json │ │ ├── 2023-04-21T18x32x52.789Z_7489700097690043.json │ │ ├── 2023-04-21T18x32x53.794Z_7489740137257112.json │ │ ├── 2023-04-21T18x32x54.827Z_7489728031323931.json │ │ ├── 2023-04-21T18x32x55.150Z_7489731412982774.json │ │ ├── 2023-04-21T18x32x56.113Z_7489726779776686.json │ │ ├── 2023-04-21T18x32x57.827Z_7489749438299147.json │ │ ├── 2023-04-21T18x32x58.808Z_7489732869733836.json │ │ └── 2023-04-21T18x32x58.817Z_7489648276910338.json └── udmis.iml └── validator ├── .idea ├── checkstyle-idea.xml ├── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── compiler.xml ├── docs.iml ├── encodings.xml ├── gradle.xml ├── inspectionProfiles │ └── Project_Default.xml ├── jarRepositories.xml ├── libraries-with-intellij-classes.xml ├── misc.xml ├── modules.xml ├── runConfigurations │ ├── BaselineValidator.xml │ ├── MappingAgent_Discover.xml │ ├── MappingAgent_Reconcile.xml │ ├── Reflector.xml │ ├── Reflector_Config.xml │ ├── Registrar_config_SNS_8.xml │ ├── Registrar_create.xml │ ├── Registrar_missing.xml │ ├── Registrar_site_model.xml │ ├── Registrar_warning.xml │ ├── Schema_Tester.xml │ ├── SequenceRunner.xml │ ├── Test_Trace_Simple.xml │ ├── Validator_Capture.xml │ ├── Validator_Remote.xml │ ├── Validator_config.xml │ ├── Validator_test_trace_simple.xml │ ├── WritebackSequences_writeback_states.xml │ ├── _template__of_Application.xml │ └── _template__of_JUnit.xml ├── schema.iml ├── uiDesigner.xml └── vcs.xml ├── Dockerfile.delta ├── Dockerfile.validator ├── bin ├── automate ├── build ├── config ├── gitwrap ├── mapping ├── reflector ├── registrar └── swarm ├── build.gradle ├── etc ├── k8s_tools.yaml ├── source_repo_trigger.json └── sshconfig ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── sequences ├── bad_point_ref │ ├── device_system.log │ ├── sequence.log │ └── sequence.md ├── bad_target_address │ ├── device_system.log │ ├── sequence.log │ └── sequence.md ├── bad_target_family │ ├── device_system.log │ ├── sequence.log │ └── sequence.md ├── broken_config │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── config_logging │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── device_config_acked │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── endpoint_connection_bad_alternate │ ├── config_blobset.attr │ ├── config_blobset.json │ ├── config_discovery.attr │ ├── config_discovery.json │ ├── config_localnet.attr │ ├── config_localnet.json │ ├── config_pointset.attr │ ├── config_pointset.json │ ├── config_system.attr │ ├── config_system.json │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_blobset.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ ├── state_update.json │ ├── state_validation.attr │ ├── state_validation.json │ ├── stray │ │ ├── config_update_2025-06-10T17:07:11Z.attr │ │ ├── config_update_2025-06-10T17:07:11Z.json │ │ ├── config_update_2025-06-10T17:07:59Z.attr │ │ ├── config_update_2025-06-10T17:07:59Z.json │ │ ├── config_update_2025-06-10T17:08:01Z.attr │ │ ├── config_update_2025-06-10T17:08:01Z.json │ │ ├── config_update_2025-06-10T17:08:29Z.attr │ │ ├── config_update_2025-06-10T17:08:29Z.json │ │ ├── config_update_2025-06-10T17:08:32Z.attr │ │ ├── config_update_2025-06-10T17:08:32Z.json │ │ ├── events_system_2025-06-10T17:08:03Z.attr │ │ ├── events_system_2025-06-10T17:08:03Z.json │ │ ├── events_system_2025-06-10T17:08:08Z.attr │ │ ├── events_system_2025-06-10T17:08:08Z.json │ │ ├── state_blobset_2025-06-10T17:07:58Z.attr │ │ ├── state_blobset_2025-06-10T17:07:58Z.json │ │ ├── state_blobset_2025-06-10T17:08:00Z.attr │ │ ├── state_blobset_2025-06-10T17:08:00Z.json │ │ ├── state_discovery_2025-06-10T17:07:58Z.attr │ │ ├── state_discovery_2025-06-10T17:07:58Z.json │ │ ├── state_localnet_2025-06-10T17:07:58Z.attr │ │ ├── state_localnet_2025-06-10T17:07:58Z.json │ │ ├── state_pointset_2025-06-10T17:07:06Z.attr │ │ ├── state_pointset_2025-06-10T17:07:06Z.json │ │ ├── state_pointset_2025-06-10T17:07:58Z.attr │ │ ├── state_pointset_2025-06-10T17:07:58Z.json │ │ ├── state_system_2025-06-10T17:07:58Z.attr │ │ ├── state_system_2025-06-10T17:07:58Z.json │ │ ├── state_system_2025-06-10T17:08:00Z.attr │ │ ├── state_system_2025-06-10T17:08:00Z.json │ │ ├── state_system_2025-06-10T17:08:03Z.attr │ │ ├── state_system_2025-06-10T17:08:03Z.json │ │ ├── state_update_2025-06-10T17:08:00Z.attr │ │ ├── state_update_2025-06-10T17:08:00Z.bad │ │ ├── state_update_2025-06-10T17:08:00Z.json │ │ ├── state_update_2025-06-10T17:08:03Z.attr │ │ └── state_update_2025-06-10T17:08:03Z.json │ └── trace │ │ ├── config_blobset_2025-06-10T17:07:30Z.attr │ │ ├── config_blobset_2025-06-10T17:07:30Z.json │ │ ├── config_blobset_2025-06-10T17:08:11Z.attr │ │ ├── config_blobset_2025-06-10T17:08:11Z.json │ │ ├── config_blobset_2025-06-10T17:08:33Z.attr │ │ ├── config_blobset_2025-06-10T17:08:33Z.json │ │ ├── config_discovery_2025-06-10T17:07:23Z.attr │ │ ├── config_discovery_2025-06-10T17:07:23Z.json │ │ ├── config_localnet_2025-06-10T17:07:26Z.attr │ │ ├── config_localnet_2025-06-10T17:07:26Z.json │ │ ├── config_pointset_2025-06-10T17:07:24Z.attr │ │ ├── config_pointset_2025-06-10T17:07:24Z.json │ │ ├── config_system_2025-06-10T17:07:25Z.attr │ │ ├── config_system_2025-06-10T17:07:25Z.json │ │ ├── config_update_2025-06-10T17:07:04Z.attr │ │ ├── config_update_2025-06-10T17:07:04Z.json │ │ ├── config_update_2025-06-10T17:07:06Z.json │ │ ├── config_update_2025-06-10T17:07:08Z.attr │ │ ├── config_update_2025-06-10T17:07:08Z.json │ │ ├── config_update_2025-06-10T17:07:09Z.json │ │ ├── config_update_2025-06-10T17:07:11Z.attr │ │ ├── config_update_2025-06-10T17:07:11Z.json │ │ ├── config_update_2025-06-10T17:07:12Z.attr │ │ ├── config_update_2025-06-10T17:07:12Z.json │ │ ├── config_update_2025-06-10T17:07:14Z.json │ │ ├── config_update_2025-06-10T17:07:16Z.attr │ │ ├── config_update_2025-06-10T17:07:16Z.json │ │ ├── config_update_2025-06-10T17:07:17Z.attr │ │ ├── config_update_2025-06-10T17:07:17Z.json │ │ ├── config_update_2025-06-10T17:07:20Z.json │ │ ├── config_update_2025-06-10T17:07:22Z.attr │ │ ├── config_update_2025-06-10T17:07:22Z.json │ │ ├── config_update_2025-06-10T17:07:23Z.attr │ │ ├── config_update_2025-06-10T17:07:23Z.json │ │ ├── config_update_2025-06-10T17:07:24Z.attr │ │ ├── config_update_2025-06-10T17:07:24Z.json │ │ ├── config_update_2025-06-10T17:07:25Z.attr │ │ ├── config_update_2025-06-10T17:07:25Z.json │ │ ├── config_update_2025-06-10T17:07:27Z.json │ │ ├── config_update_2025-06-10T17:07:29Z.attr │ │ ├── config_update_2025-06-10T17:07:29Z.json │ │ ├── config_update_2025-06-10T17:07:32Z.json │ │ ├── config_update_2025-06-10T17:07:58Z.attr │ │ ├── config_update_2025-06-10T17:07:58Z.json │ │ ├── config_update_2025-06-10T17:07:59Z.json │ │ ├── config_update_2025-06-10T17:08:01Z.attr │ │ ├── config_update_2025-06-10T17:08:01Z.json │ │ ├── config_update_2025-06-10T17:08:10Z.attr │ │ ├── config_update_2025-06-10T17:08:10Z.json │ │ ├── config_update_2025-06-10T17:08:13Z.json │ │ ├── config_update_2025-06-10T17:08:30Z.json │ │ ├── config_update_2025-06-10T17:08:32Z.attr │ │ ├── config_update_2025-06-10T17:08:32Z.json │ │ ├── config_update_2025-06-10T17:08:35Z.json │ │ ├── events_pointset_2025-06-10T17:06:59Z.attr │ │ ├── events_pointset_2025-06-10T17:06:59Z.json │ │ ├── events_pointset_2025-06-10T17:07:04Z.attr │ │ ├── events_pointset_2025-06-10T17:07:04Z.json │ │ ├── events_pointset_2025-06-10T17:07:14Z.attr │ │ ├── events_pointset_2025-06-10T17:07:14Z.json │ │ ├── events_pointset_2025-06-10T17:07:24Z.attr │ │ ├── events_pointset_2025-06-10T17:07:24Z.json │ │ ├── events_pointset_2025-06-10T17:07:34Z.attr │ │ ├── events_pointset_2025-06-10T17:07:34Z.json │ │ ├── events_system_2025-06-10T17:06:59Z.attr │ │ ├── events_system_2025-06-10T17:06:59Z.json │ │ ├── events_system_2025-06-10T17:07:04Z.attr │ │ ├── events_system_2025-06-10T17:07:04Z.json │ │ ├── events_system_2025-06-10T17:07:14Z.attr │ │ ├── events_system_2025-06-10T17:07:14Z.json │ │ ├── events_system_2025-06-10T17:07:24Z.attr │ │ ├── events_system_2025-06-10T17:07:24Z.json │ │ ├── events_system_2025-06-10T17:07:34Z.attr │ │ ├── events_system_2025-06-10T17:07:34Z.json │ │ ├── events_system_2025-06-10T17:08:33Z.attr │ │ ├── events_system_2025-06-10T17:08:33Z.json │ │ ├── local_blobset_2025-06-10T17:07:29Z.json │ │ ├── local_blobset_2025-06-10T17:08:10Z.json │ │ ├── local_blobset_2025-06-10T17:08:32Z.json │ │ ├── local_discovery_2025-06-10T17:07:22Z.json │ │ ├── local_localnet_2025-06-10T17:07:22Z.json │ │ ├── local_pointset_2025-06-10T17:07:22Z.json │ │ ├── local_system_2025-06-10T17:07:22Z.json │ │ ├── local_update_2025-06-10T17:07:04Z.json │ │ ├── local_update_2025-06-10T17:07:08Z.json │ │ ├── local_update_2025-06-10T17:07:11Z.json │ │ ├── local_update_2025-06-10T17:07:16Z.json │ │ ├── state_blobset_2025-06-10T17:07:34Z.attr │ │ ├── state_blobset_2025-06-10T17:07:34Z.json │ │ ├── state_blobset_2025-06-10T17:08:18Z.attr │ │ ├── state_blobset_2025-06-10T17:08:18Z.json │ │ ├── state_blobset_2025-06-10T17:08:28Z.attr │ │ ├── state_blobset_2025-06-10T17:08:28Z.json │ │ ├── state_blobset_2025-06-10T17:08:32Z.attr │ │ ├── state_blobset_2025-06-10T17:08:32Z.json │ │ ├── state_discovery_2025-06-10T17:07:04Z.attr │ │ ├── state_discovery_2025-06-10T17:07:04Z.json │ │ ├── state_discovery_2025-06-10T17:07:06Z.attr │ │ ├── state_discovery_2025-06-10T17:07:06Z.json │ │ ├── state_discovery_2025-06-10T17:07:11Z.attr │ │ ├── state_discovery_2025-06-10T17:07:11Z.json │ │ ├── state_discovery_2025-06-10T17:07:13Z.attr │ │ ├── state_discovery_2025-06-10T17:07:13Z.json │ │ ├── state_discovery_2025-06-10T17:07:17Z.attr │ │ ├── state_discovery_2025-06-10T17:07:17Z.json │ │ ├── state_discovery_2025-06-10T17:07:19Z.attr │ │ ├── state_discovery_2025-06-10T17:07:19Z.json │ │ ├── state_discovery_2025-06-10T17:07:22Z.attr │ │ ├── state_discovery_2025-06-10T17:07:22Z.json │ │ ├── state_discovery_2025-06-10T17:07:24Z.attr │ │ ├── state_discovery_2025-06-10T17:07:24Z.json │ │ ├── state_discovery_2025-06-10T17:07:26Z.attr │ │ ├── state_discovery_2025-06-10T17:07:26Z.json │ │ ├── state_discovery_2025-06-10T17:07:29Z.attr │ │ ├── state_discovery_2025-06-10T17:07:29Z.json │ │ ├── state_discovery_2025-06-10T17:07:31Z.attr │ │ ├── state_discovery_2025-06-10T17:07:31Z.json │ │ ├── state_discovery_2025-06-10T17:07:34Z.attr │ │ ├── state_discovery_2025-06-10T17:07:34Z.json │ │ ├── state_localnet_2025-06-10T17:07:04Z.attr │ │ ├── state_localnet_2025-06-10T17:07:04Z.json │ │ ├── state_localnet_2025-06-10T17:07:06Z.attr │ │ ├── state_localnet_2025-06-10T17:07:06Z.json │ │ ├── state_localnet_2025-06-10T17:07:11Z.attr │ │ ├── state_localnet_2025-06-10T17:07:11Z.json │ │ ├── state_localnet_2025-06-10T17:07:13Z.attr │ │ ├── state_localnet_2025-06-10T17:07:13Z.json │ │ ├── state_localnet_2025-06-10T17:07:17Z.attr │ │ ├── state_localnet_2025-06-10T17:07:17Z.json │ │ ├── state_localnet_2025-06-10T17:07:19Z.attr │ │ ├── state_localnet_2025-06-10T17:07:19Z.json │ │ ├── state_localnet_2025-06-10T17:07:22Z.attr │ │ ├── state_localnet_2025-06-10T17:07:22Z.json │ │ ├── state_localnet_2025-06-10T17:07:24Z.attr │ │ ├── state_localnet_2025-06-10T17:07:24Z.json │ │ ├── state_localnet_2025-06-10T17:07:26Z.attr │ │ ├── state_localnet_2025-06-10T17:07:26Z.json │ │ ├── state_localnet_2025-06-10T17:07:29Z.attr │ │ ├── state_localnet_2025-06-10T17:07:29Z.json │ │ ├── state_localnet_2025-06-10T17:07:31Z.attr │ │ ├── state_localnet_2025-06-10T17:07:31Z.json │ │ ├── state_localnet_2025-06-10T17:07:34Z.attr │ │ ├── state_localnet_2025-06-10T17:07:34Z.json │ │ ├── state_pointset_2025-06-10T17:07:04Z.attr │ │ ├── state_pointset_2025-06-10T17:07:04Z.json │ │ ├── state_pointset_2025-06-10T17:07:11Z.attr │ │ ├── state_pointset_2025-06-10T17:07:11Z.json │ │ ├── state_pointset_2025-06-10T17:07:13Z.attr │ │ ├── state_pointset_2025-06-10T17:07:13Z.json │ │ ├── state_pointset_2025-06-10T17:07:17Z.attr │ │ ├── state_pointset_2025-06-10T17:07:17Z.json │ │ ├── state_pointset_2025-06-10T17:07:19Z.attr │ │ ├── state_pointset_2025-06-10T17:07:19Z.json │ │ ├── state_pointset_2025-06-10T17:07:22Z.attr │ │ ├── state_pointset_2025-06-10T17:07:22Z.json │ │ ├── state_pointset_2025-06-10T17:07:24Z.attr │ │ ├── state_pointset_2025-06-10T17:07:24Z.json │ │ ├── state_pointset_2025-06-10T17:07:26Z.attr │ │ ├── state_pointset_2025-06-10T17:07:26Z.json │ │ ├── state_pointset_2025-06-10T17:07:29Z.attr │ │ ├── state_pointset_2025-06-10T17:07:29Z.json │ │ ├── state_pointset_2025-06-10T17:07:31Z.attr │ │ ├── state_pointset_2025-06-10T17:07:31Z.json │ │ ├── state_pointset_2025-06-10T17:07:34Z.attr │ │ ├── state_pointset_2025-06-10T17:07:34Z.json │ │ ├── state_system_2025-06-10T17:07:04Z.attr │ │ ├── state_system_2025-06-10T17:07:04Z.json │ │ ├── state_system_2025-06-10T17:07:06Z.attr │ │ ├── state_system_2025-06-10T17:07:06Z.json │ │ ├── state_system_2025-06-10T17:07:11Z.attr │ │ ├── state_system_2025-06-10T17:07:11Z.json │ │ ├── state_system_2025-06-10T17:07:13Z.attr │ │ ├── state_system_2025-06-10T17:07:13Z.json │ │ ├── state_system_2025-06-10T17:07:17Z.attr │ │ ├── state_system_2025-06-10T17:07:17Z.json │ │ ├── state_system_2025-06-10T17:07:19Z.attr │ │ ├── state_system_2025-06-10T17:07:19Z.json │ │ ├── state_system_2025-06-10T17:07:22Z.attr │ │ ├── state_system_2025-06-10T17:07:22Z.json │ │ ├── state_system_2025-06-10T17:07:24Z.attr │ │ ├── state_system_2025-06-10T17:07:24Z.json │ │ ├── state_system_2025-06-10T17:07:26Z.attr │ │ ├── state_system_2025-06-10T17:07:26Z.json │ │ ├── state_system_2025-06-10T17:07:29Z.attr │ │ ├── state_system_2025-06-10T17:07:29Z.json │ │ ├── state_system_2025-06-10T17:07:31Z.attr │ │ ├── state_system_2025-06-10T17:07:31Z.json │ │ ├── state_system_2025-06-10T17:07:34Z.attr │ │ ├── state_system_2025-06-10T17:07:34Z.json │ │ ├── state_system_2025-06-10T17:08:10Z.attr │ │ ├── state_system_2025-06-10T17:08:10Z.json │ │ ├── state_system_2025-06-10T17:08:12Z.attr │ │ ├── state_system_2025-06-10T17:08:12Z.json │ │ ├── state_system_2025-06-10T17:08:18Z.attr │ │ ├── state_system_2025-06-10T17:08:18Z.json │ │ ├── state_system_2025-06-10T17:08:28Z.attr │ │ ├── state_system_2025-06-10T17:08:28Z.json │ │ ├── state_system_2025-06-10T17:08:32Z.attr │ │ ├── state_system_2025-06-10T17:08:32Z.json │ │ ├── state_update_2025-06-10T17:07:04Z.attr │ │ ├── state_update_2025-06-10T17:07:04Z.json │ │ ├── state_update_2025-06-10T17:07:06Z.attr │ │ ├── state_update_2025-06-10T17:07:06Z.json │ │ ├── state_update_2025-06-10T17:07:11Z.attr │ │ ├── state_update_2025-06-10T17:07:11Z.json │ │ ├── state_update_2025-06-10T17:07:13Z.attr │ │ ├── state_update_2025-06-10T17:07:13Z.json │ │ ├── state_update_2025-06-10T17:07:17Z.attr │ │ ├── state_update_2025-06-10T17:07:17Z.json │ │ ├── state_update_2025-06-10T17:07:19Z.attr │ │ ├── state_update_2025-06-10T17:07:19Z.json │ │ ├── state_update_2025-06-10T17:07:22Z.attr │ │ ├── state_update_2025-06-10T17:07:22Z.json │ │ ├── state_update_2025-06-10T17:07:24Z.attr │ │ ├── state_update_2025-06-10T17:07:24Z.json │ │ ├── state_update_2025-06-10T17:07:26Z.attr │ │ ├── state_update_2025-06-10T17:07:26Z.json │ │ ├── state_update_2025-06-10T17:07:29Z.attr │ │ ├── state_update_2025-06-10T17:07:29Z.json │ │ ├── state_update_2025-06-10T17:07:31Z.attr │ │ ├── state_update_2025-06-10T17:07:31Z.json │ │ ├── state_update_2025-06-10T17:07:34Z.attr │ │ ├── state_update_2025-06-10T17:07:34Z.json │ │ ├── state_update_2025-06-10T17:07:58Z.attr │ │ ├── state_update_2025-06-10T17:07:58Z.json │ │ ├── state_update_2025-06-10T17:08:10Z.attr │ │ ├── state_update_2025-06-10T17:08:10Z.json │ │ ├── state_update_2025-06-10T17:08:12Z.attr │ │ ├── state_update_2025-06-10T17:08:12Z.json │ │ ├── state_update_2025-06-10T17:08:18Z.attr │ │ ├── state_update_2025-06-10T17:08:18Z.json │ │ ├── state_update_2025-06-10T17:08:28Z.attr │ │ ├── state_update_2025-06-10T17:08:28Z.json │ │ ├── state_update_2025-06-10T17:08:32Z.attr │ │ ├── state_update_2025-06-10T17:08:32Z.json │ │ ├── state_update_2025-06-10T17:08:34Z.attr │ │ ├── state_update_2025-06-10T17:08:34Z.json │ │ ├── state_validation_2025-06-10T17:07:04Z.attr │ │ └── state_validation_2025-06-10T17:07:04Z.json ├── endpoint_connection_bad_hash │ ├── config_blobset.attr │ ├── config_blobset.json │ ├── config_discovery.attr │ ├── config_discovery.json │ ├── config_localnet.attr │ ├── config_localnet.json │ ├── config_pointset.attr │ ├── config_pointset.json │ ├── config_system.attr │ ├── config_system.json │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_blobset.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ ├── state_update.json │ ├── state_validation.attr │ ├── state_validation.json │ ├── stray │ │ ├── config_update_2025-06-10T17:08:10Z.attr │ │ ├── config_update_2025-06-10T17:08:10Z.json │ │ ├── state_discovery_2025-06-10T17:08:06Z.attr │ │ ├── state_discovery_2025-06-10T17:08:06Z.json │ │ ├── state_localnet_2025-06-10T17:08:06Z.attr │ │ ├── state_localnet_2025-06-10T17:08:06Z.json │ │ ├── state_pointset_2025-06-10T17:08:06Z.attr │ │ └── state_pointset_2025-06-10T17:08:06Z.json │ └── trace │ │ ├── config_blobset_2025-06-10T17:08:22Z.attr │ │ ├── config_blobset_2025-06-10T17:08:22Z.json │ │ ├── config_discovery_2025-06-10T17:08:21Z.attr │ │ ├── config_discovery_2025-06-10T17:08:21Z.json │ │ ├── config_localnet_2025-06-10T17:08:23Z.attr │ │ ├── config_localnet_2025-06-10T17:08:23Z.json │ │ ├── config_pointset_2025-06-10T17:08:23Z.attr │ │ ├── config_pointset_2025-06-10T17:08:23Z.json │ │ ├── config_system_2025-06-10T17:08:21Z.attr │ │ ├── config_system_2025-06-10T17:08:21Z.json │ │ ├── config_update_2025-06-10T17:08:04Z.attr │ │ ├── config_update_2025-06-10T17:08:04Z.json │ │ ├── config_update_2025-06-10T17:08:07Z.attr │ │ ├── config_update_2025-06-10T17:08:07Z.json │ │ ├── config_update_2025-06-10T17:08:08Z.json │ │ ├── config_update_2025-06-10T17:08:10Z.attr │ │ ├── config_update_2025-06-10T17:08:10Z.json │ │ ├── config_update_2025-06-10T17:08:11Z.attr │ │ ├── config_update_2025-06-10T17:08:11Z.json │ │ ├── config_update_2025-06-10T17:08:13Z.json │ │ ├── config_update_2025-06-10T17:08:15Z.attr │ │ ├── config_update_2025-06-10T17:08:15Z.json │ │ ├── config_update_2025-06-10T17:08:16Z.attr │ │ ├── config_update_2025-06-10T17:08:16Z.json │ │ ├── config_update_2025-06-10T17:08:18Z.json │ │ ├── config_update_2025-06-10T17:08:20Z.attr │ │ ├── config_update_2025-06-10T17:08:20Z.json │ │ ├── config_update_2025-06-10T17:08:21Z.attr │ │ ├── config_update_2025-06-10T17:08:21Z.json │ │ ├── config_update_2025-06-10T17:08:22Z.attr │ │ ├── config_update_2025-06-10T17:08:22Z.json │ │ ├── config_update_2025-06-10T17:08:25Z.json │ │ ├── events_pointset_2025-06-10T17:07:58Z.attr │ │ ├── events_pointset_2025-06-10T17:07:58Z.json │ │ ├── events_pointset_2025-06-10T17:08:03Z.attr │ │ ├── events_pointset_2025-06-10T17:08:03Z.json │ │ ├── events_pointset_2025-06-10T17:08:13Z.attr │ │ ├── events_pointset_2025-06-10T17:08:13Z.json │ │ ├── events_pointset_2025-06-10T17:08:23Z.attr │ │ ├── events_pointset_2025-06-10T17:08:23Z.json │ │ ├── events_system_2025-06-10T17:07:58Z.attr │ │ ├── events_system_2025-06-10T17:07:58Z.json │ │ ├── events_system_2025-06-10T17:08:03Z.attr │ │ ├── events_system_2025-06-10T17:08:03Z.json │ │ ├── events_system_2025-06-10T17:08:13Z.attr │ │ ├── events_system_2025-06-10T17:08:13Z.json │ │ ├── events_system_2025-06-10T17:08:23Z.attr │ │ ├── events_system_2025-06-10T17:08:23Z.json │ │ ├── local_blobset_2025-06-10T17:08:20Z.json │ │ ├── local_discovery_2025-06-10T17:08:20Z.json │ │ ├── local_localnet_2025-06-10T17:08:20Z.json │ │ ├── local_pointset_2025-06-10T17:08:20Z.json │ │ ├── local_system_2025-06-10T17:08:20Z.json │ │ ├── local_update_2025-06-10T17:08:04Z.json │ │ ├── local_update_2025-06-10T17:08:07Z.json │ │ ├── local_update_2025-06-10T17:08:10Z.json │ │ ├── local_update_2025-06-10T17:08:15Z.json │ │ ├── state_discovery_2025-06-10T17:08:04Z.attr │ │ ├── state_discovery_2025-06-10T17:08:04Z.json │ │ ├── state_discovery_2025-06-10T17:08:10Z.attr │ │ ├── state_discovery_2025-06-10T17:08:10Z.json │ │ ├── state_discovery_2025-06-10T17:08:12Z.attr │ │ ├── state_discovery_2025-06-10T17:08:12Z.json │ │ ├── state_discovery_2025-06-10T17:08:15Z.attr │ │ ├── state_discovery_2025-06-10T17:08:15Z.json │ │ ├── state_discovery_2025-06-10T17:08:17Z.attr │ │ ├── state_discovery_2025-06-10T17:08:17Z.json │ │ ├── state_discovery_2025-06-10T17:08:20Z.attr │ │ ├── state_discovery_2025-06-10T17:08:20Z.json │ │ ├── state_discovery_2025-06-10T17:08:22Z.attr │ │ ├── state_discovery_2025-06-10T17:08:22Z.json │ │ ├── state_localnet_2025-06-10T17:08:04Z.attr │ │ ├── state_localnet_2025-06-10T17:08:04Z.json │ │ ├── state_localnet_2025-06-10T17:08:10Z.attr │ │ ├── state_localnet_2025-06-10T17:08:10Z.json │ │ ├── state_localnet_2025-06-10T17:08:12Z.attr │ │ ├── state_localnet_2025-06-10T17:08:12Z.json │ │ ├── state_localnet_2025-06-10T17:08:15Z.attr │ │ ├── state_localnet_2025-06-10T17:08:15Z.json │ │ ├── state_localnet_2025-06-10T17:08:17Z.attr │ │ ├── state_localnet_2025-06-10T17:08:17Z.json │ │ ├── state_localnet_2025-06-10T17:08:20Z.attr │ │ ├── state_localnet_2025-06-10T17:08:20Z.json │ │ ├── state_localnet_2025-06-10T17:08:22Z.attr │ │ ├── state_localnet_2025-06-10T17:08:22Z.json │ │ ├── state_pointset_2025-06-10T17:08:04Z.attr │ │ ├── state_pointset_2025-06-10T17:08:04Z.json │ │ ├── state_pointset_2025-06-10T17:08:10Z.attr │ │ ├── state_pointset_2025-06-10T17:08:10Z.json │ │ ├── state_pointset_2025-06-10T17:08:12Z.attr │ │ ├── state_pointset_2025-06-10T17:08:12Z.json │ │ ├── state_pointset_2025-06-10T17:08:15Z.attr │ │ ├── state_pointset_2025-06-10T17:08:15Z.json │ │ ├── state_pointset_2025-06-10T17:08:17Z.attr │ │ ├── state_pointset_2025-06-10T17:08:17Z.json │ │ ├── state_pointset_2025-06-10T17:08:20Z.attr │ │ ├── state_pointset_2025-06-10T17:08:20Z.json │ │ ├── state_pointset_2025-06-10T17:08:22Z.attr │ │ ├── state_pointset_2025-06-10T17:08:22Z.json │ │ ├── state_system_2025-06-10T17:08:04Z.attr │ │ ├── state_system_2025-06-10T17:08:04Z.json │ │ ├── state_system_2025-06-10T17:08:06Z.attr │ │ ├── state_system_2025-06-10T17:08:06Z.json │ │ ├── state_system_2025-06-10T17:08:10Z.attr │ │ ├── state_system_2025-06-10T17:08:10Z.json │ │ ├── state_system_2025-06-10T17:08:12Z.attr │ │ ├── state_system_2025-06-10T17:08:12Z.json │ │ ├── state_system_2025-06-10T17:08:15Z.attr │ │ ├── state_system_2025-06-10T17:08:15Z.json │ │ ├── state_system_2025-06-10T17:08:17Z.attr │ │ ├── state_system_2025-06-10T17:08:17Z.json │ │ ├── state_system_2025-06-10T17:08:20Z.attr │ │ ├── state_system_2025-06-10T17:08:20Z.json │ │ ├── state_system_2025-06-10T17:08:22Z.attr │ │ ├── state_system_2025-06-10T17:08:22Z.json │ │ ├── state_update_2025-06-10T17:08:04Z.attr │ │ ├── state_update_2025-06-10T17:08:04Z.json │ │ ├── state_update_2025-06-10T17:08:06Z.attr │ │ ├── state_update_2025-06-10T17:08:06Z.json │ │ ├── state_update_2025-06-10T17:08:10Z.attr │ │ ├── state_update_2025-06-10T17:08:10Z.json │ │ ├── state_update_2025-06-10T17:08:12Z.attr │ │ ├── state_update_2025-06-10T17:08:12Z.json │ │ ├── state_update_2025-06-10T17:08:15Z.attr │ │ ├── state_update_2025-06-10T17:08:15Z.json │ │ ├── state_update_2025-06-10T17:08:17Z.attr │ │ ├── state_update_2025-06-10T17:08:17Z.json │ │ ├── state_update_2025-06-10T17:08:20Z.attr │ │ ├── state_update_2025-06-10T17:08:20Z.json │ │ ├── state_update_2025-06-10T17:08:22Z.attr │ │ ├── state_update_2025-06-10T17:08:22Z.json │ │ ├── state_update_2025-06-10T17:08:24Z.attr │ │ ├── state_update_2025-06-10T17:08:24Z.json │ │ ├── state_validation_2025-06-10T17:08:04Z.attr │ │ └── state_validation_2025-06-10T17:08:04Z.json ├── endpoint_connection_error │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_blobset.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── endpoint_connection_retry │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_blobset.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── endpoint_connection_success_alternate │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_blobset.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── endpoint_connection_success_reconnect │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_blobset.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── endpoint_failure_and_restart │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_blobset.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── endpoint_redirect_and_restart │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_blobset.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── enumerate_families │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_discovery.attr │ ├── events_discovery.json │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── enumerate_features │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_discovery.attr │ ├── events_discovery.json │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── enumerate_multi │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_discovery.attr │ ├── events_discovery.json │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── enumerate_nothing │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_discovery.attr │ ├── events_discovery.json │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_blobset.attr │ ├── state_blobset.json │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── enumerate_pointset │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_discovery.attr │ ├── events_discovery.json │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── extra_config │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── family_ether_addr │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── family_ipv4_addr │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── family_ipv6_addr │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── gateway_attach_handling │ ├── device_system.log │ ├── sequence.log │ └── sequence.md ├── gateway_proxy_events │ ├── device_system.log │ ├── sequence.log │ └── sequence.md ├── gateway_proxy_state │ ├── device_system.log │ ├── sequence.log │ └── sequence.md ├── pointset_publish │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── pointset_publish_interval │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── pointset_remove_point │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── pointset_request_extraneous │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── scan_periodic_now_enumerate │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_discovery.attr │ ├── events_discovery.json │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── scan_single_future │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_discovery.attr │ ├── events_discovery.json │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── scan_single_now │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_discovery.attr │ ├── events_discovery.json │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── scan_single_past │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── state_make_model │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── state_software │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── system_last_update │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── system_min_loglevel │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── system_mode_restart │ ├── config_discovery.attr │ ├── config_discovery.json │ ├── config_localnet.attr │ ├── config_localnet.json │ ├── config_pointset.attr │ ├── config_pointset.json │ ├── config_system.attr │ ├── config_system.json │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ ├── state_update.json │ ├── state_validation.attr │ └── state_validation.json ├── too_much_state │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── valid_serial_no │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── writeback_failure │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── writeback_invalid │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json └── writeback_success │ ├── config_update.attr │ ├── config_update.json │ ├── device_system.log │ ├── events_pointset.attr │ ├── events_pointset.json │ ├── events_system.attr │ ├── events_system.json │ ├── local_discovery.json │ ├── local_localnet.json │ ├── local_pointset.json │ ├── local_system.json │ ├── local_update.json │ ├── sequence.log │ ├── sequence.md │ ├── state_discovery.attr │ ├── state_discovery.json │ ├── state_localnet.attr │ ├── state_localnet.json │ ├── state_pointset.attr │ ├── state_pointset.json │ ├── state_system.attr │ ├── state_system.json │ ├── state_update.attr │ └── state_update.json ├── settings.gradle ├── src ├── main │ └── java │ │ └── com │ │ └── google │ │ ├── bos │ │ └── iot │ │ │ └── core │ │ │ └── proxy │ │ │ ├── CloudIotManager.java │ │ │ ├── IotCoreProxy.java │ │ │ ├── IotReflectorClient.java │ │ │ ├── MessageBundle.java │ │ │ ├── MockPublisher.java │ │ │ ├── MqttPublisher.java │ │ │ ├── NullPublisher.java │ │ │ ├── ProjectMetadata.java │ │ │ ├── ProxyConfig.java │ │ │ ├── ProxyTarget.java │ │ │ └── RetryHttpInitializerWrapper.java │ │ ├── daq │ │ └── mqtt │ │ │ ├── WebServerRunner.java │ │ │ ├── mapping │ │ │ └── MappingAgent.java │ │ │ ├── registrar │ │ │ ├── LocalDevice.java │ │ │ ├── Registrar.java │ │ │ ├── Summarizer.java │ │ │ └── SwarmMessage.java │ │ │ ├── sequencer │ │ │ ├── AllCapabilities.java │ │ │ ├── Capability.java │ │ │ ├── DefaultLogLevel.java │ │ │ ├── DiscoveryScanMode.java │ │ │ ├── Feature.java │ │ │ ├── PointsetBase.java │ │ │ ├── SequenceBase.java │ │ │ ├── SequenceRunner.java │ │ │ ├── Summary.java │ │ │ ├── ValidateSchema.java │ │ │ ├── WithCapability.java │ │ │ ├── semantic │ │ │ │ ├── SemanticDate.java │ │ │ │ └── SemanticValue.java │ │ │ └── sequences │ │ │ │ ├── BlobsetSequences.java │ │ │ │ ├── ConfigSequences.java │ │ │ │ ├── DiscoverySequences.java │ │ │ │ ├── GatewaySequences.java │ │ │ │ ├── LocalnetSequences.java │ │ │ │ ├── PointsetSequences.java │ │ │ │ ├── ProxiedSequences.java │ │ │ │ ├── SystemSequences.java │ │ │ │ └── WritebackSequences.java │ │ │ ├── util │ │ │ ├── AtomicAverage.java │ │ │ ├── CloudDeviceSettings.java │ │ │ ├── CloudIotManager.java │ │ │ ├── ConfigManager.java │ │ │ ├── ConfigUtil.java │ │ │ ├── DeviceExceptionManager.java │ │ │ ├── DeviceGatewayBoundException.java │ │ │ ├── Diagnoser.java │ │ │ ├── Dispatcher.java │ │ │ ├── DurationAverage.java │ │ │ ├── FileDataSink.java │ │ │ ├── FirestoreDataSink.java │ │ │ ├── ImpulseRunningAverage.java │ │ │ ├── IotMockProvider.java │ │ │ ├── IotReflectorClient.java │ │ │ ├── MessageHandler.java │ │ │ ├── MessagePublisher.java │ │ │ ├── ObjectDiffEngine.java │ │ │ ├── PubSubClient.java │ │ │ ├── PubSubPusher.java │ │ │ ├── PublishPriority.java │ │ │ ├── RetryHttpInitializerWrapper.java │ │ │ ├── RunningAverageBase.java │ │ │ ├── SamplingRange.java │ │ │ ├── SimpleWebServer.java │ │ │ ├── TimePeriodConstants.java │ │ │ └── providers │ │ │ │ ├── BacnetFamilyProvider.java │ │ │ │ ├── FamilyProvider.java │ │ │ │ ├── IotFamilyProvider.java │ │ │ │ └── VendorFamilyProvider.java │ │ │ └── validator │ │ │ ├── AugmentedSystemConfig.java │ │ │ ├── DiscoveryValidator.java │ │ │ ├── ErrorCollector.java │ │ │ ├── LoggingHandler.java │ │ │ ├── MessageReadingClient.java │ │ │ ├── PointsetValidator.java │ │ │ ├── Reflector.java │ │ │ ├── ReportingDevice.java │ │ │ ├── SchemaTester.java │ │ │ └── Validator.java │ │ └── udmi │ │ └── util │ │ ├── IotProvider.java │ │ └── PubSubReflector.java └── test │ ├── configs │ └── localnet.json │ └── java │ └── com │ └── google │ └── daq │ └── mqtt │ ├── TestCommon.java │ ├── WebServerRunnerTest.java │ ├── mapping │ └── MappingAgentTest.java │ ├── registrar │ ├── LocalDeviceTest.java │ └── RegistrarTest.java │ ├── sequencer │ ├── FeatureTest.java │ ├── SequenceBaseTest.java │ └── SequenceRunnerTest.java │ ├── util │ ├── BacnetFamilyProviderTest.java │ ├── ImpulseRunningAverageTest.java │ └── RunningAverageBaseTest.java │ └── validator │ ├── BasicTest.java │ ├── PlaybackTest.java │ └── TestBase.java ├── traces ├── upgrade.in │ └── LKP-38 │ │ └── 001_update_state.json └── upgrade.out │ └── validation_report.json └── validator.iml /.gitattributes: -------------------------------------------------------------------------------- 1 | /gencode/** linguist-generated=true 2 | validator/sequences/**/*.json linguist-generated=true 3 | validator/sequences/**/*.attr linguist-generated=true 4 | validator/sequences/**/*.log linguist-generated=true 5 | -------------------------------------------------------------------------------- /bin/diagnoser: -------------------------------------------------------------------------------- 1 | toolrun -------------------------------------------------------------------------------- /bin/fail: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | # 3 | # Convenience script to simply output a message and then fail. Useful for testing in the form of: 4 | # 5 | # do_test_stuff || bin/fail the testing script failed 6 | # 7 | 8 | echo fail because $@ 9 | 10 | false 11 | -------------------------------------------------------------------------------- /bin/registrar: -------------------------------------------------------------------------------- 1 | toolrun -------------------------------------------------------------------------------- /bin/start_hivemq: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | sudo systemctl stop mosquitto || true 4 | 5 | docker run -p 1883:1883 hivemq/hivemq-ce 6 | -------------------------------------------------------------------------------- /bin/test_etcd: -------------------------------------------------------------------------------- 1 | #/bin/bash -e 2 | 3 | udmis/bin/etcdctl member list 4 | -------------------------------------------------------------------------------- /bin/timestamp: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | timestamp=$(date -Is -u) 4 | 5 | echo ${timestamp%+*}Z $@ 6 | -------------------------------------------------------------------------------- /bin/validator: -------------------------------------------------------------------------------- 1 | toolrun -------------------------------------------------------------------------------- /bin/which_venv_pip3: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | for f in venv/bin/pip3 $HOME/venv/bin/pip3; do 4 | if [[ -x "$f" ]]; then 5 | echo "$f" 6 | exit 0 7 | fi 8 | done 9 | 10 | >&2 echo Cannot find venv 11 | false 12 | -------------------------------------------------------------------------------- /cloud/gcp/modules/terraform-google-udmi-site/main.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | google = { 4 | #source = "hashicorp/google" 5 | version = "~> 3.0" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /cloud/gcp/modules/terraform-google-udmi-site/outputs.tf: -------------------------------------------------------------------------------- 1 | output "event_topic" { 2 | value = google_pubsub_subscription.site_pubsub_event_subscription.name 3 | } 4 | 5 | output "site_members" { 6 | value = var.site_members 7 | } 8 | -------------------------------------------------------------------------------- /cloud/gcp/modules/terraform-google-udmi-site/sourcerepo.tf: -------------------------------------------------------------------------------- 1 | resource "google_sourcerepo_repository" "udmi_site_sourcerepo" { 2 | name = var.site_name 3 | project = var.gcp_project 4 | } -------------------------------------------------------------------------------- /cloud/gcp/outputs.tf: -------------------------------------------------------------------------------- 1 | output "gcp_project_id" { 2 | value = var.gcp_project_id 3 | } -------------------------------------------------------------------------------- /cloud/gcp/provider.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 0.12" 3 | } 4 | provider "google" { 5 | credentials = file(var.gcp_auth_file) 6 | project = var.gcp_project_name 7 | region = var.gcp_region 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /cloud/gcp/readme.md: -------------------------------------------------------------------------------- 1 | # UDMI terraform configuration files 2 | 3 | Refer to the [UDMI terraform configuration document](../../docs/cloud/gcp/terraform.md) for information on how to use the UDMI terraform configuration files. 4 | -------------------------------------------------------------------------------- /cloud/gcp/sourcerepo.tf: -------------------------------------------------------------------------------- 1 | resource "google_sourcerepo_repository" "udmi-terraform" { 2 | name = "udmi-terraform" 3 | project = var.gcp_project_id 4 | } -------------------------------------------------------------------------------- /common/src/main/java/com/google/udmi/util/ValidationError.java: -------------------------------------------------------------------------------- 1 | package com.google.udmi.util; 2 | 3 | public class ValidationError extends RuntimeException { 4 | 5 | public ValidationError(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /common/src/main/java/com/google/udmi/util/ValidationWarning.java: -------------------------------------------------------------------------------- 1 | package com.google.udmi.util; 2 | 3 | public class ValidationWarning extends ValidationError { 4 | 5 | public ValidationWarning(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /contrib/mango/.gitignore: -------------------------------------------------------------------------------- 1 | data/ 2 | -------------------------------------------------------------------------------- /contrib/mango/mango_docker: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -o errexit -o nounset 3 | 4 | docker run --rm \ 5 | -p 8080:8080 \ 6 | -p 8443:8443 \ 7 | -v "$(dirname "$0")"/data:/opt/mango-data \ 8 | ghcr.io/radixiot/mango:latest 9 | -------------------------------------------------------------------------------- /docs/cloud/readme.md: -------------------------------------------------------------------------------- 1 | [**UDMI**](../../) / [**Docs**](../) / [Cloud](#) 2 | 3 | # Cloud 4 | 5 | UDMI is designed to work with any MQTT broker or cloud platform 6 | 7 | Tooling and cloud infrastructure is provided for the following: 8 | - [GCP](gcp/) 9 | -------------------------------------------------------------------------------- /docs/device_testing/img/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/circle.png -------------------------------------------------------------------------------- /docs/device_testing/img/circle_no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/circle_no.png -------------------------------------------------------------------------------- /docs/device_testing/img/circle_yes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/circle_yes.png -------------------------------------------------------------------------------- /docs/device_testing/img/no-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/no-black.png -------------------------------------------------------------------------------- /docs/device_testing/img/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/no.png -------------------------------------------------------------------------------- /docs/device_testing/img/no.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/no.xcf -------------------------------------------------------------------------------- /docs/device_testing/img/products/ALC_OFHI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/ALC_OFHI.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/FS-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/FS-32.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/FW-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/FW-14.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/LROC_400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/LROC_400.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/Mango_os.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/Mango_os.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/O3-DIN-CPU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/O3-DIN-CPU.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/RED5-EDGE-634.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/RED5-EDGE-634.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/RED5-PLUS-1180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/RED5-PLUS-1180.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/danfoss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/danfoss.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/distech_apex.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/distech_apex.jpg -------------------------------------------------------------------------------- /docs/device_testing/img/products/eBCON-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/eBCON-2.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/enlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/enlighted.png -------------------------------------------------------------------------------- /docs/device_testing/img/products/tridium_jace-8000.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/tridium_jace-8000.jpg -------------------------------------------------------------------------------- /docs/device_testing/img/products/tyrrell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/tyrrell.jpg -------------------------------------------------------------------------------- /docs/device_testing/img/products/vayandata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/products/vayandata.png -------------------------------------------------------------------------------- /docs/device_testing/img/skip-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/skip-black.png -------------------------------------------------------------------------------- /docs/device_testing/img/skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/skip.png -------------------------------------------------------------------------------- /docs/device_testing/img/skip.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/skip.xcf -------------------------------------------------------------------------------- /docs/device_testing/img/untested.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/untested.png -------------------------------------------------------------------------------- /docs/device_testing/img/untested.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/untested.xcf -------------------------------------------------------------------------------- /docs/device_testing/img/yes-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/yes-black.png -------------------------------------------------------------------------------- /docs/device_testing/img/yes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/yes.png -------------------------------------------------------------------------------- /docs/device_testing/img/yes.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/device_testing/img/yes.xcf -------------------------------------------------------------------------------- /docs/specs/sequences/images/state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/specs/sequences/images/state.png -------------------------------------------------------------------------------- /docs/specs/sequences/images/writeback-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/specs/sequences/images/writeback-basic.png -------------------------------------------------------------------------------- /docs/specs/sequences/images/writeback-etag-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/docs/specs/sequences/images/writeback-etag-example.png -------------------------------------------------------------------------------- /docs/tools/exceptions.json: -------------------------------------------------------------------------------- 1 | { 2 | "LTGW-": { 3 | "#/pointset/points: maximum size:": {}, 4 | "validating sample file logentry.json": {} 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /docs/udmis/readme.md: -------------------------------------------------------------------------------- 1 | [**UDMI**](../../) / [**Docs**](../) / [UDMIS](#) 2 | 3 | * [Class Overview](class_overview.md) 4 | * [Local docker](local_docker.md) 5 | -------------------------------------------------------------------------------- /etc/category.json: -------------------------------------------------------------------------------- 1 | { 2 | "$udmi_version": "1.5.2", 3 | "title": "Category", 4 | "$comment": "Auto-generated category mappings from bin/gencode_categories.", 5 | "type": "string", 6 | "oneOf": [ 7 | @@ gencode stuff goes here 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /etc/local_tests.txt: -------------------------------------------------------------------------------- 1 | broken_config 2 | endpoint_connection_retry 3 | pointset_publish_interval 4 | extra_config 5 | system_last_update 6 | -------------------------------------------------------------------------------- /etc/schema_navbar.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /etc/schema_nostate.out: -------------------------------------------------------------------------------- 1 | RESULT pass schemas device_state_stable STABLE 10/10 Schema validation passed 2 | RESULT pass schemas events_pointset_stable STABLE 10/10 Schema validation passed 3 | RESULT skip endpoint.config endpoint_connection_bad_alternate PREVIEW 0/0 State testing disabled 4 | -------------------------------------------------------------------------------- /etc/schema_readme_template.md: -------------------------------------------------------------------------------- 1 | [**UDMI**](../../) / [Schema](#) 2 | 3 | 4 | 5 | 6 | # UDMI Schema 7 | 8 | ## Messages 9 | 10 | ## Site Model 11 | 12 | ## Blobs 13 | 14 | ## Other 15 | -------------------------------------------------------------------------------- /misc/.gitignore: -------------------------------------------------------------------------------- 1 | tmp 2 | var 3 | build 4 | -------------------------------------------------------------------------------- /misc/automated_sequencer/reporter/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | tag=latest 3 | image_name=autosequencer-reporter 4 | PROJECT_ID=bos-platform-artifacts 5 | REGISTRY=us-central1-docker.pkg.dev/$PROJECT_ID/udmi 6 | 7 | docker build --no-cache -t $image_name:$tag . 8 | docker tag $image_name:$tag $REGISTRY/$image_name:$tag 9 | docker push $REGISTRY/$image_name:$tag -------------------------------------------------------------------------------- /misc/automated_sequencer/reporter/python/requirements.txt: -------------------------------------------------------------------------------- 1 | Jinja2 2 | -------------------------------------------------------------------------------- /misc/automated_sequencer/reporter/python/run_metadata.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | 3 | 4 | # ESULT pass discovery.scan periodic_scan ALPHA 5 Sequence complete 5 | @dataclass 6 | class RunMetadata: 7 | timestamp: int = 0 8 | udmi_commit_hash: str = '' 9 | -------------------------------------------------------------------------------- /misc/automated_sequencer/sequencer/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | tag=latest 3 | image_name=autosequencer-sequencer 4 | PROJECT_ID=$1 5 | REGISTRY=us-central1-docker.pkg.dev/$PROJECT_ID/udmi 6 | 7 | docker build --no-cache -t $image_name:$tag . 8 | docker tag $image_name:$tag $REGISTRY/$image_name:$tag 9 | docker push $REGISTRY/$image_name:$tag -------------------------------------------------------------------------------- /misc/bin/build: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/misc/bin/build -------------------------------------------------------------------------------- /misc/discoverynode/.gitignore: -------------------------------------------------------------------------------- 1 | venv/ -------------------------------------------------------------------------------- /misc/discoverynode/bin/setup: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | ROOT_DIR=$(realpath $(dirname $0)/..) -------------------------------------------------------------------------------- /misc/discoverynode/etc/base_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "mqtt": { 3 | }, 4 | "udmi": { 5 | "discovery": { 6 | "ipv4": "false", 7 | "ether": false, 8 | "bacnet": false 9 | } 10 | }, 11 | "bacnet": { 12 | "ip": "192.168.11.251" 13 | } 14 | } -------------------------------------------------------------------------------- /misc/discoverynode/src/udmi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/misc/discoverynode/src/udmi/__init__.py -------------------------------------------------------------------------------- /misc/discoverynode/src/udmi/publishers/mock_publisher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/misc/discoverynode/src/udmi/publishers/mock_publisher.py -------------------------------------------------------------------------------- /misc/discoverynode/testing/docker/bacnet_device/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | ROOT_DIR=$(dirname $(realpath $0 )) 3 | cd $ROOT_DIR 4 | docker build -t test-bacnet-device -f Dockerfile . -------------------------------------------------------------------------------- /misc/discoverynode/testing/docker/discovery_node/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | ROOT_DIR=$(dirname $(realpath $0 )) 3 | cd $ROOT_DIR/../../../src 4 | docker build -t test-discovery_node -f $ROOT_DIR/Dockerfile . 5 | -------------------------------------------------------------------------------- /misc/discoverynode/testing/docker/discovery_node/entrypoint.sh: -------------------------------------------------------------------------------- 1 | echo hello from entry point 2 | TIMESTAMP=$(date +%s) 3 | echo $TIMESTAMP 4 | tcpdump -ni eth0 -w /pcap/$TIMESTAMP.pcap & 5 | python -m pytest -s tests/test_integration.py -------------------------------------------------------------------------------- /misc/discoverynode/testing/e2e/.gitignore: -------------------------------------------------------------------------------- 1 | discovery_node_config.json 2 | -------------------------------------------------------------------------------- /misc/distroless_tools/readme.md: -------------------------------------------------------------------------------- 1 | # Distroless Tools 2 | 3 | This directory builds the UDMI tooling (validator) using [distroless containers](https://github.com/GoogleContainerTools/distroless) 4 | 5 | ## Usage 6 | 7 | ```shell 8 | $ misc/distroless_tools/build [PUSH_REf] 9 | ``` 10 | -------------------------------------------------------------------------------- /misc/etc/dummy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/misc/etc/dummy -------------------------------------------------------------------------------- /misc/gcloud_iot_config/README.md: -------------------------------------------------------------------------------- 1 | # GCP IoT Config Store 2 | 3 | Stores a complete history of all config messages sent to devices in a GCP Project in GCS 4 | 5 | ## Installation 6 | `./deploy PROJECT_ID` -------------------------------------------------------------------------------- /misc/gcloud_iot_config/functions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "config_to_gcs", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "@google-cloud/pubsub": "^0.18.0", 6 | "@google-cloud/iot": "2.3.4", 7 | "@google-cloud/storage": "6.5.2" 8 | } 9 | } -------------------------------------------------------------------------------- /misc/gcloud_iot_connection_log/functions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iotlogs-to-bq", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "@google-cloud/pubsub": "^0.18.0", 6 | "@google-cloud/bigquery": "^3.0.0" 7 | } 8 | } -------------------------------------------------------------------------------- /misc/gcloud_iot_pingreq_log/functions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iotlogs-to-bq", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "@google-cloud/pubsub": "^0.18.0", 6 | "@google-cloud/bigquery": "^3.0.0" 7 | } 8 | } -------------------------------------------------------------------------------- /misc/gcloud_messages_telemetry/functions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "message-store", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "@google-cloud/pubsub": "^0.18.0", 6 | "@google-cloud/bigquery": "^3.0.0", 7 | "@google-cloud/storage": "6.5.2" 8 | } 9 | } -------------------------------------------------------------------------------- /misc/gcloud_state_hardware_software/functions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "state-to-bq", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "@google-cloud/pubsub": "^0.18.0", 6 | "@google-cloud/bigquery": "^3.0.0" 7 | } 8 | } -------------------------------------------------------------------------------- /misc/gcloud_store_message/functions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "message-store", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "@google-cloud/pubsub": "^0.18.0", 6 | "@google-cloud/bigquery": "^3.0.0", 7 | "@google-cloud/storage": "6.5.2" 8 | } 9 | } -------------------------------------------------------------------------------- /misc/replay_validated/requirements.txt: -------------------------------------------------------------------------------- 1 | google-api-core 2 | google-api-python-client 3 | google-auth 4 | google-cloud-bigquery 5 | google-cloud-pubsub 6 | 7 | -------------------------------------------------------------------------------- /proxy/attributes.json: -------------------------------------------------------------------------------- 1 | { 2 | "proxy_sub_base": "debug", 3 | "proxy_topic_base": "udmi", 4 | "proxy_st-atmosphere_target": "essential-keep-197822", 5 | "proxy_st-atmosphere_registry": "st-atmo-sphere", 6 | "proxy_st-atmosphere_region": "us-central1" 7 | } 8 | -------------------------------------------------------------------------------- /pubber/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /pubber/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /pubber/.idea/dictionaries/peringknife.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | addr 5 | localnet 6 | pubber 7 | subblock 8 | 9 | 10 | -------------------------------------------------------------------------------- /pubber/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /pubber/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /pubber/.idea/runConfigurations/_template__of_Application.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /pubber/etc/Dockerfile.puller: -------------------------------------------------------------------------------- 1 | # Image name: udmi/pubber 2 | # 3 | # Docker container for scaled pubber instances. 4 | # 5 | 6 | FROM adoptopenjdk/openjdk11:latest 7 | 8 | WORKDIR /root/pubber 9 | 10 | COPY pubber/bin/ bin/ 11 | 12 | COPY pubber/build/libs build/libs/ 13 | 14 | ENTRYPOINT ["bin/puller"] 15 | -------------------------------------------------------------------------------- /pubber/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/pubber/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /pubber/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Feb 11 09:15:14 PST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /pubber/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'pubber' 2 | -------------------------------------------------------------------------------- /pubber/src/test/configs/localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "2020-05-01T13:39:07Z", 3 | "version" : "1.3.14", 4 | "localnet" : { 5 | "families" : { 6 | "virtual" : { 7 | "id" : "0x65" 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /schema/ancillary_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "$udmi_version": "1.5.2", 3 | "title": "Ancillary Properties", 4 | "description": "Arbitrary blob of json associated with this point", 5 | "existingJavaType": "java.util.Map", 6 | "type": "object" 7 | } 8 | -------------------------------------------------------------------------------- /schema/config_localnet_family.json: -------------------------------------------------------------------------------- 1 | { 2 | "$udmi_version": "1.5.2", 3 | "title": "Family Localnet Config", 4 | "type": "object", 5 | "$schema": "http://json-schema.org/draft-07/schema#", 6 | "additionalProperties": false, 7 | "properties": { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /schema/monitoring.json: -------------------------------------------------------------------------------- 1 | { 2 | "$udmi_version": "1.5.2", 3 | "title": "Monitoring", 4 | "description": "Output from UDMIS monitoring", 5 | "type": "object", 6 | "$schema": "http://json-schema.org/draft-07/schema#", 7 | "properties": { 8 | "metric": { 9 | "$ref": "file:monitoring_metric.json#" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /schema/state_localnet_family.json: -------------------------------------------------------------------------------- 1 | { 2 | "$udmi_version": "1.5.2", 3 | "type": "object", 4 | "additionalProperties": false, 5 | "title": "Family Localnet State", 6 | "properties": { 7 | "addr": { 8 | "type": "string" 9 | }, 10 | "status": { 11 | "$ref": "file:entry.json" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /selfie/bin/build: -------------------------------------------------------------------------------- 1 | # Empty dummy build script for non-existant selfie source. 2 | 3 | mkdir -p build/libs 4 | touch build/libs/selfie-1.0-SNAPSHOT-all.jar 5 | -------------------------------------------------------------------------------- /services/etc/k8s_account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | annotations: 5 | iam.gke.io/gcp-service-account: udmi-service@@GCP_PROJECT@.iam.gserviceaccount.com 6 | name: default 7 | -------------------------------------------------------------------------------- /services/etc/k8s_config.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: config 5 | data: 6 | BITBOX_DISCOVERY: 7 | ETCD_CLUSTER: 8 | UDMI_NAMESPACE: @UDMI_NAMESPACE@ 9 | -------------------------------------------------------------------------------- /services/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/services/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /services/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /services/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'services' 2 | 3 | -------------------------------------------------------------------------------- /services/src/test/configs/localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "2020-05-01T13:39:07Z", 3 | "version" : "1.3.14", 4 | "localnet" : { 5 | "families" : { 6 | "virtual" : { 7 | "id" : "0x65" 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /tests/combos/missing_pointset.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Test that missing pointset metadata doesn't cause a NPE in validator", 3 | "site_model": "tests/sites/missing", 4 | "traces": "tests/traces/simple", 5 | "validator": { 6 | "check": "! fgrep -i null tests/sites/missing/out/devices/GAT-123/state.out" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tests/schemas/commands_discovery/provision.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object instance has properties which are not allowed by the schema: ["provision"] 3 | -------------------------------------------------------------------------------- /tests/schemas/commands_mapping/mapping.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/commands_mapping/mapping.out -------------------------------------------------------------------------------- /tests/schemas/config/blobset_final.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/blobset_final.out -------------------------------------------------------------------------------- /tests/schemas/config/blobset_final_incomplete_payload.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | /blobset/blobs/arbitrary_manufacturer_id: instance failed to match exactly one schema (matched 0 out of 2) 3 | -------------------------------------------------------------------------------- /tests/schemas/config/blobset_final_incomplete_url.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.5.2", 3 | "blobset": { 4 | "blobs": { 5 | "_firmware_update": { 6 | "phase": "final", 7 | "url": "https://manuf.com/path/file.zip" 8 | } 9 | } 10 | }, 11 | "timestamp": "2022-07-13T12:00:00.000Z" 12 | } 13 | -------------------------------------------------------------------------------- /tests/schemas/config/blobset_final_incomplete_url.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | /blobset/blobs/_firmware_update: object has missing required properties (["generation","sha256"]) 3 | -------------------------------------------------------------------------------- /tests/schemas/config/commit.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/commit.out -------------------------------------------------------------------------------- /tests/schemas/config/continuous.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/continuous.out -------------------------------------------------------------------------------- /tests/schemas/config/delta_x1_gateway.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "2021-11-02T12:22:14Z", 3 | "gateway" : { 4 | "proxy_ids" : [ "TRHC-26" ] 5 | }, 6 | "localnet" : { 7 | "subsystem" : { 8 | "bacnet" : { 9 | "local_id" : "1010112" 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/schemas/config/delta_x1_gateway.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /localnet: object instance has properties which are not allowed by the schema: ["subsystem"] 3 | object has missing required properties (["version"]) 4 | -------------------------------------------------------------------------------- /tests/schemas/config/delta_x1_target.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /localnet: object instance has properties which are not allowed by the schema: ["subsystem"] 3 | object has missing required properties (["version"]) 4 | -------------------------------------------------------------------------------- /tests/schemas/config/direct.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/direct.out -------------------------------------------------------------------------------- /tests/schemas/config/discovery.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/discovery.out -------------------------------------------------------------------------------- /tests/schemas/config/easing.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/easing.out -------------------------------------------------------------------------------- /tests/schemas/config/empty.json: -------------------------------------------------------------------------------- 1 | { } -------------------------------------------------------------------------------- /tests/schemas/config/empty.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object has missing required properties (["timestamp","version"]) 3 | -------------------------------------------------------------------------------- /tests/schemas/config/endpoint_reconfiguration.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/endpoint_reconfiguration.out -------------------------------------------------------------------------------- /tests/schemas/config/enumeration.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/enumeration.out -------------------------------------------------------------------------------- /tests/schemas/config/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/example.out -------------------------------------------------------------------------------- /tests/schemas/config/fcu.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /pointset/points/chilled_water_valve_percentage_command: object instance has properties which are not allowed by the schema: ["min_update_ms"] 3 | /system: object instance has properties which are not allowed by the schema: ["max_update_ms"] 4 | -------------------------------------------------------------------------------- /tests/schemas/config/fetch.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/fetch.out -------------------------------------------------------------------------------- /tests/schemas/config/from_bacnet.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/from_bacnet.out -------------------------------------------------------------------------------- /tests/schemas/config/from_radix.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/from_radix.out -------------------------------------------------------------------------------- /tests/schemas/config/gateway.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.5.2", 3 | "timestamp": "2018-08-26T21:39:29.364Z", 4 | "gateway": { 5 | "proxy_ids": [ "AHU-123", "SMS-81", "991" ] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /tests/schemas/config/gateway.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | /gateway/proxy_ids/2: ECMA 262 regex "^[A-Z]{2,6}-[1-9][0-9]*$" does not match input string "991" 3 | -------------------------------------------------------------------------------- /tests/schemas/config/implicit.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/implicit.out -------------------------------------------------------------------------------- /tests/schemas/config/periodic.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/periodic.out -------------------------------------------------------------------------------- /tests/schemas/config/proxy.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/proxy.out -------------------------------------------------------------------------------- /tests/schemas/config/restart.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/restart.out -------------------------------------------------------------------------------- /tests/schemas/config/smartprimus.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /pointset/points/fan_run_enable: object instance has properties which are not allowed by the schema: ["fix_value"] 3 | /pointset/points/fan_run_status: object instance has properties which are not allowed by the schema: ["fix_value"] 4 | -------------------------------------------------------------------------------- /tests/schemas/config/writeback.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config/writeback.out -------------------------------------------------------------------------------- /tests/schemas/config_mapping/mapping.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config_mapping/mapping.out -------------------------------------------------------------------------------- /tests/schemas/config_pointset/easing.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config_pointset/easing.out -------------------------------------------------------------------------------- /tests/schemas/config_pointset/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/config_pointset/example.out -------------------------------------------------------------------------------- /tests/schemas/configuration_endpoint/delta.json: -------------------------------------------------------------------------------- 1 | { 2 | "protocol": "mqtt", 3 | "client_id": "projects/bos-corpops-testing/locations/us-central1/registries/UK-LON-GLAB/devices/FCU-102", 4 | "hostname": "mqtt.googleapis.com" 5 | } 6 | -------------------------------------------------------------------------------- /tests/schemas/configuration_endpoint/delta.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/configuration_endpoint/delta.out -------------------------------------------------------------------------------- /tests/schemas/configuration_endpoint/gcp_iot_core.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/configuration_endpoint/gcp_iot_core.out -------------------------------------------------------------------------------- /tests/schemas/configuration_endpoint/mosquitto.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/configuration_endpoint/mosquitto.out -------------------------------------------------------------------------------- /tests/schemas/configuration_endpoint/multiple.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | /topic_prefix: ECMA 262 regex "^[-_/a-zA-Z0-9]+$" does not match input string "/devices/#" 3 | -------------------------------------------------------------------------------- /tests/schemas/configuration_endpoint/simple.json: -------------------------------------------------------------------------------- 1 | { 2 | "protocol": "mqtt", 3 | "client_id": "projects/bos-snork-dev/locations/us-central1/registries/ZZ-TRI-FECTA/devices/AHU-1", 4 | "hostname": "mqtt.googleapis.com" 5 | } 6 | -------------------------------------------------------------------------------- /tests/schemas/configuration_endpoint/simple.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/configuration_endpoint/simple.out -------------------------------------------------------------------------------- /tests/schemas/configuration_execution/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "cloud_region": "us-central1", 3 | "site_name": "ZZ-TRI-FECTA", 4 | "registry_id": "ZZ-TRI-FECTA" 5 | } 6 | -------------------------------------------------------------------------------- /tests/schemas/configuration_execution/cloud_iot_config.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/configuration_execution/cloud_iot_config.out -------------------------------------------------------------------------------- /tests/schemas/configuration_pubber/mosquitto.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/configuration_pubber/mosquitto.out -------------------------------------------------------------------------------- /tests/schemas/envelope/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /tests/schemas/envelope/empty.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object has missing required properties (["deviceRegistryId"]) 3 | -------------------------------------------------------------------------------- /tests/schemas/envelope/errors1.json: -------------------------------------------------------------------------------- 1 | { 2 | "deviceRegistryId": "test/registry", 3 | "deviceNumId": "921302198324X", 4 | "deviceId": "fcu-1", 5 | "subType": 5 6 | } 7 | -------------------------------------------------------------------------------- /tests/schemas/envelope/errors2.json: -------------------------------------------------------------------------------- 1 | { 2 | "deviceRegistryId": "test-registry", 3 | "deviceNumId": "-9213923812", 4 | "deviceId": "FCUs_02_NW_12" 5 | } 6 | -------------------------------------------------------------------------------- /tests/schemas/envelope/errors2.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /deviceId: ECMA 262 regex "^[A-Z]{2,6}-[1-9][0-9]*$" does not match input string "FCUs_02_NW_12" 3 | /deviceNumId: ECMA 262 regex "^[0-9]+$" does not match input string "-9213923812" 4 | -------------------------------------------------------------------------------- /tests/schemas/envelope/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectId": "daq-test-suite", 3 | "deviceRegistryId": "ZZ-TRI-FECTA", 4 | "deviceNumId": "921302198324", 5 | "deviceId": "FCU-2", 6 | "subFolder": "pointset", 7 | "subType": "events" 8 | } 9 | -------------------------------------------------------------------------------- /tests/schemas/envelope/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/envelope/example.out -------------------------------------------------------------------------------- /tests/schemas/envelope/example2.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectId": "daq-test-suite", 3 | "deviceRegistryId": "test-registry", 4 | "deviceRegistryLocation": "us-central1", 5 | "deviceNumId": "23812", 6 | "deviceId": "FCU-202", 7 | "subFolder": "system", 8 | "subType": "config" 9 | } 10 | -------------------------------------------------------------------------------- /tests/schemas/envelope/example2.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/envelope/example2.out -------------------------------------------------------------------------------- /tests/schemas/envelope/gateway.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectId": "daq-test-suite", 3 | "deviceRegistryId": "NOXIE-ROXIE", 4 | "deviceNumId": "921302198324", 5 | "deviceId": "LTGW-2", 6 | "subFolder": "pointset", 7 | "subType": "config" 8 | } 9 | -------------------------------------------------------------------------------- /tests/schemas/envelope/gateway.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/envelope/gateway.out -------------------------------------------------------------------------------- /tests/schemas/envelope/lgtw.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectId": "daq-test-suite", 3 | "deviceRegistryId": "test_registry", 4 | "deviceNumId": "921302198324", 5 | "deviceId": "LGTW-2", 6 | "subFolder": "discovery", 7 | "subType": "config" 8 | } 9 | -------------------------------------------------------------------------------- /tests/schemas/envelope/lgtw.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/envelope/lgtw.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/continuous.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/continuous.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/discovery.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/discovery.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/discovery_node.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/discovery_node.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/discovery_node2.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/discovery_node2.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /tests/schemas/events_discovery/empty.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/empty.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/enumeration.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/enumeration.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/features.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/features.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/from_bacnet.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/from_bacnet.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/from_radix.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/from_radix.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/implicit.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/implicit.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/node.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | /system: object instance has properties which are not allowed by the schema: ["software"] 3 | -------------------------------------------------------------------------------- /tests/schemas/events_discovery/point_error.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/point_error.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/proxied_scan.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/proxied_scan.out -------------------------------------------------------------------------------- /tests/schemas/events_discovery/scan_error.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_discovery/scan_error.out -------------------------------------------------------------------------------- /tests/schemas/events_mapping/mapping.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_mapping/mapping.out -------------------------------------------------------------------------------- /tests/schemas/events_mapping/prediction.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object instance has properties which are not allowed by the schema: ["prediction"] 3 | -------------------------------------------------------------------------------- /tests/schemas/events_pointset/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /tests/schemas/events_pointset/empty.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object has missing required properties (["points","timestamp","version"]) 3 | -------------------------------------------------------------------------------- /tests/schemas/events_pointset/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_pointset/example.out -------------------------------------------------------------------------------- /tests/schemas/events_pointset/fcu.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_pointset/fcu.out -------------------------------------------------------------------------------- /tests/schemas/events_pointset/partial.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.5.2", 3 | "timestamp": "2018-08-26T21:39:29.364Z", 4 | "partial_update": true, 5 | "points": { 6 | "reading_value": { 7 | "present_value": 21.30108642578125 8 | }, 9 | "enum_value": { 10 | "present_value": "hello" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/schemas/events_pointset/partial.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_pointset/partial.out -------------------------------------------------------------------------------- /tests/schemas/events_pointset/smartprimus.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_pointset/smartprimus.out -------------------------------------------------------------------------------- /tests/schemas/events_pointset/writeback.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_pointset/writeback.out -------------------------------------------------------------------------------- /tests/schemas/events_system/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /tests/schemas/events_system/empty.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object has missing required properties (["timestamp","version"]) 3 | -------------------------------------------------------------------------------- /tests/schemas/events_system/errors.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.5.2", 3 | "timestamp": "2018-08-26T21:39:29.364Z", 4 | "logentries": [ 5 | { 6 | "detail": "someplace, sometime", 7 | "category": "system.unknown.cateogry", 8 | "level": 60 9 | }, 10 | "nope" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /tests/schemas/events_system/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_system/example.out -------------------------------------------------------------------------------- /tests/schemas/events_system/fcu.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_system/fcu.out -------------------------------------------------------------------------------- /tests/schemas/events_system/metrics.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_system/metrics.out -------------------------------------------------------------------------------- /tests/schemas/events_validation/simple_error.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_validation/simple_error.out -------------------------------------------------------------------------------- /tests/schemas/events_validation/simple_ok.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/events_validation/simple_ok.out -------------------------------------------------------------------------------- /tests/schemas/metadata/bacmodel.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/metadata/bacmodel.out -------------------------------------------------------------------------------- /tests/schemas/metadata/bad.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /gateway/proxy_ids/0: ECMA 262 regex "^[A-Z]{2,6}-[1-9][0-9]*$" does not match input string "AHU-001" 3 | /gateway/proxy_ids/1: ECMA 262 regex "^[A-Z]{2,6}-[1-9][0-9]*$" does not match input string "A-1" 4 | -------------------------------------------------------------------------------- /tests/schemas/metadata/direct.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/metadata/direct.out -------------------------------------------------------------------------------- /tests/schemas/metadata/discovery_metadata.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/metadata/discovery_metadata.out -------------------------------------------------------------------------------- /tests/schemas/metadata/empty.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/schemas/metadata/empty.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object has missing required properties (["system","timestamp","version"]) 3 | -------------------------------------------------------------------------------- /tests/schemas/metadata/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/metadata/example.out -------------------------------------------------------------------------------- /tests/schemas/metadata/gateway.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/metadata/gateway.out -------------------------------------------------------------------------------- /tests/schemas/metadata/network.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/metadata/network.out -------------------------------------------------------------------------------- /tests/schemas/metadata/nosys.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object has missing required properties (["system"]) 3 | -------------------------------------------------------------------------------- /tests/schemas/metadata/proxy.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/metadata/proxy.out -------------------------------------------------------------------------------- /tests/schemas/metadata/toomany.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /pointset/points: object has too many properties (found 672 but schema requires at most 150) 3 | /system/physical_tag/asset/name: ECMA 262 regex "^[A-Z]{2,6}-[1-9][0-9]*$" does not match input string "UK-LON-S2_LTGW-3" 4 | -------------------------------------------------------------------------------- /tests/schemas/metadata/upgrade_root_tags.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/metadata/upgrade_root_tags.out -------------------------------------------------------------------------------- /tests/schemas/model_pointset/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/model_pointset/example.out -------------------------------------------------------------------------------- /tests/schemas/site_metadata/errors.out: -------------------------------------------------------------------------------- 1 | 3 schema violations found 2 | /parameters/area/net_occupied_area/unit: instance failed to match exactly one schema (matched 0 out of 7) 3 | /parameters/area: object instance has properties which are not allowed by the schema: ["extra"] 4 | object has missing required properties (["timestamp"]) 5 | -------------------------------------------------------------------------------- /tests/schemas/site_metadata/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/site_metadata/example.out -------------------------------------------------------------------------------- /tests/schemas/state/blobset_received.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/blobset_received.out -------------------------------------------------------------------------------- /tests/schemas/state/blobset_updating.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/blobset_updating.out -------------------------------------------------------------------------------- /tests/schemas/state/continuous.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/continuous.out -------------------------------------------------------------------------------- /tests/schemas/state/delta_x1_target.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /system: object has missing required properties (["serial_no"]) 3 | /system: object instance has properties which are not allowed by the schema: ["vendor_name"] 4 | -------------------------------------------------------------------------------- /tests/schemas/state/direct.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/direct.out -------------------------------------------------------------------------------- /tests/schemas/state/discovery.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/discovery.out -------------------------------------------------------------------------------- /tests/schemas/state/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /tests/schemas/state/empty.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | object has missing required properties (["system","timestamp","version"]) 3 | -------------------------------------------------------------------------------- /tests/schemas/state/endpoint_reconfiguration.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/endpoint_reconfiguration.out -------------------------------------------------------------------------------- /tests/schemas/state/endpoint_reconfiguration_failed.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/endpoint_reconfiguration_failed.out -------------------------------------------------------------------------------- /tests/schemas/state/enumeration.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/enumeration.out -------------------------------------------------------------------------------- /tests/schemas/state/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/example.out -------------------------------------------------------------------------------- /tests/schemas/state/fcu.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/fcu.out -------------------------------------------------------------------------------- /tests/schemas/state/gateway.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/gateway.out -------------------------------------------------------------------------------- /tests/schemas/state/makemodel_error.out: -------------------------------------------------------------------------------- 1 | 2 schema violations found 2 | /system: object has missing required properties (["hardware","software"]) 3 | /system: object instance has properties which are not allowed by the schema: ["firmware","make_model"] 4 | -------------------------------------------------------------------------------- /tests/schemas/state/makemodel_upgrade.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/makemodel_upgrade.out -------------------------------------------------------------------------------- /tests/schemas/state/networks.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/networks.out -------------------------------------------------------------------------------- /tests/schemas/state/periodic.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/periodic.out -------------------------------------------------------------------------------- /tests/schemas/state/proxy.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/proxy.out -------------------------------------------------------------------------------- /tests/schemas/state/restart.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/restart.out -------------------------------------------------------------------------------- /tests/schemas/state/scan_bad.out: -------------------------------------------------------------------------------- 1 | 1 schema violations found 2 | /discovery/families: object instance has properties which are not allowed by the schema: ["BACnet"] 3 | -------------------------------------------------------------------------------- /tests/schemas/state/scan_error.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/scan_error.out -------------------------------------------------------------------------------- /tests/schemas/state/scan_stop.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/scan_stop.out -------------------------------------------------------------------------------- /tests/schemas/state/upgrade_gateway_devices.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/upgrade_gateway_devices.out -------------------------------------------------------------------------------- /tests/schemas/state/writeback.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state/writeback.out -------------------------------------------------------------------------------- /tests/schemas/state_mapping/mapping.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state_mapping/mapping.out -------------------------------------------------------------------------------- /tests/schemas/state_pointset/example.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state_pointset/example.out -------------------------------------------------------------------------------- /tests/schemas/state_validation/report.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state_validation/report.out -------------------------------------------------------------------------------- /tests/schemas/state_validation/sequencer.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/schemas/state_validation/sequencer.out -------------------------------------------------------------------------------- /tests/sites/basic/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "cloud_region": "us-central1", 3 | "site_name": "ZZ-TRI-FECTA", 4 | "registry_id": "ZZ-TRI-FECTA" 5 | } 6 | -------------------------------------------------------------------------------- /tests/sites/basic/devices/GAT-123/ec_private.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/basic/devices/GAT-123/ec_private.pem -------------------------------------------------------------------------------- /tests/sites/basic/devices/GAT-123/ec_private.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/basic/devices/GAT-123/ec_private.pkcs8 -------------------------------------------------------------------------------- /tests/sites/basic/devices/GAT-123/ec_public.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/basic/devices/GAT-123/ec_public.pem -------------------------------------------------------------------------------- /tests/sites/basic/devices/GAT-72/ec_private.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/basic/devices/GAT-72/ec_private.pem -------------------------------------------------------------------------------- /tests/sites/basic/devices/GAT-72/ec_private.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/basic/devices/GAT-72/ec_private.pkcs8 -------------------------------------------------------------------------------- /tests/sites/basic/devices/GAT-72/ec_public.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/basic/devices/GAT-72/ec_public.pem -------------------------------------------------------------------------------- /tests/sites/basic/devices/GAT-72/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for GAT-72 2 | List of 3 exceptions 3 | GAT-72 proxy_id mismatch: [AHU-1, SNS-4] 4 | Should not proxy direct device AHU-1 5 | gateway_id mismatch for SNS-4: GAT-123 != GAT-72 6 | While converting device config 7 | generation specified without scan_interval_sec parameter 8 | -------------------------------------------------------------------------------- /tests/sites/basic/devices/SNS-4/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for SNS-4 2 | gateway_id mismatch for SNS-4: GAT-123 != GAT-72 3 | -------------------------------------------------------------------------------- /tests/sites/basic/devices/SNS-4/expected/generated_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "gateway": {}, 3 | "pointset": { 4 | "sample_rate_sec": 30 5 | }, 6 | "system": { 7 | "metrics_rate_sec": 10, 8 | "min_loglevel": 300, 9 | "operation": {} 10 | }, 11 | "timestamp": "2020-05-01T13:39:07Z", 12 | "version": "1.5.3" 13 | } 14 | -------------------------------------------------------------------------------- /tests/sites/basic/devices/SNS-8/expected/generated_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "gateway": {}, 3 | "system": { 4 | "metrics_rate_sec": 10, 5 | "min_loglevel": 300, 6 | "operation": {} 7 | }, 8 | "timestamp": "2020-05-01T13:39:07Z", 9 | "version": "1.5.3" 10 | } 11 | -------------------------------------------------------------------------------- /tests/sites/basic/site_defaults.json: -------------------------------------------------------------------------------- 1 | { 2 | "?system": { 3 | "location": { 4 | "site": "ZZ-TRI-FECTA" 5 | } 6 | }, 7 | "?pointset": { 8 | "sample_rate_sec": 30 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/sites/basic/site_metadata.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/sites/configs/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "cloud_region": "us-central1", 3 | "site_name": "ZZ-TRI-FECTA", 4 | "registry_id": "ZZ-TRI-FECTA" 5 | } 6 | -------------------------------------------------------------------------------- /tests/sites/configs/devices/AHU-22/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for AHU-22 2 | While loading credentials for local device AHU-22 3 | Proxied devices should not have cloud.auth_type defined 4 | 1 schema violations found 5 | /system/location: object has missing required properties (["site"]) 6 | -------------------------------------------------------------------------------- /tests/sites/configs/devices/GAT-123/config/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "blahblah":"blerb" 3 | } 4 | -------------------------------------------------------------------------------- /tests/sites/configs/devices/GAT-123/expected/generated_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "blahblah": "blerb" 3 | } 4 | -------------------------------------------------------------------------------- /tests/sites/configs/devices/GAT-456/config/notjson.txt: -------------------------------------------------------------------------------- 1 | plain text -------------------------------------------------------------------------------- /tests/sites/configs/devices/GAT-456/expected/generated_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/configs/devices/GAT-456/expected/generated_config.json -------------------------------------------------------------------------------- /tests/sites/configs/site_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "strict_warnings": true 3 | } 4 | -------------------------------------------------------------------------------- /tests/sites/discovery/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "registry_id": "ZZ-TRI-FECTA", 3 | "site_name": "ZZ-TRI-FECTA" 4 | } 5 | -------------------------------------------------------------------------------- /tests/sites/discovery/devices/GAT-123/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for GAT-123 2 | While loading credentials for local device GAT-123 3 | Found 0 credentials 4 | expected files mismatch 5 | Missing files: [ec_private.pem, ec_private.pkcs8, ec_public.pem] 6 | -------------------------------------------------------------------------------- /tests/sites/discovery/registration_summary.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/discovery/registration_summary.json -------------------------------------------------------------------------------- /tests/sites/downgrade/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "cloud_region": "us-central1", 3 | "site_name": "AA-TEST-SITE", 4 | "registry_id": "AA-TEST-SITE" 5 | } 6 | -------------------------------------------------------------------------------- /tests/sites/downgrade/devices/.dummy_bad_device/metadata.json: -------------------------------------------------------------------------------- 1 | This file is here to test that this directory is NOT scanned by the tools. 2 | -------------------------------------------------------------------------------- /tests/sites/downgrade/devices/CGW-12/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for CGW-12 2 | While loading credentials for local device CGW-12 3 | Found 0 credentials 4 | expected files mismatch 5 | Missing files: [rsa_private.pem, rsa_private.pkcs8, rsa_public.pem] 6 | -------------------------------------------------------------------------------- /tests/sites/downgrade/devices/DDC-54/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for DDC-54 2 | While loading credentials for local device DDC-54 3 | Found 0 credentials 4 | expected files mismatch 5 | Missing files: [rsa_private.pem, rsa_private.pkcs8, rsa_public.pem] 6 | -------------------------------------------------------------------------------- /tests/sites/downgrade/devices/DWN-3/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for DWN-3 2 | While loading credentials for local device DWN-3 3 | Found 0 credentials 4 | expected files mismatch 5 | Missing files: [rsa_private.pem, rsa_private.pkcs8, rsa_public.pem] 6 | -------------------------------------------------------------------------------- /tests/sites/downgrade/site_defaults.json: -------------------------------------------------------------------------------- 1 | { 2 | "system": { 3 | "location": { 4 | "site": "US-SFO-XYY" 5 | }, 6 | "physical_tag": { 7 | "asset": { 8 | "guid": "bim://04aEp5ymD_$u5IxhJN2aGi", 9 | "site": "US-SFO-XYY", 10 | "name": "AHU-1" 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/sites/downgrade/site_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "strict_warnings": true 3 | } 4 | -------------------------------------------------------------------------------- /tests/sites/mapping/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "registry_id": "TESTING", 3 | "site_name": "TESTING" 4 | } 5 | 6 | -------------------------------------------------------------------------------- /tests/sites/mapping/devices/GAT-123/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for GAT-123 2 | While converting device config 3 | unrecognized schema version null 4 | 1 schema violations found 5 | object has missing required properties (["system","version"]) 6 | -------------------------------------------------------------------------------- /tests/sites/mapping/devices/GAT-123/expected/metadata_norm.json: -------------------------------------------------------------------------------- 1 | { 2 | "discovery": { 3 | "families": { 4 | "vendor": {} 5 | } 6 | }, 7 | "hash": "aa136fa5", 8 | "timestamp": "2024-04-02T17:30:04Z" 9 | } 10 | -------------------------------------------------------------------------------- /tests/sites/mapping/devices/GAT-123/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp": "2024-04-02T17:30:04Z", 3 | "hash": "0001d237", 4 | "discovery": { 5 | "families": { 6 | "vendor": { 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/sites/mapping/site_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "strict_warnings": true 3 | } 4 | -------------------------------------------------------------------------------- /tests/sites/metering/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "registry_id": "ZZ-TRI-FECTA", 3 | "site_name": "ZZ-TRI-FECTA" 4 | } 5 | -------------------------------------------------------------------------------- /tests/sites/metering/devices/GAT-1/ec_private.pem: -------------------------------------------------------------------------------- 1 | x 2 | -------------------------------------------------------------------------------- /tests/sites/metering/devices/GAT-1/ec_private.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/metering/devices/GAT-1/ec_private.pkcs8 -------------------------------------------------------------------------------- /tests/sites/metering/devices/GAT-1/ec_public.pem: -------------------------------------------------------------------------------- 1 | FAKE KEY 2 | -------------------------------------------------------------------------------- /tests/sites/metering/devices/GAT-1/expected/generated_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "gateway": { 3 | "proxy_ids": [ 4 | "EM-1" 5 | ] 6 | }, 7 | "system": { 8 | "metrics_rate_sec": 10, 9 | "min_loglevel": 300, 10 | "operation": {} 11 | }, 12 | "timestamp": "2020-05-01T13:39:07Z", 13 | "version": "1.5.3" 14 | } 15 | -------------------------------------------------------------------------------- /tests/sites/metering/devices/GAT-1/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp": "2020-05-01T13:39:07Z", 3 | "version": "1.5.3", 4 | "system": { 5 | }, 6 | "cloud": { 7 | "auth_type": "ES256", 8 | "resource_type": "GATEWAY" 9 | }, 10 | "gateway": { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/sites/metering/devices/SRV-1/ec_private.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/metering/devices/SRV-1/ec_private.pem -------------------------------------------------------------------------------- /tests/sites/metering/devices/SRV-1/ec_private.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/metering/devices/SRV-1/ec_private.pkcs8 -------------------------------------------------------------------------------- /tests/sites/metering/devices/SRV-1/ec_public.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/metering/devices/SRV-1/ec_public.pem -------------------------------------------------------------------------------- /tests/sites/metering/devices/TEST-05053/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for TEST-05053 2 | 1 schema violations found 3 | /gateway/gateway_id: ECMA 262 regex "^[A-Z]{2,6}-[1-9][0-9]*$" does not match input string "CGW-05" 4 | -------------------------------------------------------------------------------- /tests/sites/metering/registration_summary.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/tests/sites/metering/registration_summary.json -------------------------------------------------------------------------------- /tests/sites/missing/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "cloud_region": "us-central1", 3 | "site_name": "ZZ-TRI-FECTA", 4 | "registry_id": "ZZ-TRI-FECTA" 5 | } 6 | -------------------------------------------------------------------------------- /tests/sites/missing/devices/GAT-123/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for GAT-123 2 | While loading credentials for local device GAT-123 3 | Found 0 credentials 4 | expected files mismatch 5 | Missing files: [ec_private.pem, ec_private.pkcs8, ec_public.pem] 6 | -------------------------------------------------------------------------------- /tests/sites/missing/site_defaults.json: -------------------------------------------------------------------------------- 1 | { 2 | "system": { 3 | "location": { 4 | "site": "ZZ-TRI-FECTA" 5 | } 6 | }, 7 | "cloud": { 8 | "detail": "site default for unit tests" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/sites/supersimple/cloud_iot_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "cloud_region": "us-central1", 3 | "site_name": "ZZ-TRI-FECTA", 4 | "registry_id": "ZZ-TRI-FECTA" 5 | } 6 | -------------------------------------------------------------------------------- /tests/sites/supersimple/devices/TPS-1/expected/errors.map: -------------------------------------------------------------------------------- 1 | Exceptions for TPS-1 2 | 1 schema violations found 3 | /system/location/site: ECMA 262 regex "^[A-Z]{2}-[A-Z]{3,4}-[A-Z0-9]{2,9}$" does not match input string "ZZ-TRI-FECTA-AHU" 4 | -------------------------------------------------------------------------------- /tests/traces/discover/devices/GAT-123/002_state_gateway.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp": "2022-07-19T05:04:40Z", 3 | "version": "1.5.2" 4 | } 5 | -------------------------------------------------------------------------------- /tests/traces/discover/expected/devices/AHU-22/events_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "logentries" : [ { 3 | "message" : "1999-10-20T01:02:03Z sent message #70", 4 | "category" : "device.log_message", 5 | "timestamp" : "1999-10-20T01:02:03Z", 6 | "level" : 200 7 | } ], 8 | "timestamp" : "1999-10-20T01:02:03Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /tests/traces/discover/expected/devices/GAT-123/state_gateway.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "1999-10-20T01:02:03Z", 3 | "version" : "1.5.2" 4 | } -------------------------------------------------------------------------------- /tests/traces/discover/expected/devices/GAT-123/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceNumId" : "00000528111775", 3 | "subFolder" : "system", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA", 5 | "subType" : "state", 6 | "msgSource" : "004_state_system.json", 7 | "deviceId" : "GAT-123", 8 | "projectId" : "playback-project" 9 | } -------------------------------------------------------------------------------- /tests/traces/discover/expected/devices/SNS-4/events_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "exception" : "Unexpected character ('{' (code 123)): was expecting double-quote to start field name at [Source: (File); line: 1, column: 3]", 3 | "message" : "Reading from tests/traces/simple/devices/SNS-4/002_events_discovery.json", 4 | "timestamp" : "1999-10-20T01:02:03Z" 5 | } -------------------------------------------------------------------------------- /tests/traces/discover/expected/devices/SNS-4/events_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "logentries" : [ { 3 | "message" : "1999-10-20T01:02:03Z sent message #70", 4 | "category" : "device.logMessage", 5 | "timestamp" : "1999-10-20T01:02:03Z", 6 | "level" : 200 7 | } ], 8 | "timestamp" : "1999-10-20T01:02:03Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /tests/traces/simple/devices/AHU-22/002_events_pointset.json: -------------------------------------------------------------------------------- 1 | { 2 | "points" : { 3 | "filter_alarm_pressure_status" : { 4 | "present_value" : false 5 | }, 6 | "filter_differential_pressure_sensor" : { 7 | "present_value" : 76 8 | } 9 | }, 10 | "timestamp" : "2022-07-19T05:04:29Z", 11 | "version" : "1.5.2" 12 | } 13 | -------------------------------------------------------------------------------- /tests/traces/simple/devices/AHU-22/003_events_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "logentries" : [ { 3 | "message" : "2022-07-19T05:04:39Z sent message #70", 4 | "category" : "device.log_message", 5 | "timestamp" : "2022-07-19T05:04:32Z", 6 | "level" : 200 7 | } ], 8 | "timestamp" : "2022-07-19T05:04:39Z", 9 | "version" : "1.5.2" 10 | } 11 | -------------------------------------------------------------------------------- /tests/traces/simple/devices/GAT-123/002_state_gateway.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp": "2022-07-19T05:04:40Z", 3 | "version": "1.5.2" 4 | } 5 | -------------------------------------------------------------------------------- /tests/traces/simple/devices/GAT-123/005_reply_update.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp": "2024-10-27T10:00:00Z", 3 | "version": "1.5.2", 4 | "resource_type": "DEVICE", 5 | "operation": "REPLY" 6 | } -------------------------------------------------------------------------------- /tests/traces/simple/devices/SNS-4/003_events_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "logentries" : [ { 3 | "message" : "2022-07-19T05:04:39Z sent message #70", 4 | "category" : "device.logMessage", 5 | "timestamp" : "2022-07-19T05:04:39Z", 6 | "level" : 200 7 | } ], 8 | "timestamp" : "2022-07-19T05:04:39Z", 9 | "version" : "1.5.2" 10 | } 11 | -------------------------------------------------------------------------------- /tests/traces/simple/expected/devices/AHU-22/events_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "logentries" : [ { 3 | "message" : "1999-10-20T01:02:03Z sent message #70", 4 | "category" : "device.log_message", 5 | "timestamp" : "1999-10-20T01:02:03Z", 6 | "level" : 200 7 | } ], 8 | "timestamp" : "1999-10-20T01:02:03Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /tests/traces/simple/expected/devices/GAT-123/state_gateway.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "1999-10-20T01:02:03Z", 3 | "version" : "1.5.2" 4 | } -------------------------------------------------------------------------------- /tests/traces/simple/expected/devices/GAT-123/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceNumId" : "00000528111775", 3 | "subFolder" : "system", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA", 5 | "subType" : "state", 6 | "msgSource" : "004_state_system.json", 7 | "deviceId" : "GAT-123", 8 | "projectId" : "playback-project" 9 | } -------------------------------------------------------------------------------- /tests/traces/simple/expected/devices/SNS-4/events_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "exception" : "Unexpected character ('{' (code 123)): was expecting double-quote to start field name at [Source: (File); line: 1, column: 3]", 3 | "message" : "Reading from tests/traces/simple/devices/SNS-4/002_events_discovery.json", 4 | "timestamp" : "1999-10-20T01:02:03Z" 5 | } -------------------------------------------------------------------------------- /tests/traces/simple/expected/devices/SNS-4/events_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "logentries" : [ { 3 | "message" : "1999-10-20T01:02:03Z sent message #70", 4 | "category" : "device.logMessage", 5 | "timestamp" : "1999-10-20T01:02:03Z", 6 | "level" : 200 7 | } ], 8 | "timestamp" : "1999-10-20T01:02:03Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /tests/traces/upgrade/devices/AHU-1/002_state_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "firmware" : { 3 | "version" : [ "D_IP_BW6_V35_6_S14" ] 4 | }, 5 | "last_config" : "2021-05-14T15:53:26Z", 6 | "make_model" : "Delmatic IP_BW6", 7 | "operational" : true 8 | } 9 | -------------------------------------------------------------------------------- /tests/traces/upgrade/expected/devices/AHU-1/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceNumId" : "00000062256946", 3 | "subFolder" : "system", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA", 5 | "subType" : "state", 6 | "msgSource" : "002_state_system.json", 7 | "deviceId" : "AHU-1", 8 | "projectId" : "playback-project" 9 | } -------------------------------------------------------------------------------- /tests/traces/upgrade/expected/devices/AHU-1/state_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "firmware" : { 3 | "version" : [ "D_IP_BW6_V35_6_S14" ] 4 | }, 5 | "last_config" : "1999-10-20T01:02:03Z", 6 | "make_model" : "Delmatic IP_BW6", 7 | "operational" : true, 8 | "timestamp" : "2023-03-02T19:27:38.819Z" 9 | } -------------------------------------------------------------------------------- /udmis/.gitignore: -------------------------------------------------------------------------------- 1 | venv/ 2 | 3 | /*.log 4 | .attributes.json 5 | functions/version.js 6 | -------------------------------------------------------------------------------- /udmis/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /udmis/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /udmis/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /udmis/.idea/runConfigurations/BaselineValidator.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/udmis/.idea/runConfigurations/BaselineValidator.xml -------------------------------------------------------------------------------- /udmis/.idea/runConfigurations/_template__of_Application.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /udmis/etc/dev_pod.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": "prod_pod.json", 3 | "flows": { 4 | "distributor": { 5 | "enabled": "false" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /udmis/etc/k8s_account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | annotations: 5 | iam.gke.io/gcp-service-account: udmi-service@@GCP_PROJECT@.iam.gserviceaccount.com 6 | name: default 7 | -------------------------------------------------------------------------------- /udmis/etc/k8s_config.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: config 5 | data: 6 | BITBOX_DISCOVERY: 7 | ETCD_CLUSTER: 8 | UDMI_NAMESPACE: @UDMI_NAMESPACE@ 9 | -------------------------------------------------------------------------------- /udmis/etc/peringknife~k8s_config.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: config 5 | data: 6 | BITBOX_DISCOVERY: prodev~udmi_target-discover 7 | UDMI_NAMESPACE: @UDMI_NAMESPACE@ 8 | -------------------------------------------------------------------------------- /udmis/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/udmis/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /udmis/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Feb 11 09:15:14 PST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /udmis/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'udmis' 2 | -------------------------------------------------------------------------------- /udmis/src/main/java/com/google/bos/udmi/monitoring/LogTailBase.java: -------------------------------------------------------------------------------- 1 | package com.google.bos.udmi.monitoring; 2 | 3 | import com.google.bos.udmi.service.pod.ContainerBase; 4 | 5 | /** 6 | * Extend ContainerBase with UDMI Monitoring specific functions. 7 | */ 8 | public class LogTailBase extends ContainerBase { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /udmis/src/test/configs/localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "2020-05-01T13:39:07Z", 3 | "version" : "1.3.14", 4 | "localnet" : { 5 | "families" : { 6 | "virtual" : { 7 | "id" : "0x65" 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /validator/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /validator/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /validator/.idea/runConfigurations/BaselineValidator.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/validator/.idea/runConfigurations/BaselineValidator.xml -------------------------------------------------------------------------------- /validator/.idea/runConfigurations/_template__of_Application.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /validator/etc/sshconfig: -------------------------------------------------------------------------------- 1 | Host * 2 | StrictHostKeyChecking no 3 | -------------------------------------------------------------------------------- /validator/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/faucetsdn/udmi/046a893094a00a7afd7dc01abf2b070414dad6fc/validator/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /validator/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Feb 11 09:15:14 PST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /validator/sequences/bad_point_ref/device_system.log: -------------------------------------------------------------------------------- 1 | 2024-11-06T17:32:54Z WARNING validation.feature.sequence Not a proxied device 2 | -------------------------------------------------------------------------------- /validator/sequences/bad_point_ref/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## bad_point_ref (PREVIEW) 3 | 4 | Error handling for badly formed gateway point ref 5 | 6 | 7 | Test skipped: Not a proxied device 8 | -------------------------------------------------------------------------------- /validator/sequences/bad_target_address/device_system.log: -------------------------------------------------------------------------------- 1 | 2024-11-06T17:33:12Z WARNING validation.feature.sequence Not a proxied device 2 | -------------------------------------------------------------------------------- /validator/sequences/bad_target_address/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## bad_target_address (PREVIEW) 3 | 4 | Error handling for badly formed gateway target address 5 | 6 | 7 | Test skipped: Not a proxied device 8 | -------------------------------------------------------------------------------- /validator/sequences/bad_target_family/device_system.log: -------------------------------------------------------------------------------- 1 | 2024-11-06T17:33:17Z WARNING validation.feature.sequence Not a proxied device 2 | -------------------------------------------------------------------------------- /validator/sequences/bad_target_family/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## bad_target_family (PREVIEW) 3 | 4 | Error handling for badly formed gateway target family 5 | 6 | 7 | Test skipped: Not a proxied device 8 | -------------------------------------------------------------------------------- /validator/sequences/broken_config/events_pointset.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:ea00b649", 7 | "publishTime" : "2024-12-01T09:20:09Z", 8 | "subFolder" : "pointset", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/broken_config/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:f87e0c1a", 7 | "publishTime" : "2024-12-01T09:20:09Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/broken_config/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/broken_config/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-01T09:19:18Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "broken_config" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/broken_config/state_localnet.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:66995e09-1", 7 | "publishTime" : "2024-12-01T09:20:11Z", 8 | "subFolder" : "localnet", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/broken_config/state_pointset.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:2086393c-2", 7 | "publishTime" : "2024-12-01T09:20:03Z", 8 | "subFolder" : "pointset", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/broken_config/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:66995e09-0", 7 | "publishTime" : "2024-12-01T09:20:11Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/broken_config/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:66995e09", 7 | "publishTime" : "2024-12-01T09:20:11Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/config_logging/events_pointset.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:93e0991e", 7 | "publishTime" : "2024-11-30T14:13:17Z", 8 | "subFolder" : "pointset", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/config_logging/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:6f53decf", 7 | "publishTime" : "2024-11-30T14:13:17Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/config_logging/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/config_logging/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-30T14:12:45Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "config_logging" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/config_logging/state_localnet.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:adae276d-1", 7 | "publishTime" : "2024-11-30T14:13:11Z", 8 | "subFolder" : "localnet", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/config_logging/state_pointset.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:adae276d-2", 7 | "publishTime" : "2024-11-30T14:13:11Z", 8 | "subFolder" : "pointset", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/config_logging/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:adae276d-0", 7 | "publishTime" : "2024-11-30T14:13:11Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/config_logging/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:adae276d", 7 | "publishTime" : "2024-11-30T14:13:11Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/device_config_acked/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/device_config_acked/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:31:44Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "device_config_acked" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/device_config_acked/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## device_config_acked (STABLE) 3 | 4 | Check that the device MQTT-acknowledges a sent config. 5 | 6 | 1. Wait for config acked 7 | 8 | Test passed. 9 | -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/config_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/config_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/config_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/config_pointset.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/config_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/local_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { } 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2025-06-10T17:06:52Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "endpoint_connection_bad_alternate" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/state_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "final", 5 | "generation" : "2025-06-10T17:08:10Z" 6 | } 7 | }, 8 | "timestamp" : "2025-06-10T17:08:32Z", 9 | "version" : "1.5.3" 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:34Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/state_validation.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/stray/config_update_2025-06-10T17:07:11Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/stray/config_update_2025-06-10T17:07:59Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "2025-06-10T17:07:59Z", 3 | "version" : "git-19f6e85" 4 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/stray/config_update_2025-06-10T17:08:01Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/stray/config_update_2025-06-10T17:08:29Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "2025-06-10T17:08:29Z", 3 | "version" : "git-19f6e85" 4 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/stray/config_update_2025-06-10T17:08:32Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/stray/state_discovery_2025-06-10T17:07:58Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:58Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/stray/state_update_2025-06-10T17:08:00Z.bad: -------------------------------------------------------------------------------- 1 | Unexpected device state change: Remove `discovery` 2 | Unexpected device state change: Remove `pointset` 3 | Unexpected device state change: Remove `localnet` -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_blobset_2025-06-10T17:07:30Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_blobset_2025-06-10T17:08:11Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_blobset_2025-06-10T17:08:33Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_discovery_2025-06-10T17:07:23Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_localnet_2025-06-10T17:07:26Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_pointset_2025-06-10T17:07:24Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_system_2025-06-10T17:07:25Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_update_2025-06-10T17:07:12Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_update_2025-06-10T17:07:17Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_update_2025-06-10T17:07:58Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "2025-06-10T17:07:58Z", 3 | "version" : "git-19f6e85" 4 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_update_2025-06-10T17:08:01Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/config_update_2025-06-10T17:08:32Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobset" : { 3 | "blobs" : { } 4 | }, 5 | "timestamp" : "2025-06-10T17:08:32Z", 6 | "version" : "git-19f6e85" 7 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/local_blobset_2025-06-10T17:08:32Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { } 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/local_discovery_2025-06-10T17:07:22Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/local_localnet_2025-06-10T17:07:22Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/local_system_2025-06-10T17:07:22Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2025-06-10T17:06:52Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "endpoint_connection_bad_alternate" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_blobset_2025-06-10T17:07:34Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "apply", 5 | "generation" : "2025-06-10T17:07:27Z" 6 | } 7 | }, 8 | "timestamp" : "2025-06-10T17:07:34Z", 9 | "version" : "1.5.3" 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_blobset_2025-06-10T17:08:18Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "apply", 5 | "generation" : "2025-06-10T17:08:10Z" 6 | } 7 | }, 8 | "timestamp" : "2025-06-10T17:08:18Z", 9 | "version" : "1.5.3" 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_blobset_2025-06-10T17:08:28Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "final", 5 | "generation" : "2025-06-10T17:08:10Z" 6 | } 7 | }, 8 | "timestamp" : "2025-06-10T17:08:28Z", 9 | "version" : "1.5.3" 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_blobset_2025-06-10T17:08:32Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "final", 5 | "generation" : "2025-06-10T17:08:10Z" 6 | } 7 | }, 8 | "timestamp" : "2025-06-10T17:08:32Z", 9 | "version" : "1.5.3" 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:04Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:04Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:06Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:06Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:11Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:11Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:13Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:13Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:17Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:17Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:19Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:19Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:22Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:22Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:24Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:24Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:26Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:26Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:29Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:29Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:31Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:31Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_discovery_2025-06-10T17:07:34Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:07:34Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_alternate/trace/state_validation_2025-06-10T17:07:04Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/config_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/config_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/config_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/config_pointset.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/config_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2025-06-10T17:07:52Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "endpoint_connection_bad_hash" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:22Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/state_validation.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/stray/config_update_2025-06-10T17:08:10Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/stray/state_discovery_2025-06-10T17:08:06Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:06Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/config_blobset_2025-06-10T17:08:22Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/config_discovery_2025-06-10T17:08:21Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/config_localnet_2025-06-10T17:08:23Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/config_pointset_2025-06-10T17:08:23Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/config_system_2025-06-10T17:08:21Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/config_update_2025-06-10T17:08:11Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/config_update_2025-06-10T17:08:16Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/local_discovery_2025-06-10T17:08:20Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/local_localnet_2025-06-10T17:08:20Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/local_system_2025-06-10T17:08:20Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2025-06-10T17:07:52Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "endpoint_connection_bad_hash" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/state_discovery_2025-06-10T17:08:04Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:04Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/state_discovery_2025-06-10T17:08:10Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:10Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/state_discovery_2025-06-10T17:08:12Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:12Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/state_discovery_2025-06-10T17:08:15Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:15Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/state_discovery_2025-06-10T17:08:17Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:17Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/state_discovery_2025-06-10T17:08:20Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:20Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/state_discovery_2025-06-10T17:08:22Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T17:08:22Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_bad_hash/trace/state_validation_2025-06-10T17:08:04Z.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_error/local_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { } 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_error/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_error/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:31:48Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "endpoint_connection_error" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_retry/local_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { } 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_retry/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_retry/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:31:41Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "endpoint_connection_retry" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_alternate/local_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { } 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_alternate/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_alternate/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_alternate/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-20T09:54:41Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "endpoint_connection_success_alternate" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_alternate/state_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "final", 5 | "generation" : "2024-12-20T09:55:33Z" 6 | } 7 | }, 8 | "timestamp" : "2024-12-20T09:55:51Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_alternate/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-20T09:55:51Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_reconnect/local_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { } 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_reconnect/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_reconnect/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_reconnect/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-20T09:54:40Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "endpoint_connection_success_reconnect" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_reconnect/state_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "final", 5 | "generation" : "2024-12-20T09:55:02Z" 6 | } 7 | }, 8 | "timestamp" : "2024-12-20T09:55:15Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_connection_success_reconnect/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-20T09:55:15Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_failure_and_restart/local_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { } 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_failure_and_restart/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_failure_and_restart/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "mode" : "active", 6 | "last_start" : "2024-11-06T17:32:41Z" 7 | }, 8 | "testing" : { 9 | "sequence_name" : "endpoint_failure_and_restart" 10 | } 11 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_redirect_and_restart/local_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { } 3 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_redirect_and_restart/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_redirect_and_restart/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_redirect_and_restart/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "mode" : "active", 6 | "last_start" : "2024-12-20T09:55:34Z" 7 | }, 8 | "testing" : { 9 | "sequence_name" : "endpoint_redirect_and_restart" 10 | } 11 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_redirect_and_restart/state_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "final", 5 | "generation" : "2024-12-20T09:55:46Z" 6 | } 7 | }, 8 | "timestamp" : "2024-12-20T09:56:03Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /validator/sequences/endpoint_redirect_and_restart/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-20T09:56:03Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_families/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_2", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:e09bf6ce", 7 | "publishTime" : "2024-12-11T05:44:13Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_families/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "enumerations" : { 3 | "families" : "entries" 4 | }, 5 | "families" : { 6 | "vendor" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_families/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_families/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-11T05:43:00Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "enumerate_families" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_families/state_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "apply", 5 | "generation" : "2024-12-11T05:43:38Z" 6 | } 7 | }, 8 | "timestamp" : "2024-12-11T05:43:42Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_families/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "generation" : "2024-12-11T05:44:12Z", 4 | "timestamp" : "2024-12-11T05:44:14Z", 5 | "version" : "1.5.2" 6 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_families/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_2", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:095cd7a2-0", 7 | "publishTime" : "2024-12-11T05:44:16Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_families/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_2", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:095cd7a2", 7 | "publishTime" : "2024-12-11T05:44:16Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_features/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_3", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:42c99668", 7 | "publishTime" : "2024-12-11T05:44:05Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_features/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "enumerations" : { 3 | "features" : "entries" 4 | }, 5 | "families" : { 6 | "vendor" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_features/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_features/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-11T05:43:03Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "enumerate_features" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_features/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "generation" : "2024-12-11T05:44:03Z", 4 | "timestamp" : "2024-12-11T05:44:05Z", 5 | "version" : "1.5.2" 6 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_features/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_3", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:460a096c-0", 7 | "publishTime" : "2024-12-11T05:44:07Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_features/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_3", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:460a096c", 7 | "publishTime" : "2024-12-11T05:44:07Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_multi/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_4", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:973b82f3", 7 | "publishTime" : "2024-12-11T05:44:58Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_multi/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "enumerations" : { 3 | "families" : "entries", 4 | "points" : "entries", 5 | "features" : "entries" 6 | }, 7 | "families" : { 8 | "vendor" : { } 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_multi/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_multi/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-11T05:44:10Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "enumerate_multi" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_multi/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "generation" : "2024-12-11T05:44:57Z", 4 | "timestamp" : "2024-12-11T05:44:59Z", 5 | "version" : "1.5.2" 6 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_multi/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_4", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:d2058b67-0", 7 | "publishTime" : "2024-12-11T05:44:59Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_multi/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_4", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:f458109d", 7 | "publishTime" : "2024-12-11T05:45:01Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/events_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "generation" : "2024-12-11T05:44:42Z", 3 | "scan_family" : "iot", 4 | "timestamp" : "2024-12-11T05:44:43Z", 5 | "version" : "1.5.2" 6 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_5", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:867fa74e", 7 | "publishTime" : "2024-12-11T05:44:43Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "enumerations" : { }, 3 | "families" : { 4 | "vendor" : { } 5 | } 6 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-11T05:43:51Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "enumerate_nothing" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/state_blobset.json: -------------------------------------------------------------------------------- 1 | { 2 | "blobs" : { 3 | "_iot_endpoint_config" : { 4 | "phase" : "apply", 5 | "generation" : "2024-12-11T05:44:03Z" 6 | } 7 | }, 8 | "timestamp" : "2024-12-11T05:44:12Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "generation" : "2024-12-11T05:44:42Z", 4 | "timestamp" : "2024-12-11T05:44:44Z", 5 | "version" : "1.5.2" 6 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_5", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:452681a4-0", 7 | "publishTime" : "2024-12-11T05:44:44Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_nothing/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_5", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:69079b4c", 7 | "publishTime" : "2024-12-11T05:44:46Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_pointset/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:6cfcf7cc", 7 | "publishTime" : "2024-12-11T05:44:36Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_pointset/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "enumerations" : { 3 | "points" : "entries" 4 | }, 5 | "families" : { 6 | "vendor" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_pointset/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_pointset/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-11T05:43:05Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "enumerate_pointset" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_pointset/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "generation" : "2024-12-11T05:44:35Z", 4 | "timestamp" : "2024-12-11T05:44:37Z", 5 | "version" : "1.5.2" 6 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_pointset/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:02f87012-0", 7 | "publishTime" : "2024-12-11T05:44:37Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/enumerate_pointset/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:df2a0e31", 7 | "publishTime" : "2024-12-11T05:44:39Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/events_pointset.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:90b3ae28", 7 | "publishTime" : "2024-12-17T05:26:26Z", 8 | "subFolder" : "pointset", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:088e9aa1", 7 | "publishTime" : "2024-12-17T05:26:26Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-17T05:25:35Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "extra_config" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/state_discovery.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:ad685211-1", 7 | "publishTime" : "2024-12-17T05:26:24Z", 8 | "subFolder" : "discovery", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-17T05:26:24Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/state_localnet.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:ad685211-2", 7 | "publishTime" : "2024-12-17T05:26:24Z", 8 | "subFolder" : "localnet", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/state_pointset.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:ad685211-3", 7 | "publishTime" : "2024-12-17T05:26:24Z", 8 | "subFolder" : "pointset", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:ad685211-0", 7 | "publishTime" : "2024-12-17T05:26:24Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/extra_config/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:ccc1017c", 7 | "publishTime" : "2024-12-17T05:26:26Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ether_addr/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_3", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:e36412d1", 7 | "publishTime" : "2024-12-20T09:56:12Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ether_addr/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/family_ether_addr/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/family_ether_addr/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-20T09:54:40Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "family_ether_addr" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ether_addr/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## family_ether_addr (PREVIEW) 3 | 4 | 1. Wait until device state localnet family ether is available 5 | 1. Check that family ether address matches 6 | 7 | Test passed. 8 | -------------------------------------------------------------------------------- /validator/sequences/family_ether_addr/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-20T09:56:16Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/family_ether_addr/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_3", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:e3abbb60-0", 7 | "publishTime" : "2024-12-20T09:56:16Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ether_addr/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_3", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:b95127e2", 7 | "publishTime" : "2024-12-20T09:56:18Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv4_addr/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_4", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:8b9e796c", 7 | "publishTime" : "2024-12-20T09:56:52Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv4_addr/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv4_addr/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv4_addr/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-20T09:55:25Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "family_ipv4_addr" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv4_addr/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## family_ipv4_addr (PREVIEW) 3 | 4 | 1. Wait until device state localnet family ipv4 is available 5 | 1. Check that family ipv4 address matches 6 | 7 | Test passed. 8 | -------------------------------------------------------------------------------- /validator/sequences/family_ipv4_addr/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-20T09:56:53Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv4_addr/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_4", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:23df3ae6-0", 7 | "publishTime" : "2024-12-20T09:56:55Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv4_addr/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_4", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:23df3ae6", 7 | "publishTime" : "2024-12-20T09:56:55Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv6_addr/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_8", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:e18d9e98", 7 | "publishTime" : "2024-12-09T01:27:44Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv6_addr/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## family_ipv6_addr (PREVIEW) 3 | 4 | 5 | Test skipped: No ipv6 address defined in metadata 6 | -------------------------------------------------------------------------------- /validator/sequences/family_ipv6_addr/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_8", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:985405da-0", 7 | "publishTime" : "2024-12-09T01:27:53Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/family_ipv6_addr/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_8", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:985405da", 7 | "publishTime" : "2024-12-09T01:27:53Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/gateway_attach_handling/device_system.log: -------------------------------------------------------------------------------- 1 | 2024-11-06T17:36:12Z WARNING validation.feature.sequence Not a gateway 2 | -------------------------------------------------------------------------------- /validator/sequences/gateway_attach_handling/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## gateway_attach_handling (ALPHA) 3 | 4 | Check adequate logging for gateway detach, errors, and reattach 5 | 6 | 7 | Test skipped: Not a gateway 8 | -------------------------------------------------------------------------------- /validator/sequences/gateway_proxy_events/device_system.log: -------------------------------------------------------------------------------- 1 | 2024-11-06T17:33:12Z WARNING validation.feature.sequence Not a gateway 2 | -------------------------------------------------------------------------------- /validator/sequences/gateway_proxy_events/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## gateway_proxy_events (BETA) 3 | 4 | Check that a gateway proxies pointset events for indicated devices 5 | 6 | 7 | Test skipped: Not a gateway 8 | -------------------------------------------------------------------------------- /validator/sequences/gateway_proxy_state/device_system.log: -------------------------------------------------------------------------------- 1 | 2024-11-06T17:33:17Z WARNING validation.feature.sequence Not a gateway 2 | -------------------------------------------------------------------------------- /validator/sequences/gateway_proxy_state/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## gateway_proxy_state (PREVIEW) 3 | 4 | Check that a gateway proxies state updates for indicated devices 5 | 6 | 7 | Test skipped: Not a gateway 8 | -------------------------------------------------------------------------------- /validator/sequences/pointset_publish/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:4f84680d", 7 | "publishTime" : "2024-11-06T17:33:04Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_publish/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_publish/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:31:53Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "pointset_publish" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_publish/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## pointset_publish (STABLE) 3 | 4 | Check that a device publishes pointset events 5 | 6 | 1. Wait for receive a pointset event 7 | 8 | Test passed. 9 | -------------------------------------------------------------------------------- /validator/sequences/pointset_publish/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:39f90173-0", 7 | "publishTime" : "2024-11-06T17:33:01Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_publish/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:39f90173", 7 | "publishTime" : "2024-11-06T17:33:01Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_publish_interval/events_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "event_no" : 21, 3 | "last_config" : "2024-11-06T17:34:02Z", 4 | "logentries" : [ ], 5 | "metrics" : { 6 | "mem_total_mb" : 254.0, 7 | "mem_free_mb" : 174.37345123291016 8 | }, 9 | "timestamp" : "2024-11-06T17:35:10Z", 10 | "version" : "1.5.2" 11 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_publish_interval/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_publish_interval/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:31:48Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "pointset_publish_interval" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_remove_point/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_remove_point/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:31:41Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "pointset_remove_point" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_request_extraneous/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_request_extraneous/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_request_extraneous/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-17T05:25:35Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "pointset_request_extraneous" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/pointset_request_extraneous/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { 4 | "phase" : "stopped", 5 | "active_count" : 3 6 | } 7 | }, 8 | "timestamp" : "2024-12-17T05:27:58Z", 9 | "version" : "1.5.2" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_periodic_now_enumerate/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { 4 | "generation" : "2024-12-11T05:44:06Z", 5 | "scan_interval_sec" : 20, 6 | "scan_duration_sec" : 20, 7 | "depth" : "entries" 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_periodic_now_enumerate/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/scan_periodic_now_enumerate/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-11T05:43:02Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "scan_periodic_now_enumerate" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_periodic_now_enumerate/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { 4 | "generation" : "2024-12-11T05:44:46Z", 5 | "phase" : "active", 6 | "active_count" : 1 7 | } 8 | }, 9 | "timestamp" : "2024-12-11T05:44:46Z", 10 | "version" : "1.5.2" 11 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_future/events_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "generation" : "2024-12-17T05:26:45Z", 3 | "scan_addr" : "28179023", 4 | "scan_family" : "vendor", 5 | "system" : { 6 | "ancillary" : { 7 | "device-name" : "AHU-1" 8 | } 9 | }, 10 | "timestamp" : "2024-12-17T05:26:45Z", 11 | "version" : "1.5.2" 12 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_future/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_8", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:8709d979", 7 | "publishTime" : "2024-12-17T05:26:45Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_future/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { 4 | "generation" : "2024-12-17T05:26:45Z", 5 | "scan_duration_sec" : 10 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_future/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_future/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-17T05:25:34Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "scan_single_future" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_future/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { 4 | "generation" : "2024-12-17T05:26:45Z", 5 | "phase" : "active", 6 | "active_count" : 3 7 | } 8 | }, 9 | "timestamp" : "2024-12-17T05:26:47Z", 10 | "version" : "1.5.2" 11 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_future/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_8", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:50ab3f0c-0", 7 | "publishTime" : "2024-12-17T05:26:47Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_future/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_8", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:2161614f", 7 | "publishTime" : "2024-12-17T05:26:55Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_now/events_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "generation" : "2024-12-17T05:26:53Z", 3 | "scan_addr" : "0x65", 4 | "scan_family" : "vendor", 5 | "system" : { 6 | "ancillary" : { 7 | "device-name" : "AHU-22" 8 | } 9 | }, 10 | "timestamp" : "2024-12-17T05:27:06Z", 11 | "version" : "1.5.2" 12 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_now/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:0a3ea0bf", 7 | "publishTime" : "2024-12-17T05:27:16Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_now/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { 4 | "generation" : "2024-12-17T05:26:53Z", 5 | "scan_duration_sec" : 10 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_now/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_now/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-17T05:25:35Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "scan_single_now" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_now/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { 4 | "generation" : "2024-12-17T05:26:53Z", 5 | "phase" : "active", 6 | "active_count" : 3 7 | } 8 | }, 9 | "timestamp" : "2024-12-17T05:27:08Z", 10 | "version" : "1.5.2" 11 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_now/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:dbde3007-0", 7 | "publishTime" : "2024-12-17T05:27:08Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_now/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_9", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:c870b70d", 7 | "publishTime" : "2024-12-17T05:27:16Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_past/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_0", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:fa1fe077", 7 | "publishTime" : "2024-12-17T05:27:27Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_past/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { 4 | "generation" : "2021-01-28T20:42:28Z", 5 | "scan_duration_sec" : 10 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_past/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_past/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-17T05:25:25Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "scan_single_past" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_past/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-17T05:27:29Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_past/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_0", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:dec9b20d-0", 7 | "publishTime" : "2024-12-17T05:27:31Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/scan_single_past/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_0", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:dec9b20d", 7 | "publishTime" : "2024-12-17T05:27:31Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_make_model/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:e5aed515", 7 | "publishTime" : "2024-11-06T17:33:18Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_make_model/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## state_make_model (STABLE) 3 | 4 | Check that a device publishes correct make and model information in state messages 5 | 6 | 1. Check that make and model in state matches make in metadata 7 | 8 | Test passed. 9 | -------------------------------------------------------------------------------- /validator/sequences/state_make_model/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:1a23e984-0", 7 | "publishTime" : "2024-11-06T17:33:20Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_make_model/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_6", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:1a23e984", 7 | "publishTime" : "2024-11-06T17:33:20Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_software/events_pointset.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:c047856a", 7 | "publishTime" : "2024-11-06T17:33:05Z", 8 | "subFolder" : "pointset", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_software/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:2f90f463", 7 | "publishTime" : "2024-11-06T17:33:05Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_software/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## state_software (STABLE) 3 | 4 | Check that a device publishes correct software information in state messages 5 | 6 | 1. Check that software in metadata matches state 7 | 8 | Test passed. 9 | -------------------------------------------------------------------------------- /validator/sequences/state_software/state_localnet.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:0838a8ff-1", 7 | "publishTime" : "2024-11-06T17:33:04Z", 8 | "subFolder" : "localnet", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_software/state_pointset.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:0838a8ff-2", 7 | "publishTime" : "2024-11-06T17:33:04Z", 8 | "subFolder" : "pointset", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_software/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:ffe164e3-0", 7 | "publishTime" : "2024-11-06T17:33:06Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/state_software/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_7", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:ffe164e3", 7 | "publishTime" : "2024-11-06T17:33:06Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/system_last_update/events_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_0", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:0bcdaca5", 7 | "publishTime" : "2024-11-06T17:33:00Z", 8 | "subFolder" : "system", 9 | "subType" : "events" 10 | } -------------------------------------------------------------------------------- /validator/sequences/system_last_update/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/system_last_update/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:31:48Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "system_last_update" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/system_last_update/state_system.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_0", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:b7ff0c90-0", 7 | "publishTime" : "2024-11-06T17:33:08Z", 8 | "subFolder" : "system", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/system_min_loglevel/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/system_min_loglevel/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/system_min_loglevel/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-17T05:27:51Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "system_min_loglevel" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/system_min_loglevel/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-17T05:28:34Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/config_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/config_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/config_pointset.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/config_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "mode" : "active", 6 | "last_start" : "2025-06-10T19:55:06Z" 7 | }, 8 | "testing" : { 9 | "sequence_name" : "system_mode_restart" 10 | } 11 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2025-06-10T19:55:13Z", 4 | "version" : "1.5.3" 5 | } -------------------------------------------------------------------------------- /validator/sequences/system_mode_restart/state_validation.json: -------------------------------------------------------------------------------- 1 | { 2 | "operation" : "REPLY" 3 | } -------------------------------------------------------------------------------- /validator/sequences/too_much_state/events_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "event_no" : 9, 3 | "last_config" : "2024-11-06T17:35:39Z", 4 | "logentries" : [ ], 5 | "metrics" : { 6 | "mem_total_mb" : 254.0, 7 | "mem_free_mb" : 212.8872833251953 8 | }, 9 | "timestamp" : "2024-11-06T17:36:26Z", 10 | "version" : "1.5.2" 11 | } -------------------------------------------------------------------------------- /validator/sequences/too_much_state/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/too_much_state/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:35:05Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "too_much_state" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/too_much_state/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## too_much_state (ALPHA) 3 | 4 | Check that state messages aren't spuriously reported too frequently 5 | 6 | 1. Wait for system accumulating state events for 60s 7 | 1. Check that No more than 6 state updates in 60s 8 | 9 | Test passed. 10 | -------------------------------------------------------------------------------- /validator/sequences/too_much_state/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_1", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:d62a2d3f", 7 | "publishTime" : "2024-11-06T17:35:39Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/valid_serial_no/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "ipv6" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/valid_serial_no/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 200, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-11-06T17:31:41Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "valid_serial_no" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/valid_serial_no/sequence.md: -------------------------------------------------------------------------------- 1 | 2 | ## valid_serial_no (STABLE) 3 | 4 | 1. Wait for received serial number matches 5 | 6 | Test passed. 7 | -------------------------------------------------------------------------------- /validator/sequences/valid_serial_no/state_update.attr: -------------------------------------------------------------------------------- 1 | { 2 | "deviceId" : "AHU-1", 3 | "deviceNumId" : "123456789101112", 4 | "deviceRegistryId" : "ZZ-TRI-FECTA_1", 5 | "projectId" : "localhost", 6 | "transactionId" : "MP:5aa464ce", 7 | "publishTime" : "2024-11-06T17:33:13Z", 8 | "subFolder" : "update", 9 | "subType" : "state" 10 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_failure/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_failure/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_failure/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-18T15:32:27Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "writeback_failure" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_failure/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-18T15:33:00Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_invalid/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_invalid/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_invalid/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-18T15:32:03Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "writeback_invalid" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_invalid/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-18T15:32:35Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_success/local_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "vendor" : { } 4 | } 5 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_success/local_localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { 3 | "ether" : { }, 4 | "ipv4" : { }, 5 | "vendor" : { }, 6 | "bacnet" : { } 7 | } 8 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_success/local_system.json: -------------------------------------------------------------------------------- 1 | { 2 | "min_loglevel" : 100, 3 | "metrics_rate_sec" : 10, 4 | "operation" : { 5 | "last_start" : "2024-12-18T15:33:43Z" 6 | }, 7 | "testing" : { 8 | "sequence_name" : "writeback_success" 9 | } 10 | } -------------------------------------------------------------------------------- /validator/sequences/writeback_success/state_discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "families" : { }, 3 | "timestamp" : "2024-12-18T15:34:17Z", 4 | "version" : "1.5.2" 5 | } -------------------------------------------------------------------------------- /validator/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'validator' 2 | -------------------------------------------------------------------------------- /validator/src/main/java/com/google/bos/iot/core/proxy/ProjectMetadata.java: -------------------------------------------------------------------------------- 1 | package com.google.bos.iot.core.proxy; 2 | 3 | import java.util.HashMap; 4 | 5 | /** 6 | * Collection of metadata for a given project. 7 | */ 8 | public class ProjectMetadata extends HashMap { 9 | } 10 | -------------------------------------------------------------------------------- /validator/src/main/java/com/google/bos/iot/core/proxy/ProxyConfig.java: -------------------------------------------------------------------------------- 1 | package com.google.bos.iot.core.proxy; 2 | 3 | /** 4 | * Basic configuration for proxy. 5 | */ 6 | public class ProxyConfig { 7 | public String dstProjectId; 8 | public String dstRegistryId; 9 | public String dstCloudRegion; 10 | } 11 | -------------------------------------------------------------------------------- /validator/src/main/java/com/google/daq/mqtt/sequencer/Capability.java: -------------------------------------------------------------------------------- 1 | package com.google.daq.mqtt.sequencer; 2 | 3 | /** 4 | * Simple marker interface for handling capabilities. 5 | */ 6 | public interface Capability { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /validator/src/main/java/com/google/daq/mqtt/sequencer/DiscoveryScanMode.java: -------------------------------------------------------------------------------- 1 | package com.google.daq.mqtt.sequencer; 2 | 3 | /** 4 | * Basic enumeration to capture some of the kinds of scans to be tested. 5 | */ 6 | public enum DiscoveryScanMode { 7 | NO_SCAN, NO_ENUMERATION, PLEASE_ENUMERATE 8 | } 9 | -------------------------------------------------------------------------------- /validator/src/main/java/com/google/daq/mqtt/util/PublishPriority.java: -------------------------------------------------------------------------------- 1 | package com.google.daq.mqtt.util; 2 | 3 | /** 4 | * Simple indicator enum for publishing high-priority messages. 5 | */ 6 | public enum PublishPriority { 7 | NORMAL, HIGH 8 | } 9 | -------------------------------------------------------------------------------- /validator/src/main/java/com/google/daq/mqtt/validator/ErrorCollector.java: -------------------------------------------------------------------------------- 1 | package com.google.daq.mqtt.validator; 2 | 3 | /** 4 | * Simple interface for collecting errors of various kinds. 5 | */ 6 | public interface ErrorCollector { 7 | 8 | void addError(Exception error, String category, String detail); 9 | } 10 | -------------------------------------------------------------------------------- /validator/src/test/configs/localnet.json: -------------------------------------------------------------------------------- 1 | { 2 | "timestamp" : "2020-05-01T13:39:07Z", 3 | "version" : "1.3.14", 4 | "localnet" : { 5 | "families" : { 6 | "virtual" : { 7 | "id" : "0x65" 8 | } 9 | } 10 | } 11 | } 12 | --------------------------------------------------------------------------------