add descriptions to schema and fix sample-config-advanced.json
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Mar 20, 2025 at 10:49 UTC
027e5b52c5d9760abb24abe3debd022ca342b3df
2 files changed
+286
-142
meshcentral-config-schema.json
+259
-124
@@ -22,10 +22,12 @@
22
},
23
"mongoDb": {
24
"type": "string",
25
- "default": null
25
+ "default": null,
26
+ "description": "Add this section to connect MeshCentral to a MongoDB database instance. Set to the MongoDB connection string. For example 'mongodb://localhost:27017/meshcentral'."
27
},
28
"mongoDbName": {
28
- "type": "string"
29
+ "type": "string",
30
+ "description": "Name of the MongoDB database used."
31
},
32
"mongoDbChangeStream": {
33
"type": "boolean",
@@ -278,6 +280,7 @@
280
},
281
"dbExpire": {
282
"type": "object",
283
+ "description": "Amount of time to keep various events in the database, in seconds. Below are the default values",
284
"properties": {
285
"events": {
286
"type": "integer",
@@ -572,14 +575,17 @@
575
"description": "Set to false to disable agent multicast scanning on the local network, this is already disabled in WAN mode."
576
},
577
"meshErrorLogPath": {
575
- "type": "string"
578
+ "type": "string",
579
+ "description": "Path to the MeshCentral error log file."
580
},
581
"npmPath": {
578
- "type": "string"
582
+ "type": "string",
583
+ "description": "Path to the npm executable."
584
},
585
"npmProxy": {
586
"type": "string",
582
- "format": "uri"
587
+ "format": "uri",
588
+ "description": "HTTP proxy to use when downloading npm packages."
589
},
590
"allowHighQualityDesktop": {
591
"type": "boolean",
@@ -680,7 +686,7 @@
686
"items": {
687
"type": "string"
688
},
683
- "description": "Users in this list are allowed to see and manage all device groups within their domain."
689
+ "description": "Users in this list are allowed to see and manage all device groups within their domain. For example ['user//billybob','user//fred'] would allow billybob and fred to manage all device groups from all users in their domain."
690
},
691
"manageCrossDomain": {
692
"type": "array",
@@ -688,17 +694,19 @@
694
"items": {
695
"type": "string"
696
},
691
- "description": "Users in this list are allowed to manage all users in all domains."
697
+ "description": "Users in this list are allowed to manage all users in all domains. For example ['user//billybob','user/subdomain/fred'] would allow billybob to manage all users in all domains."
698
},
699
"localDiscovery": {
700
"type": "object",
701
"description": "When this server is in LAN mode, you may discover this server using a multicast discovery tool. When discovery happens, the name and info fields are sent back to the discovery tool.",
702
"properties": {
703
"name": {
698
- "type": "string"
704
+ "type": "string",
705
+ "description": "The name of the server."
706
},
707
"info": {
701
- "type": "string"
708
+ "type": "string",
709
+ "description": "The information about the server."
710
},
711
"key": {
712
"type": "string",
@@ -745,17 +753,20 @@
753
},
754
"mpsPortBind": {
755
"type": "string",
748
- "default": null
756
+ "default": null,
757
+ "description": "When set, bind the MPS port to a specific network address."
758
},
759
"mpsAliasPort": {
760
"type": "integer",
761
"minimum": 1,
762
"maximum": 65535,
754
- "default": null
763
+ "default": null,
764
+ "description": "The actual MPS port as seen externally on the Internet, this setting is often used when a reverse-proxy is used."
765
},
766
"mpsAliasHost": {
767
"type": "string",
758
- "default": null
768
+ "default": null,
769
+ "description": "When set, the MPS port is ignored and the MPS is accessed using this DNS name."
770
},
771
"mpsTlsOffload": {
772
"type": "boolean",
@@ -777,7 +788,8 @@
788
},
789
"no2FactorAuth": {
790
"type": "boolean",
780
- "default": false
791
+ "default": false,
792
+ "description": "When set to true, disables two-factor authentication for all users."
793
},
794
"debug": {
795
"type": "string",
@@ -791,15 +803,18 @@
803
},
804
"syslog": {
805
"type": "string",
794
- "default": null
806
+ "default": null,
807
+ "description": "Send syslog events to a target hostname:port. For example: localhost:514"
808
},
809
"syslogauth": {
810
"type": "string",
798
- "default": null
811
+ "default": null,
812
+ "description": "Send syslog events to a target hostname:port with authentication. For example: user:password@localhost:514"
813
},
814
"syslogjson": {
815
"type": "string",
802
- "default": null
816
+ "default": null,
817
+ "description": "Send syslog events in JSON format to a target hostname:port. For example: localhost:514"
818
},
819
"syslogtcp": {
820
"type": "string",
@@ -1218,6 +1233,14 @@
1233
"default": null,
1234
"description": "If an agent attempts to connect to a unknown device group, automatically create a new device group and grant access to the specified user. Example: admin"
1235
},
1236
+ "manageAllDeviceGroups": {
1237
+ "type": "array",
1238
+ "uniqueItems": true,
1239
+ "items": {
1240
+ "type": "string"
1241
+ },
1242
+ "description": "Users in this list are allowed to see and manage all device groups within their domain. For example ['billybob','fred'] would allow billybob and fred to manage all device groups from all users in their domain."
1243
+ },
1244
"maxDeviceView": {
1245
"type": "integer",
1246
"default": null,
@@ -1239,10 +1262,12 @@
1262
"description": "If true, a Scroll To Top button in the devices tab."
1263
},
1264
"userQuota": {
1242
- "type": "integer"
1265
+ "type": "integer",
1266
+ "description": "This is the maximum amount of data in kilobytes that can be placed in the “My Files” tab for a user account."
1267
},
1268
"meshQuota": {
1245
- "type": "integer"
1269
+ "type": "integer",
1270
+ "description": "This is the maximum amount of data in kilobytes that can be placed in the “My Files” tab for a given mesh"
1271
},
1272
"loginKey": {
1273
"type": [
@@ -1296,7 +1321,8 @@
1321
"uniqueItems": true,
1322
"items": {
1323
"type": "string"
1299
- }
1324
+ },
1325
+ "description": "When set, new accounts will be added to these groups."
1326
},
1327
"userNameIsEmail": {
1328
"type": "boolean",
@@ -1308,14 +1334,19 @@
1334
"uniqueItems": true,
1335
"items": {
1336
"type": "string"
1311
- }
1337
+ },
1338
+ "description": "When set, new accounts will only be created for email addresses that match these domains."
1339
},
1340
"newAccountsRights": {
1314
- "type": "array",
1341
+ "type": [
1342
+ "array",
1343
+ "string"
1344
+ ],
1345
"uniqueItems": true,
1346
"items": {
1347
"type": "string"
1318
- }
1348
+ },
1349
+ "description": "When set, new accounts will be added to these siteadmin rights."
1350
},
1351
"allowedOrigin": {
1352
"type": [
@@ -1989,16 +2020,20 @@
2020
"description": "This section is user to customize user notifications when a remote desktop, terminal or file session is connected to a remote system.",
2021
"properties": {
2022
"Title": {
1992
- "type": "string"
2023
+ "type": "string",
2024
+ "description": "Title of the notification message."
2025
},
2026
"Desktop": {
1995
- "type": "string"
2027
+ "type": "string",
2028
+ "description": "Message to show when a remote desktop session is connected, you can use {0} to represent the realname and {1} to represent the username."
2029
},
2030
"Terminal": {
1998
- "type": "string"
2031
+ "type": "string",
2032
+ "description": "Message to show when a remote terminal session is connected, you can use {0} to represent the realname and {1} to represent the username."
2033
},
2034
"Files": {
2001
- "type": "string"
2035
+ "type": "string",
2036
+ "description": "Message to show when a remote file session is connected, you can use {0} to represent the realname and {1} to represent the username."
2037
}
2038
}
2039
},
@@ -2739,16 +2774,20 @@
2774
},
2775
"yubikey": {
2776
"type": "object",
2777
+ "description": "Yubikey configuration",
2778
"properties": {
2779
"id": {
2744
- "type": "string"
2780
+ "type": "string",
2781
+ "description": "Yubikey client ID"
2782
},
2783
"secret": {
2747
- "type": "string"
2784
+ "type": "string",
2785
+ "description": "Yubikey secret key"
2786
},
2787
"proxy": {
2788
"type": "string",
2751
- "format": "uri"
2789
+ "format": "uri",
2790
+ "description": "Yubikey proxy URL"
2791
}
2792
},
2793
"required": [
@@ -2760,7 +2799,8 @@
2799
"type": "object",
2800
"additionalProperties": {
2801
"type": "string"
2763
- }
2802
+ },
2803
+ "description": "This is used to add custom HTTP headers to all responses. For example setting \"httpHeaders\": { \"X-Frame-Options\":\"DENY\" } will add the X-Frame-Options header to all responses."
2804
},
2805
"agentConfig": {
2806
"type": "array",
@@ -2797,6 +2837,7 @@
2837
},
2838
"sessionRecording": {
2839
"type": "object",
2840
+ "description": "Values that affect the session recording feature",
2841
"properties": {
2842
"onlySelectedUsers": {
2843
"type": "boolean",
@@ -2931,13 +2972,16 @@
2972
"description": "This is used for OAuth2 authentication",
2973
"properties": {
2974
"clientId": {
2934
- "type": "string"
2975
+ "type": "string",
2976
+ "description": "OAuth2 client ID"
2977
},
2978
"clientSecret": {
2937
- "type": "string"
2979
+ "type": "string",
2980
+ "description": "OAuth2 client secret"
2981
},
2982
"refreshToken": {
2940
- "type": "string"
2983
+ "type": "string",
2984
+ "description": "OAuth2 refresh token"
2985
},
2986
"type": {
2987
"type": "string",
@@ -2952,10 +2996,12 @@
2996
]
2997
},
2998
"tlscertcheck": {
2955
- "type": "boolean"
2999
+ "type": "boolean",
3000
+ "description": "When set to false, the SMTP server certificate is not checked."
3001
},
3002
"tlsstrict": {
2958
- "type": "boolean"
3003
+ "type": "boolean",
3004
+ "description": "When set to true, the SMTP server certificate must be valid and signed by a trusted CA."
3005
},
3006
"verifyemail": {
3007
"type": "boolean",
@@ -3007,30 +3053,48 @@
3053
},
3054
"authStrategies": {
3055
"type": "object",
3056
+ "description": "Authentication strategies for MeshCentral",
3057
"properties": {
3058
"twitter": {
3059
"type": "object",
3060
+ "description": "Twitter authentication",
3061
"properties": {
3062
"callbackurl": {
3063
"type": "string",
3016
- "format": "uri"
3064
+ "format": "uri",
3065
+ "description": "The URL that Twitter will redirect to after authentication."
3066
},
3067
"newAccounts": {
3068
"type": "boolean",
3020
- "default": false
3069
+ "default": false,
3070
+ "description": "When set, new accounts will be created for users that authenticate with Twitter."
3071
},
3072
"newAccountsUserGroups": {
3073
"type": "array",
3074
"uniqueItems": true,
3075
"items": {
3076
"type": "string"
3027
- }
3077
+ },
3078
+ "description": "When set, new accounts will be created for users that authenticate with Twitter and added to the specified groups."
3079
+ },
3080
+ "newAccountsRights": {
3081
+ "type": [
3082
+ "array",
3083
+ "string"
3084
+ ],
3085
+ "uniqueItems": true,
3086
+ "items": {
3087
+ "type": "string"
3088
+ },
3089
+ "description": "When set, new accounts will be added to these siteadmin rights."
3090
},
3091
"clientid": {
3030
- "type": "string"
3092
+ "type": "string",
3093
+ "description": "Twitter client ID."
3094
},
3095
"clientsecret": {
3033
- "type": "string"
3096
+ "type": "string",
3097
+ "description": "Twitter client secret."
3098
},
3099
"logouturl": {
3100
"type": "string",
@@ -3045,27 +3109,33 @@
3109
},
3110
"google": {
3111
"type": "object",
3112
+ "description": "Google authentication",
3113
"properties": {
3114
"callbackurl": {
3115
"type": "string",
3051
- "format": "uri"
3116
+ "format": "uri",
3117
+ "description": "The URL that Google will redirect to after authentication."
3118
},
3119
"newAccounts": {
3120
"type": "boolean",
3055
- "default": false
3121
+ "default": false,
3122
+ "description": "When set, new accounts will be created for users that authenticate with Google."
3123
},
3124
"newAccountsUserGroups": {
3125
"type": "array",
3126
"uniqueItems": true,
3127
"items": {
3128
"type": "string"
3062
- }
3129
+ },
3130
+ "description": "When set, new accounts will be created for users that authenticate with Google and added to the specified groups."
3131
},
3132
"clientid": {
3065
- "type": "string"
3133
+ "type": "string",
3134
+ "description": "Google client ID."
3135
},
3136
"clientsecret": {
3068
- "type": "string"
3137
+ "type": "string",
3138
+ "description": "Google client secret."
3139
},
3140
"logouturl": {
3141
"type": "string",
@@ -3080,27 +3150,33 @@
3150
},
3151
"github": {
3152
"type": "object",
3153
+ "description": "GitHub authentication",
3154
"properties": {
3155
"callbackurl": {
3156
"type": "string",
3086
- "format": "uri"
3157
+ "format": "uri",
3158
+ "description": "The URL that GitHub will redirect to after authentication."
3159
},
3160
"newAccounts": {
3161
"type": "boolean",
3090
- "default": false
3162
+ "default": false,
3163
+ "description": "When set, new accounts will be created for users that authenticate with GitHub."
3164
},
3165
"newAccountsUserGroups": {
3166
"type": "array",
3167
"uniqueItems": true,
3168
+ "description": "When set, new accounts will be created for users that authenticate with GitHub and added to the specified groups.",
3169
"items": {
3170
"type": "string"
3171
}
3172
},
3173
"clientid": {
3100
- "type": "string"
3174
+ "type": "string",
3175
+ "description": "GitHub client ID."
3176
},
3177
"clientsecret": {
3103
- "type": "string"
3178
+ "type": "string",
3179
+ "description": "GitHub client secret."
3180
},
3181
"logouturl": {
3182
"type": "string",
@@ -3115,30 +3191,37 @@
3191
},
3192
"azure": {
3193
"type": "object",
3194
+ "description": "Azure authentication",
3195
"properties": {
3196
"callbackurl": {
3197
"type": "string",
3121
- "format": "uri"
3198
+ "format": "uri",
3199
+ "description": "The URL that Azure will redirect to after authentication."
3200
},
3201
"newAccounts": {
3202
"type": "boolean",
3125
- "default": false
3203
+ "default": false,
3204
+ "description": "When set, new accounts will be created for users that authenticate with Azure."
3205
},
3206
"newAccountsUserGroups": {
3207
"type": "array",
3208
+ "description": "When set, new accounts will be created for users that authenticate with Azure and added to the specified groups.",
3209
"uniqueItems": true,
3210
"items": {
3211
"type": "string"
3212
}
3213
},
3214
"clientid": {
3135
- "type": "string"
3215
+ "type": "string",
3216
+ "description": "Azure client ID."
3217
},
3218
"clientsecret": {
3138
- "type": "string"
3219
+ "type": "string",
3220
+ "description": "Azure client secret."
3221
},
3222
"tenantid": {
3141
- "type": "string"
3223
+ "type": "string",
3224
+ "description": "Azure tenant ID."
3225
},
3226
"logouturl": {
3227
"type": "string",
@@ -3154,31 +3237,38 @@
3237
},
3238
"jumpcloud": {
3239
"type": "object",
3240
+ "description": "JumpCloud authentication",
3241
"properties": {
3242
"callbackurl": {
3243
"type": "string",
3160
- "format": "uri"
3244
+ "format": "uri",
3245
+ "description": "The URL that JumpCloud will redirect to after authentication."
3246
},
3247
"newAccounts": {
3248
"type": "boolean",
3164
- "default": false
3249
+ "default": false,
3250
+ "description": "When set, new accounts will be created for users that authenticate with JumpCloud."
3251
},
3252
"newAccountsUserGroups": {
3253
"type": "array",
3254
+ "description": "When set, new accounts will be created for users that authenticate with JumpCloud and added to the specified groups.",
3255
"uniqueItems": true,
3256
"items": {
3257
"type": "string"
3258
}
3259
},
3260
"entityid": {
3174
- "type": "string"
3261
+ "type": "string",
3262
+ "description": "JumpCloud entity ID."
3263
},
3264
"idpurl": {
3265
"type": "string",
3178
- "format": "uri"
3266
+ "format": "uri",
3267
+ "description": "JumpCloud IDP URL."
3268
},
3269
"cert": {
3181
- "type": "string"
3270
+ "type": "string",
3271
+ "description": "JumpCloud certificate."
3272
},
3273
"logouturl": {
3274
"type": "string",
@@ -3194,41 +3284,43 @@
3284
},
3285
"saml": {
3286
"type": "object",
3287
+ "description": "SAML authentication",
3288
"properties": {
3289
"callbackurl": {
3290
"type": "string",
3200
- "format": "uri"
3291
+ "format": "uri",
3292
+ "description": "The URL that SAML will redirect to after authentication."
3293
},
3294
"disableRequestedAuthnContext": {
3203
- "type": "boolean"
3295
+ "type": "boolean",
3296
+ "description": "When set, the requestedAuthnContext will be disabled.",
3297
+ "default": false
3298
},
3299
"newAccounts": {
3300
"type": "boolean",
3207
- "default": false
3301
+ "default": false,
3302
+ "description": "When set, new accounts will be created for users that authenticate with SAML."
3303
},
3304
"newAccountsUserGroups": {
3305
"type": "array",
3306
"uniqueItems": true,
3212
- "items": {
3213
- "type": "string"
3214
- }
3215
- },
3216
- "newAccountsRights": {
3217
- "type": "array",
3218
- "uniqueItems": true,
3307
+ "description": "When set, new accounts will be created for users that authenticate with SAML and added to the specified groups.",
3308
"items": {
3309
"type": "string"
3310
}
3311
},
3312
"entityid": {
3224
- "type": "string"
3313
+ "type": "string",
3314
+ "description": "SAML entity ID."
3315
},
3316
"idpurl": {
3317
"type": "string",
3228
- "format": "uri"
3318
+ "format": "uri",
3319
+ "description": "SAML IDP URL."
3320
},
3321
"cert": {
3231
- "type": "string"
3322
+ "type": "string",
3323
+ "description": "SAML certificate."
3324
},
3325
"logouturl": {
3326
"type": "string",
@@ -3288,16 +3380,6 @@
3380
"type": "string"
3381
}
3382
},
3291
- "newAccountsRights": {
3292
- "type": [
3293
- "array",
3294
- "string"
3295
- ],
3296
- "uniqueItems": true,
3297
- "items": {
3298
- "type": "string"
3299
- }
3300
- },
3383
"clientid": {
3384
"type": "string",
3385
"depreciated": true,
@@ -3495,27 +3577,33 @@
3577
},
3578
"authorization_endpoint": {
3579
"type": "string",
3498
- "format": "uri"
3580
+ "format": "uri",
3581
+ "description": "URI to direct users to when logging in."
3582
},
3583
"token_endpoint": {
3584
"type": "string",
3502
- "format": "uri"
3585
+ "format": "uri",
3586
+ "description": "URI to direct users to when requesting tokens."
3587
},
3588
"jwks_uri": {
3589
"type": "string",
3506
- "format": "uri"
3590
+ "format": "uri",
3591
+ "description": "URI to retrieve the JSON Web Key Set."
3592
},
3593
"userinfo_endpoint": {
3594
"type": "string",
3510
- "format": "uri"
3595
+ "format": "uri",
3596
+ "description": "URI to retrieve user information."
3597
},
3598
"revocation_endpoint": {
3599
"type": "string",
3514
- "format": "uri"
3600
+ "format": "uri",
3601
+ "description": "URI to direct users to when revoking tokens."
3602
},
3603
"introspection_endpoint": {
3604
"type": "string",
3518
- "format": "uri"
3605
+ "format": "uri",
3606
+ "description": "URI to direct users to when introspecting tokens."
3607
},
3608
"end_session_endpoint": {
3609
"type": "string",
@@ -3524,47 +3612,60 @@
3612
},
3613
"registration_endpoint": {
3614
"type": "string",
3527
- "format": "uri"
3615
+ "format": "uri",
3616
+ "description": "URI to direct users to when registering a new client."
3617
},
3618
"token_endpoint_auth_methods_supported": {
3530
- "type": "string"
3619
+ "type": "string",
3620
+ "description": "Supported token endpoint authentication methods."
3621
},
3622
"token_endpoint_auth_signing_alg_values_supported": {
3533
- "type": "string"
3623
+ "type": "string",
3624
+ "description": "Supported token endpoint authentication signing algorithms."
3625
},
3626
"introspection_endpoint_auth_methods_supported": {
3536
- "type": "string"
3627
+ "type": "string",
3628
+ "description": "Supported introspection endpoint authentication methods."
3629
},
3630
"introspection_endpoint_auth_signing_alg_values_supported": {
3539
- "type": "string"
3631
+ "type": "string",
3632
+ "description": "Supported introspection endpoint authentication signing algorithms."
3633
},
3634
"revocation_endpoint_auth_methods_supported": {
3542
- "type": "string"
3635
+ "type": "string",
3636
+ "description": "Supported revocation endpoint authentication methods."
3637
},
3638
"revocation_endpoint_auth_signing_alg_values_supported": {
3545
- "type": "string"
3639
+ "type": "string",
3640
+ "description": "Supported revocation endpoint authentication signing algorithms."
3641
},
3642
"request_object_signing_alg_values_supported": {
3548
- "type": "string"
3643
+ "type": "string",
3644
+ "description": "Supported request object signing algorithms."
3645
},
3646
"mtls_endpoint_aliases": {
3647
"type": "object",
3648
+ "description": "MTLS endpoint aliases.",
3649
"properties": {
3650
"token_endpoint": {
3651
"type": "string",
3555
- "format": "uri"
3652
+ "format": "uri",
3653
+ "description": "URI to direct users to when requesting tokens."
3654
},
3655
"userinfo_endpoint": {
3656
"type": "string",
3559
- "format": "uri"
3657
+ "format": "uri",
3658
+ "description": "URI to retrieve user information."
3659
},
3660
"revocation_endpoint": {
3661
"type": "string",
3563
- "format": "uri"
3662
+ "format": "uri",
3663
+ "description": "URI to direct users to when revoking tokens."
3664
},
3665
"introspection_endpoint": {
3666
"type": "string",
3567
- "format": "uri"
3667
+ "format": "uri",
3668
+ "description": "URI to direct users to when introspecting tokens."
3669
}
3670
}
3671
}
@@ -3592,20 +3693,25 @@
3693
},
3694
"claims": {
3695
"type": "object",
3696
+ "description": "Custom claims to use.",
3697
"properties": {
3698
"email": {
3597
- "type": "string"
3699
+ "type": "string",
3700
+ "description": "Custom claim to use for email."
3701
},
3702
"name": {
3600
- "type": "string"
3703
+ "type": "string",
3704
+ "description": "Custom claim to use for name."
3705
},
3706
"uuid": {
3603
- "type": "string"
3707
+ "type": "string",
3708
+ "description": "Custom claim to use for uuid."
3709
}
3710
}
3711
},
3712
"preset": {
3713
"type": "string",
3714
+ "description": "Preset to use for OIDC configuration",
3715
"enum": [
3716
"azure",
3717
"google"
@@ -3623,6 +3729,7 @@
3729
},
3730
"groups": {
3731
"type": "object",
3732
+ "description": "Group settings for OIDC",
3733
"properties": {
3734
"recursive": {
3735
"type": "boolean",
@@ -3701,7 +3808,8 @@
3808
"description": "Email address of the administrator of this server. Make sure this is a valid email address otherwise the certificate request will fail."
3809
},
3810
"names": {
3704
- "type": "string"
3811
+ "type": "string",
3812
+ "description": "Comma separated list of DNS names that will be included in the certificate. The first name will be the primary name."
3813
},
3814
"skipChallengeVerification": {
3815
"type": "boolean",
@@ -3754,16 +3862,19 @@
3862
},
3863
"properties": {
3864
"serverId": {
3757
- "type": "string"
3865
+ "type": "string",
3866
+ "description": "Unique server identifier, must be unique across all servers."
3867
},
3868
"servers": {
3869
"type": "object",
3870
+ "description": "List of peer servers.",
3871
"additionalProperties": {
3872
"type": "object",
3873
"properties": {
3874
"url": {
3875
"type": "string",
3766
- "format": "uri"
3876
+ "format": "uri",
3877
+ "description": "URL of the peer server."
3878
}
3879
},
3880
"required": [
@@ -3847,13 +3958,16 @@
3958
"description": "This is used for OAuth2 authentication",
3959
"properties": {
3960
"clientId": {
3850
- "type": "string"
3961
+ "type": "string",
3962
+ "description": "OAuth2 client ID"
3963
},
3964
"clientSecret": {
3853
- "type": "string"
3965
+ "type": "string",
3966
+ "description": "OAuth2 client secret"
3967
},
3968
"refreshToken": {
3856
- "type": "string"
3969
+ "type": "string",
3970
+ "description": "OAuth2 refresh token"
3971
},
3972
"type": {
3973
"type": "string",
@@ -3868,10 +3982,14 @@
3982
]
3983
},
3984
"tlscertcheck": {
3871
- "type": "boolean"
3985
+ "type": "boolean",
3986
+ "default": true,
3987
+ "description": "When set to false, the SMTP server certificate is not checked."
3988
},
3989
"tlsstrict": {
3874
- "type": "boolean"
3990
+ "type": "boolean",
3991
+ "default": false,
3992
+ "description": "When set to true, the SMTP server certificate must be valid and signed by a trusted CA."
3993
},
3994
"verifyemail": {
3995
"type": "boolean",
@@ -3930,18 +4048,22 @@
4048
"properties": {
4049
"provider": {
4050
"type": "string",
4051
+ "description": "The SMS provider to use",
4052
"enum": [
4053
"twilio"
4054
]
4055
},
4056
"sid": {
3938
- "type": "string"
4057
+ "type": "string",
4058
+ "description": "Twilio SID"
4059
},
4060
"auth": {
3941
- "type": "string"
4061
+ "type": "string",
4062
+ "description": "Twilio Auth Token"
4063
},
4064
"from": {
3944
- "type": "string"
4065
+ "type": "string",
4066
+ "description": "Twilio phone number to send from"
4067
}
4068
},
4069
"required": [
@@ -3955,19 +4077,23 @@
4077
"type": "object",
4078
"properties": {
4079
"provider": {
4080
+ "description": "The SMS provider to use",
4081
"type": "string",
4082
"enum": [
4083
"plivo"
4084
]
4085
},
4086
"id": {
3964
- "type": "string"
4087
+ "type": "string",
4088
+ "description": "Plivo ID"
4089
},
4090
"token": {
3967
- "type": "string"
4091
+ "type": "string",
4092
+ "description": "Plivo Auth Token"
4093
},
4094
"from": {
3970
- "type": "string"
4095
+ "type": "string",
4096
+ "description": "Plivo phone number to send from"
4097
}
4098
},
4099
"required": [
@@ -3982,15 +4108,18 @@
4108
"properties": {
4109
"provider": {
4110
"type": "string",
4111
+ "description": "The SMS provider to use",
4112
"enum": [
4113
"telnyx"
4114
]
4115
},
4116
"apikey": {
3990
- "type": "string"
4117
+ "type": "string",
4118
+ "description": "Telnyx API Key"
4119
},
4120
"from": {
3993
- "type": "string"
4121
+ "type": "string",
4122
+ "description": "Telnyx phone number to send from"
4123
}
4124
},
4125
"required": [
@@ -4004,6 +4133,7 @@
4133
"properties": {
4134
"provider": {
4135
"type": "string",
4136
+ "description": "The SMS provider to use",
4137
"enum": [
4138
"url"
4139
]
@@ -4029,13 +4159,16 @@
4159
"description": "Configure Telegram messaging system",
4160
"properties": {
4161
"apiid": {
4032
- "type": "number"
4162
+ "type": "number",
4163
+ "description": "Telegram API ID"
4164
},
4165
"apihash": {
4035
- "type": "string"
4166
+ "type": "string",
4167
+ "description": "Telegram API Hash"
4168
},
4169
"session": {
4038
- "type": "string"
4170
+ "type": "string",
4171
+ "description": "Path to the Telegram session file"
4172
},
4173
"useWSS": {
4174
"type": "boolean",
@@ -4078,10 +4211,12 @@
4211
"description": "Login credentials for the XMPP server.",
4212
"properties": {
4213
"username": {
4081
- "type": "string"
4214
+ "type": "string",
4215
+ "description": "XMPP username."
4216
},
4217
"password": {
4084
- "type": "string"
4218
+ "type": "string",
4219
+ "description": "XMPP password."
4220
}
4221
}
4222
}
sample-config-advanced.json
+27
-18
@@ -1,8 +1,8 @@
1
{
2
"$schema": "https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json",
3
- "__comment__": "This is a sample configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.",
3
+ "__comment__": "This is a sample advanced configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.",
4
"settings": {
5
- "_cert": "myserver.mydomain.com",
5
+ "cert": "myserver.mydomain.com",
6
"_SQLite3": true,
7
"_acebase": { "_sponsor": true },
8
"_mongoDb": "mongodb://127.0.0.1:27017",
@@ -119,15 +119,15 @@
119
},
120
"_autoBackup": {
121
"_mongoDumpPath": "C:\\Program Files\\MongoDB\\Server\\4.2\\bin\\mongodump.exe",
122
- "backupIntervalHours": 24,
123
- "keepLastDaysBackup": 10,
124
- "zipPassword": "MyReallySecretPassword3",
122
+ "_backupIntervalHours": 24,
123
+ "_keepLastDaysBackup": 10,
124
+ "_zipPassword": "MyReallySecretPassword3",
125
"_backupPath": "C:\\backups",
126
"_googleDrive": {
127
"folderName": "MeshCentral-Backups",
128
"maxFiles": 10
129
},
130
- "webdav": {
130
+ "_webdav": {
131
"url": "https://server/remote.php/dav/files/xxxxx@server.com/",
132
"username": "user",
133
"password": "pass",
@@ -160,7 +160,7 @@
160
"count": 10,
161
"coolofftime": 10
162
},
163
- "watchDog": {
163
+ "_watchDog": {
164
"interval": 100,
165
"timeout": 400
166
},
@@ -179,16 +179,16 @@
179
},
180
"_domaindefaults": {
181
"__comment__": "Any settings in this section is used as default setting for all domains",
182
- "title": "MyDefaultTitle",
183
- "footer": "Default page footer",
184
- "newAccounts": false
182
+ "_title": "MyDefaultTitle",
183
+ "_footer": "Default page footer",
184
+ "_newAccounts": false
185
},
186
"domains": {
187
"": {
188
"_siteStyle": 2,
189
"_showModernUIToggle": true,
190
- "title": "MyServer",
191
- "title2": "Servername",
190
+ "_title": "MyServer",
191
+ "_title2": "Servername",
192
"_titlePicture": "title-sample.png",
193
"_loginPicture": "title-sample.png",
194
"_pwaLogo": "title-sample.png",
@@ -203,12 +203,13 @@
203
"_loginKey": [ "abc", "123" ],
204
"_agentKey": [ "abc", "123" ],
205
"_ipkvm": false,
206
- "minify": true,
206
+ "_minify": true,
207
"_hidePowerTimeline": true,
208
"_showNotesPanel": true,
209
"_userSessionsSort": "Username",
210
"_newAccounts": true,
211
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
212
+ "_manageAllDeviceGroups": [ "admin" ],
213
"_userNameIsEmail": true,
214
"_newAccountEmailDomains": [ "sample.com" ],
215
"_newAccountsRights": [ "nonewgroups", "notools" ],
@@ -263,7 +264,7 @@
264
]
265
},
266
"_assistantTypeAgentInvite": 2,
266
- "PreconfiguredScripts": [
267
+ "_PreconfiguredScripts": [
268
{
269
"name": "Run NotePad as user",
270
"file": "scripts/notepad.bat",
@@ -288,7 +289,7 @@
289
"type": "agent"
290
}
291
],
291
- "PreconfiguredRemoteInput": [
292
+ "_PreconfiguredRemoteInput": [
293
{
294
"name": "CompanyUrl",
295
"value": "https://help.mycompany.com/"
@@ -302,7 +303,7 @@
303
"value": "Default welcome text"
304
}
305
],
305
- "myServer": {
306
+ "_myServer": {
307
"Backup": false,
308
"Restore": false,
309
"Upgrade": false,
@@ -388,7 +389,7 @@
389
"_userSessionIdleTimeout": 30,
390
"___logoutOnIdleSessionTimeout": "Determines whether MeshCentral should logout after the session idle timeout elapsed or should just disconnect remote desktop, terminal and files.",
391
"_logoutOnIdleSessionTimeout": false,
391
- "userConsentFlags": {
392
+ "_userConsentFlags": {
393
"desktopnotify": true,
394
"terminalnotify": true,
395
"filenotify": true,
@@ -493,6 +494,7 @@
494
"_callbackurl": "https://server/auth-twitter-callback",
495
"newAccounts": true,
496
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
497
+ "_newAccountsRights": [ "nonewgroups", "notools" ],
498
"clientid": "xxxxxxxxxxxxxxxxxxxxxxx",
499
"clientsecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
500
},
@@ -500,6 +502,7 @@
502
"_callbackurl": "https://server/auth-google-callback",
503
"newAccounts": true,
504
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
505
+ "_newAccountsRights": [ "nonewgroups", "notools" ],
506
"clientid": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
507
"clientsecret": "xxxxxxxxxxxxxxxxxxxxxxx"
508
},
@@ -507,6 +510,7 @@
510
"_callbackurl": "https://server/auth-github-callback",
511
"newAccounts": true,
512
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
513
+ "_newAccountsRights": [ "nonewgroups", "notools" ],
514
"clientid": "xxxxxxxxxxxxxxxxxxxxxxx",
515
"clientsecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
516
},
@@ -514,6 +518,7 @@
518
"_callbackurl": "https://server/auth-azure-callback",
519
"newAccounts": true,
520
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
521
+ "_newAccountsRights": [ "nonewgroups", "notools" ],
522
"clientid": "00000000-0000-0000-0000-000000000000",
523
"clientsecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
524
"tenantid": "00000000-0000-0000-0000-000000000000"
@@ -522,6 +527,7 @@
527
"_callbackurl": "https://server/auth-jumpcloud-callback",
528
"newAccounts": true,
529
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
530
+ "_newAccountsRights": [ "nonewgroups", "notools" ],
531
"entityid": "meshcentral",
532
"idpurl": "https://sso.jumpcloud.com/saml2/saml2",
533
"cert": "jumpcloud-saml.pem"
@@ -553,7 +559,10 @@
559
"filter": [ "groupB", "groupC" ]
560
}
561
},
556
- "newAccounts": true
562
+ "newAccounts": true,
563
+ "_newAccountsRights": [ "nonewgroups", "notools" ],
564
+ "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ]
565
+
566
}
567
}
568
},