Skip to main content

Configuration

Most of the web applications integrating the MonkJs SDK will need the same configuration properties. To simplify the syntax when configuring your app, we provide a TypeScript interfaces called (PhotoCaptureAppConfig and VideoCaptureAppConfig) that contains the usual configuration properties needed for both the PhotoCapture and VideoCapture workflows. You can create a file in your app that will contain the MonkJs configuration, so that it will be easy to modify the config properties if needed:

// config.ts
import { PhotoCaptureAppConfig } from '@monkvision/types';

export const MonkJsConfig: PhotoCaptureAppConfig = {
...
};

This configuration object can then be passed to components like <MonkAppStateProvider> or <PhotoCapture>.

Available Configuration Options

The following table lists the available configuration options in the CaptureAppConfig interface :

NameTypeDescriptionRequiredDefault Value
allowManualLoginbooleanIndicates if manual login and logout should be enabled or not.✔️
fetchFromSearchParamsbooleanIndicates if the app state (auth token, inspection ID etc.) should be fetched from the URL search params.✔️
allowVehicleTypeSelectionbooleanIndicates if manual vehicle type selection should be enabled if the vehicle type is not defined.✔️
enableSteeringWheelPositionbooleanIndicates if the capture Sights should vary based on the steering wheel position (right or left).✔️
defaultVehicleTypeVehicleTypeDefault vehicle type to use if no vehicle type has been specified.✔️
defaultSteeringWheelPositionSteeringWheelPositionDefault steering wheel position to use if no steering wheel position has been specified.if enableSteeringWheelPosition is set to true
sightsRecord<..., string[]>A map associating each vehicle type supported by the app to a list of sight IDs. If enableSteeringWheelPosition is set to true, it's a map associating each steering wheel position to this map.✔️
allowCreateInspectionbooleanIndicates if automatic inspection creation should be enabled in the app.✔️
createInspectionOptionsCreateInspectionOptionsOptions used when automatically creating an inspection.if allowCreateInspection is set to true
apiDomainstringThe API domain used to communicate with the API.✔️
requiredApiPermissionsMonkApiPermission[]Required API permission that the user must have to use the current app.
palettePartial<MonkPalette>Custom color palette to use in the app.
enforceOrientationDeviceOrientationUse this prop to enforce a specific device orientation for the Camera screen.
maxUploadDurationWarningnumberMax upload duration in milliseconds before showing a bad connection warning to the user. Use -1 to never display the warning.15000
useAdaptiveImageQualitybooleanBoolean indicating if the image quality should be downgraded automatically in case of low connection.true
showCloseButtonbooleanIndicates if the close button should be displayed in the HUD on top of the Camera preview.false
startTasksOnComplete<code>boolean &#124; TaskName[]</code>Value indicating if tasks should be started at the end of the inspection. See the inspection-capture-web package doc for more info.true
additionalTasksTaskName[]An optional list of additional tasks to run on every Sight of the inspection.
tasksBySightRecord<string, TaskName[]>Record associating each sight with a list of tasks to execute for it. If not provided, the default tasks of the sight will be used.
resolutionCameraResolutionIndicates the resolution of the pictures taken by the Camera.CameraResolution.UHD_4K
allowImageUpscalingbooleanAllow images to be scaled up if the device does not support the specified resolution in the resolution prop.false
formatCompressionFormatThe output format of the compression.CompressionFormat.JPEG
qualitynumberValue indicating image quality for the compression output.0.6
addDamageAddDamageOptions for Add Damage, If disabled, the Add Damage button will be hidden.AddDamage.PART_SELECT
allowSkipRetakebooleanIf compliance is enabled, this prop indicate if the user is allowed to skip the retaking process if some pictures are not compliant.false
enableCompliancebooleanIndicates if compliance checks should be enabled or not.true
enableCompliancePerSightstring[]Array of Sight IDs that indicates for which sight IDs the compliance should be enabled.
complianceIssuesComplianceIssue[]If compliance checks are enabled, this property can be used to select a list of compliance issues to check.DEFAULT_COMPLIANCE_ISSUES
complianceIssuesPerSightRecord<string, ComplianceIssue[]>A map associating Sight IDs to a list of compliance issues to check.
useLiveCompliancebooleanIndicates if live compliance should be enabled or not.false
customComplianceThresholdsCustomComplianceThresholdsCustom thresholds that can be used to modify the strictness of the compliance for certain compliance issues.
customComplianceThresholdsPerSightRecord<string, CustomComplianceThresholds>A map associating Sight IDs to custom compliance thresholds.

Live Configs

MonkJs now also offers a way to configure Live Configurations for your web applications. This allows MonkJs apps to fetch their configurations (PhotoCaptureAppConfig or VideoCaptureAppConfig) from a GCP Bucket on startup. By doing this, the configurations of the applications can be modified without having to re-deploy the apps. Each live configuration consists of a JSON file stored in a public bucket on Monk's Google Cloud instances, identified by a unique ID. It is not possible for now to set up a custom hosting service for the live configs, but this feature should arrive soon. In order to set up a live configuration on one of your apps, you can simply use the following provider in your app :

import { LiveConfigAppProvider } from '@monkvision/common-ui-web';

function App() {
return (
<LiveConfigAppProvider id='your-live-config-id'>
...
</LiveConfigAppProvider>
);
}

This component will automatically fetch the given live configuration from one of our buckets, and set up a MonkAppStateProvider in your app by passing it the fetched configuration.

Available Configuration Options

Shared Configuration Options

The following table lists the options available in both the PhotoCapture and VideoCapture configurations :

NameTypeDescriptionRequiredDefault Value
workflowCaptureWorkflowSpecifies which capture workflow this app is meant to be used for. The config options available change based on this param.✔️
formatCompressionFormatThe output format of the compression.CompressionFormat.JPEG
qualitynumberValue indicating image quality for the compression output.0.6
resolutionCameraResolutionIndicates the resolution of the pictures taken by the Camera.CameraResolution.UHD_4K
allowImageUpscalingbooleanAllow images to be scaled up if the device does not support the specified resolution in the resolution prop.false
additionalTasksTaskName[]An optional list of additional tasks to run on every image of the inspection.
startTasksOnComplete<code>boolean &#124; TaskName[]</code>Value indicating if tasks should be started at the end of the inspection. See the inspection-capture-web package doc for more info.true
allowManualLoginbooleanIndicates if manual login and logout should be enabled or not.✔️
fetchFromSearchParamsbooleanIndicates if the app state (auth token, inspection ID etc.) should be fetched from the URL search params.✔️
apiDomainstringThe API domain used to communicate with the API.✔️
thumbnailDomainstringThe API domain used to communicate with the resize microservice.✔️
requiredApiPermissionsMonkApiPermission[]Required API permission that the user must have to use the current app.
palettePartial<MonkPalette>Custom color palette to use in the app.
allowCreateInspectionbooleanIndicates if automatic inspection creation should be enabled in the app.✔️
createInspectionOptionsCreateInspectionOptionsOptions used when automatically creating an inspection.if allowCreateInspection is set to true

PhotoCapture Configuration Options

The following table lists the available configuration options in the PhotoCaptureAppConfig interface.

Note : PhotoCapture configurations must have their workflow property set to CaptureWorkflow.PHOTO.

NameTypeDescriptionRequiredDefault Value
enableCompliancebooleanIndicates if compliance checks should be enabled or not.true
enableCompliancePerSightstring[]Array of Sight IDs that indicates for which sight IDs the compliance should be enabled.
complianceIssuesComplianceIssue[]If compliance checks are enabled, this property can be used to select a list of compliance issues to check.DEFAULT_COMPLIANCE_ISSUES
complianceIssuesPerSightRecord<string, ComplianceIssue[]>A map associating Sight IDs to a list of compliance issues to check.
useLiveCompliancebooleanIndicates if live compliance should be enabled or not.false
customComplianceThresholdsCustomComplianceThresholdsCustom thresholds that can be used to modify the strictness of the compliance for certain compliance issues.
customComplianceThresholdsPerSightRecord<string, CustomComplianceThresholds>A map associating Sight IDs to custom compliance thresholds.
tasksBySightRecord<string, TaskName[]>Record associating each sight with a list of tasks to execute for it. If not provided, the default tasks of the sight will be used.
showCloseButtonbooleanIndicates if the close button should be displayed in the HUD on top of the Camera preview.false
enforceOrientationDeviceOrientationUse this prop to enforce a specific device orientation for the Camera screen.
useAdaptiveImageQualitybooleanBoolean indicating if the image quality should be downgraded automatically in case of low connection.true
maxUploadDurationWarningnumberMax upload duration in milliseconds before showing a bad connection warning to the user. Use -1 to never display the warning.15000
allowSkipRetakebooleanIf compliance is enabled, this prop indicate if the user is allowed to skip the retaking process if some pictures are not compliant.false
addDamageAddDamageOptions for Add Damage. If disabled, the Add Damage button will be hidden.AddDamage.PART_SELECT
sightGuidelinessightGuideline[]A collection of sight guidelines in different language with a list of sightIds associate to it.
enableSightGuidelinebooleanBoolean indicating whether the sight guideline feature is enabled. If disabled, the guideline text will be hidden.true
defaultVehicleTypeVehicleTypeDefault vehicle type to use if no vehicle type has been specified.✔️
allowVehicleTypeSelectionbooleanIndicates if manual vehicle type selection should be enabled if the vehicle type is not defined.✔️
enableTutorialPhotoCaptureTutorialOptionOptions for displaying the photo capture tutorial.PhotoCaptureTutorialOption.FIRST_TIME_ONLY
allowSkipTutorialbooleanBoolean indicating if the user can skip the PhotoCapture tutorial.true
enableSightTutorialbooleanBoolean indicating whether the sight tutorial feature is enabled.true
enableSteeringWheelPositionbooleanIndicates if the capture Sights should vary based on the steering wheel position (right or left).✔️
sightsRecord<..., string[]>A map associating each vehicle type supported by the app to a list of sight IDs. If enableSteeringWheelPosition is set to true, it's a map associating each steering wheel position to this map.✔️
defaultSteeringWheelPositionSteeringWheelPositionDefault steering wheel position to use if no steering wheel position has been specified.if enableSteeringWheelPosition is set to true

VideoCapture Configuration Options

The following table lists the available configuration options in the VideoCaptureAppConfig interface.

Note : PhotoCapture configurations must have their workflow property set to CaptureWorkflow.VIDEO.

NameTypeDescriptionRequiredDefault Value
minRecordingDurationnumberThe minimum duration of a recording in milliseconds.15000
maxRetryCountnumberThe maximum number of retries for failed image uploads.3
enableFastWalkingWarningbooleanBoolean indicating if a warning should be shown to the user when they are walking too fast around the vehicle.true
enablePhoneShakingWarningbooleanBoolean indicating if a warning should be shown to the user when they are shaking their phone too much.true
fastWalkingWarningCooldownnumberThe duration (in milliseconds) to wait between fast walking warnings.4000
phoneShakingWarningCooldownnumberThe duration (in milliseconds) to wait between phone shaking warnings.4000