• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "title": "JSON schema for module.json",
3  "$schema": "http://json-schema.org/draft-07/schema#",
4  "type": "object",
5  "additionalProperties": true,
6  "required": [
7    "module"
8  ],
9  "propertyNames": {
10    "enum": [
11      "module"
12    ]
13  },
14  "properties": {
15    "module": {
16      "description": "Indicates the configuration of a .hap file. The module configuration is valid only for the current .hap file.",
17      "type": "object",
18      "allOf": [
19        {
20          "if": {
21            "properties": {
22              "type": {
23                "const": "shared"
24              }
25            }
26          },
27          "then": {
28            "if": {
29              "required": ["formExtensionModule"]
30            },
31            "then": {
32              "propertyNames": {
33                "enum": [
34                  "name",
35                  "type",
36                  "srcEntry",
37                  "abilitySrcEntryDelegator",
38                  "abilityStageSrcEntryDelegator",
39                  "description",
40                  "deliveryWithInstall",
41                  "deviceTypes",
42                  "pages",
43                  "metadata",
44                  "extensionAbilities",
45                  "requestPermissions",
46                  "dependencies",
47                  "libIsolation",
48                  "compressNativeLibs",
49                  "extractNativeLibs",
50                  "installationFree",
51                  "atomicService",
52                  "targetModuleName",
53                  "targetPriority",
54                  "generateBuildHash",
55                  "routerMap",
56                  "appStartup",
57                  "formExtensionModule",
58                  "crossAppSharedConfig"
59                ]
60              },
61              "required": [
62                "name",
63                "type",
64                "deliveryWithInstall",
65                "deviceTypes"
66              ]
67            },
68            "else": {
69              "propertyNames": {
70                "enum": [
71                  "name",
72                  "type",
73                  "srcEntry",
74                  "abilitySrcEntryDelegator",
75                  "abilityStageSrcEntryDelegator",
76                  "description",
77                  "deliveryWithInstall",
78                  "deviceTypes",
79                  "pages",
80                  "metadata",
81                  "abilities",
82                  "extensionAbilities",
83                  "requestPermissions",
84                  "dependencies",
85                  "libIsolation",
86                  "compressNativeLibs",
87                  "extractNativeLibs",
88                  "installationFree",
89                  "atomicService",
90                  "targetModuleName",
91                  "targetPriority",
92                  "generateBuildHash",
93                  "routerMap",
94                  "appStartup",
95                  "formExtensionModule",
96                  "crossAppSharedConfig"
97                ]
98              },
99              "required": [
100                "name",
101                "type",
102                "deliveryWithInstall",
103                "deviceTypes"
104              ]
105            }
106          }
107        },
108        {
109          "if": {
110            "properties": {
111              "type": {
112                "const": "har"
113              }
114            }
115          },
116          "then": {
117            "propertyNames": {
118              "enum": [
119                "name",
120                "type",
121                "srcEntrance",
122                "srcEntry",
123                "description",
124                "process",
125                "mainElement",
126                "deviceTypes",
127                "installationFree",
128                "virtualMachine",
129                "uiSyntax",
130                "metadata",
131                "abilities",
132                "extensionAbilities",
133                "requestPermissions",
134                "definePermissions",
135                "testRunner",
136                "dependencies",
137                "libIsolation",
138                "routerMap",
139                "appStartup",
140                "crossAppSharedConfig"
141              ]
142            },
143            "required": [
144              "name",
145              "type",
146              "deviceTypes"
147            ]
148          }
149        },
150        {
151          "if": {
152            "properties": {
153              "type": {
154                "const": "entry"
155              }
156            }
157          },
158          "then": {
159            "propertyNames": {
160              "enum": [
161                "name",
162                "type",
163                "srcEntrance",
164                "srcEntry",
165                "abilitySrcEntryDelegator",
166                "abilityStageSrcEntryDelegator",
167                "description",
168                "process",
169                "mainElement",
170                "deviceTypes",
171                "deliveryWithInstall",
172                "installationFree",
173                "virtualMachine",
174                "uiSyntax",
175                "pages",
176                "systemTheme",
177                "metadata",
178                "abilities",
179                "extensionAbilities",
180                "requestPermissions",
181                "definePermissions",
182                "testRunner",
183                "dependencies",
184                "libIsolation",
185                "compressNativeLibs",
186                "extractNativeLibs",
187                "atomicService",
188                "generateBuildHash",
189                "isolationMode",
190                "proxyData",
191                "crossAppSharedConfig",
192                "fileContextMenu",
193                "querySchemes",
194                "routerMap",
195                "appEnvironments",
196                "appStartup",
197                "formWidgetModule",
198                "hnpPackages"
199              ]
200            },
201            "required": [
202              "name",
203              "type",
204              "deviceTypes",
205              "deliveryWithInstall"
206            ]
207          }
208        },
209        {
210          "if": {
211            "properties": {
212              "type": {
213                "const": "feature"
214              }
215            }
216          },
217          "then": {
218            "if": {
219              "required": ["formExtensionModule"]
220            },
221            "then": {
222              "propertyNames": {
223                "enum": [
224                  "name",
225                  "type",
226                  "srcEntrance",
227                  "srcEntry",
228                  "abilitySrcEntryDelegator",
229                  "abilityStageSrcEntryDelegator",
230                  "description",
231                  "process",
232                  "mainElement",
233                  "deviceTypes",
234                  "deliveryWithInstall",
235                  "installationFree",
236                  "virtualMachine",
237                  "uiSyntax",
238                  "pages",
239                  "metadata",
240                  "extensionAbilities",
241                  "requestPermissions",
242                  "definePermissions",
243                  "testRunner",
244                  "dependencies",
245                  "libIsolation",
246                  "compressNativeLibs",
247                  "extractNativeLibs",
248                  "atomicService",
249                  "generateBuildHash",
250                  "isolationMode",
251                  "proxyData",
252                  "crossAppSharedConfig",
253                  "routerMap",
254                  "appEnvironments",
255                  "appStartup",
256                  "formExtensionModule",
257                  "formWidgetModule"
258                ]
259              },
260              "required": [
261                "name",
262                "type",
263                "deviceTypes",
264                "deliveryWithInstall"
265              ]
266            },
267            "else": {
268              "propertyNames": {
269                "enum": [
270                  "name",
271                  "type",
272                  "srcEntrance",
273                  "srcEntry",
274                  "abilitySrcEntryDelegator",
275                  "abilityStageSrcEntryDelegator",
276                  "description",
277                  "process",
278                  "mainElement",
279                  "deviceTypes",
280                  "deliveryWithInstall",
281                  "installationFree",
282                  "virtualMachine",
283                  "uiSyntax",
284                  "pages",
285                  "metadata",
286                  "abilities",
287                  "extensionAbilities",
288                  "requestPermissions",
289                  "definePermissions",
290                  "testRunner",
291                  "dependencies",
292                  "libIsolation",
293                  "compressNativeLibs",
294                  "extractNativeLibs",
295                  "atomicService",
296                  "generateBuildHash",
297                  "isolationMode",
298                  "proxyData",
299                  "crossAppSharedConfig",
300                  "routerMap",
301                  "appEnvironments",
302                  "appStartup",
303                  "formExtensionModule",
304                  "formWidgetModule"
305                ]
306              },
307              "required": [
308                "name",
309                "type",
310                "deviceTypes",
311                "deliveryWithInstall"
312              ]
313            }
314          }
315        }
316      ],
317      "properties": {
318        "name": {
319          "description": "Indicates the module name.",
320          "type": "string",
321          "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
322          "maxLength": 128
323        },
324        "type": {
325          "description": "Indicates the type of the module.",
326          "type": "string",
327          "enum": [
328            "entry",
329            "feature",
330            "har",
331            "shared"
332          ]
333        },
334        "srcEntrance": {
335          "description": "This tag indicates the entry code path corresponding to hap",
336          "type": "string",
337          "deprecationMessage": "Deprecated since api 9, use srcEntry instead.",
338          "maxLength": 127
339        },
340        "srcEntry": {
341          "description": "This tag indicates the entry code path corresponding to hap",
342          "type": "string",
343          "maxLength": 127
344        },
345        "abilitySrcEntryDelegator": {
346          "description": "This tag indicates the delegator for Ability",
347          "type": "string",
348          "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
349          "maxLength": 127
350        },
351        "abilityStageSrcEntryDelegator": {
352          "description": "This tag indicates the delegator for AbilityStage",
353          "type": "string",
354          "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
355          "maxLength": 128
356        },
357        "description": {
358          "description": "Indicates the description of the current .hap file.",
359          "type": "string",
360          "maxLength": 255
361        },
362        "process": {
363          "description": "Indicates the name of the process running the module.",
364          "type": "string",
365          "maxLength": 31
366        },
367        "mainElement": {
368          "description": "Describes hap entry ability name or extension name.",
369          "type": "string",
370          "maxLength": 255
371        },
372        "deviceTypes": {
373          "description": "Indicates the type of devices on which the abilities can run.This label cannot be left blank.",
374          "type": "array",
375          "uniqueItems": true,
376          "items": {
377            "type": "string",
378            "enum": [
379              "default",
380              "tablet",
381              "tv",
382              "wearable",
383              "car",
384              "2in1"
385            ]
386          }
387        },
388        "deliveryWithInstall": {
389          "description": "Specifies whether the .hap file is installed when the user installs the application.true: The .hap file is installed during the application installation.false: The .hap file is not installed during the application installation.This label cannot be left blank.",
390          "type": "boolean"
391        },
392        "installationFree": {
393          "description": "Indicates whether free installation of the current hap is supported.If installationFree is true, this module is a service.OtherWise, this module is an application",
394          "type": "boolean"
395        },
396        "virtualMachine": {
397          "description": "Identify the type of target virtual machine currently running hap.",
398          "type": "string",
399          "enum": [
400            "ark",
401            "default"
402          ],
403          "default": "default"
404        },
405        "uiSyntax": {
406          "description": "Indicates the syntax type of ETS Component.Default is hml.",
407          "deprecationMessage": "Deprecated since api 9",
408          "type": "string",
409          "enum": [
410            "ets",
411            "hml"
412          ],
413          "default": "hml"
414        },
415        "pages": {
416          "description": "Used to list the information of each page in ETS Component.",
417          "type": "string",
418          "pattern": "^[$]profile:[0-9a-zA-Z_.]+$",
419          "maxLength": 255
420        },
421        "systemTheme": {
422          "description": "Indicates the system theme of the module. The value is the index to the theme config file.",
423          "type": "string",
424          "pattern": "^[$]profile:theme_config[0-9a-zA-Z_.]*$",
425          "maxLength": 255
426        },
427        "metadata": {
428          "description": "Indicates the metadata of the module.",
429          "type": "array",
430          "items": {
431            "type": "object",
432            "propertyNames": {
433              "enum": [
434                "name",
435                "value",
436                "resource"
437              ]
438            },
439            "properties": {
440              "name": {
441                "description": "Indicates the key of a data element. The value is a string with a maximum of 255 bytes.",
442                "type": "string",
443                "maxLength": 255
444              },
445              "value": {
446                "description": "Indicates the value of a data element. The value is a string with a maximum of 255 bytes.",
447                "type": "string",
448                "maxLength": 255
449              },
450              "resource": {
451                "description": "Indicates the resource of a data element.",
452                "type": "string",
453                "pattern": "^[$]profile:[0-9a-zA-Z_.]+$",
454                "maxLength": 255
455              }
456            }
457          }
458        },
459        "abilities": {
460          "description": "Indicates all abilities in the current module. The value is an array of objects, each of which represents an ability.This label can be left blank by default,and indicates no capability exists in the current module.",
461          "type": "array",
462          "uniqueItems": true,
463          "items": {
464            "type": "object",
465            "required": [
466              "name",
467              "srcEntry",
468              "startWindowIcon",
469              "startWindowBackground"
470            ],
471            "propertyNames": {
472              "enum": [
473                "priority",
474                "name",
475                "srcEntrance",
476                "srcEntry",
477                "launchType",
478                "description",
479                "icon",
480                "label",
481                "permissions",
482                "metadata",
483                "visible",
484                "exported",
485                "skills",
486                "backgroundModes",
487                "continuable",
488                "startWindow",
489                "startWindowIcon",
490                "startWindowBackground",
491                "removeMissionAfterTerminate",
492                "orientation",
493                "supportWindowMode",
494                "maxWindowRatio",
495                "minWindowRatio",
496                "maxWindowWidth",
497                "minWindowWidth",
498                "maxWindowHeight",
499                "minWindowHeight",
500                "excludeFromMissions",
501                "recoverable",
502                "unclearableMission",
503                "excludeFromDock",
504                "preferMultiWindowOrientation",
505                "isolationProcess",
506                "continueType",
507                "continueBundleName",
508                "process"
509              ]
510            },
511            "properties": {
512              "priority": {
513                "description": "Indicates the priority of the ability.Only for system application.This field is used for implicit query.Range from 0 to 10, default value is 0.",
514                "type": "integer",
515                "minimum": 0,
516                "maximum": 10
517              },
518              "name": {
519                "description": "Indicates the name of the ability.",
520                "type": "string",
521                "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
522                "maxLength": 127
523              },
524              "srcEntrance": {
525                "description": "Indicates the code path corresponding to the ability.",
526                "type": "string",
527                "deprecationMessage": "Deprecated since api 9, use srcEntry instead.",
528                "maxLength": 127
529              },
530              "srcEntry": {
531                "description": "Indicates the code path corresponding to the ability.",
532                "type": "string",
533                "maxLength": 127
534              },
535              "launchType": {
536                "description": "Indicates the boot mode of ability.",
537                "type": "string",
538                "enum": [
539                  "standard",
540                  "singleton",
541                  "specified",
542                  "multiton"
543                ],
544                "default": "singleton"
545              },
546              "description": {
547                "description": "Describes the ability.",
548                "type": "string",
549                "maxLength": 255
550              },
551              "icon": {
552                "description": "Indicates the index to the ability icon file, in the format of \"$media:ability_icon\".This label can be left blank by default.",
553                "type": "string",
554                "pattern": "^[$]media:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$"
555              },
556              "label": {
557                "description": "Indicates the ability name visible to users. The tag value is set to the resource index of this name to support multiple languages.",
558                "type": "string",
559                "maxLength": 255,
560                "pattern": "^[$]string:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$"
561              },
562              "permissions": {
563                "description": "Indicates the permissions required for abilities of another application to call the current ability, generally in the format of a reverse domain name. The value can be either the permissions predefined in the OS or those customized by your application. If a custom permission is used, the value must be the same as the name value of a specific permission defined in the definePermissions attribute.",
564                "type": "array",
565                "uniqueItems": true,
566                "items": {
567                  "type": "string",
568                  "maxLength": 255
569                }
570              },
571              "metadata": {
572                "description": "Indicates the metadata of the ability.",
573                "type": "array",
574                "items": {
575                  "type": "object",
576                  "propertyNames": {
577                    "enum": [
578                      "name",
579                      "value",
580                      "resource"
581                    ]
582                  },
583                  "properties": {
584                    "name": {
585                      "description": "Indicates the key of a data element. The value is a string with a maximum of 255 bytes.",
586                      "type": "string",
587                      "maxLength": 255
588                    },
589                    "value": {
590                      "description": "Indicates the value of a data element. The value is a string with a maximum of 255 bytes.",
591                      "type": "string",
592                      "maxLength": 255
593                    },
594                    "resource": {
595                      "description": "Indicates the resource of a data element.",
596                      "type": "string",
597                      "pattern": "^[$]profile:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$",
598                      "maxLength": 255
599                    }
600                  }
601                }
602              },
603              "visible": {
604                "description": "Specifies whether the ability can be called by other applications.The \"true\" indicates the ability can be called by other applications.The \"false\" indicates the ability cannot be called by other applications.This tag is optional. The default value is false.",
605                "type": "boolean",
606                "deprecationMessage": "Deprecated since api 9, use exported instead.",
607                "default": false
608              },
609              "exported": {
610                "description": "Specifies whether the ability can be called by other applications.The \"true\" indicates the ability can be called by other applications.The \"false\" indicates the ability cannot be called by other applications.This tag is optional. The default value is false.",
611                "type": "boolean",
612                "default": false
613              },
614              "skills": {
615                "description": "Indicates the types of the intent that can be accepted by the ability.",
616                "type": "array",
617                "items": {
618                  "type": "object",
619                  "uniqueItems": true,
620                  "propertyNames": {
621                    "enum": [
622                      "actions",
623                      "entities",
624                      "uris",
625                      "permissions",
626                      "domainVerify"
627                    ]
628                  },
629                  "properties": {
630                    "actions": {
631                      "description": "Indicates the actions of the intent that can be accepted by the ability. The value can have one or multiple actions predefined in the system.",
632                      "type": "array",
633                      "uniqueItems": true,
634                      "items": {
635                        "type": "string"
636                      }
637                    },
638                    "entities": {
639                      "description": "Indicates the entities of the intent that can be accepted by the ability, such as video and Home application. The value can have one or multiple entities either predefined in the system or be customized.",
640                      "type": "array",
641                      "items": {
642                        "type": "string"
643                      },
644                      "uniqueItems": true
645                    },
646                    "uris": {
647                      "description": "This tag identifies the collection of data specifications to be added to the Intent filter.",
648                      "type": "array",
649                      "items": {
650                        "anyOf": [
651                          {
652                            "type": "object",
653                            "propertyNames": {
654                              "enum": [
655                                "scheme",
656                                "host",
657                                "port",
658                                "pathStartWith",
659                                "path",
660                                "pathRegex",
661                                "type",
662                                "utd",
663                                "maxFileSupported",
664                                "linkFeature"
665                              ]
666                            },
667                            "required": [
668                              "scheme"
669                            ],
670                            "properties": {
671                              "scheme": {
672                                "description": "This label is a string type.",
673                                "type": "string"
674                              },
675                              "host": {
676                                "description": "This label is a string type.",
677                                "type": "string"
678                              },
679                              "port": {
680                                "description": "This label is a string type.",
681                                "type": "string"
682                              },
683                              "pathStartWith": {
684                                "description": "This label is a string type.",
685                                "type": "string"
686                              },
687                              "path": {
688                                "description": "This label is a string type.",
689                                "type": "string"
690                              },
691                              "pathRegex": {
692                                "description": "This label is a string type.",
693                                "type": "string"
694                              },
695                              "type": {
696                                "description": "This label is a string type.",
697                                "type": "string"
698                              },
699                              "utd": {
700                                "description": "Indicates the uniform file type supported by the ability. Please refer to https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.data.uniformTypeDescriptor.d.ts for detailed information",
701                                "type": "string"
702                              },
703                              "maxFileSupported": {
704                                "description": "Indicates the maximum number of files that can be received.",
705                                "type": "integer"
706                              },
707                              "linkFeature": {
708                                "description": "Indicates the uri feature.",
709                                "type": "string",
710                                "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
711                                "maxLength": 127
712                              }
713                            }
714                          },
715                          {
716                            "type": "object",
717                            "propertyNames": {
718                              "enum": [
719                                "type"
720                              ]
721                            },
722                            "properties": {
723                              "type": {
724                                "description": "This label is a string type.",
725                                "type": "string"
726                              }
727                            }
728                          }
729                        ]
730                      }
731                    },
732                    "permissions": {
733                      "description": "Indicates the permissions required for abilities of another application to call the current ability, generally in the format of a reverse domain name. The value can be either the permissions predefined in the OS or those customized by your application. If a custom permission is used, the value must be the same as the name value of a specific permission defined in the definePermissions attribute.",
734                      "type": "array",
735                      "uniqueItems": true,
736                      "items": {
737                        "type": "string",
738                        "pattern": "^[a-zA-Z][a-zA-Z_.]*$",
739                        "maxLength": 255
740                      }
741                    },
742                    "domainVerify": {
743                      "description": "Specifies whether the ability support domain verification. The \"true\" indicates the ability support domain verification. The \"false\" indicates the ability does not support domain verification. This tag is optional. The default value is false.",
744                      "type": "boolean",
745                      "default": false
746                    }
747                  }
748                }
749              },
750              "backgroundModes": {
751                "description": "Indicates the background service addressing a specific usage scenario. This attribute is dedicated to the abilities using the Service template. You can assign multiple background service types to a specific ability using the Service template.",
752                "type": "array",
753                "uniqueItems": true,
754                "items": {
755                  "type": "string",
756                  "enum": [
757                    "dataTransfer",
758                    "audioPlayback",
759                    "audioRecording",
760                    "location",
761                    "bluetoothInteraction",
762                    "multiDeviceConnection",
763                    "wifiInteraction",
764                    "voip",
765                    "taskKeeping"
766                  ]
767                }
768              },
769              "continuable": {
770                "description": "Identifies whether the ability can be migrated. The default value is false.",
771                "type": "boolean"
772              },
773              "startWindow": {
774                "description": "Indicates the startup page configuration. The value is the index to the resource file.",
775                "type": "string",
776                "pattern": "^[$]profile:[0-9a-zA-Z_.]+$",
777                "maxLength": 255
778              },
779              "startWindowIcon": {
780                "description": "Indicates the icon of the startup page. The value is the index to the resource file.",
781                "type": "string",
782                "pattern": "^[$]media:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$",
783                "maxLength": 255
784              },
785              "startWindowBackground": {
786                "description": "Indicates the color of the startup page. The value is the index to the resource file.",
787                "type": "string",
788                "pattern": "^[$]color:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$",
789                "maxLength": 255
790              },
791              "removeMissionAfterTerminate": {
792                "description": "Specifies whether to remove the mission after the ability termination.",
793                "type": "boolean",
794                "default": false
795              },
796              "orientation": {
797                "description": "Indicates the display orientation of the ability. This attribute is valid only for abilities using the Page template.",
798                "oneOf": [
799                  {
800                    "enum": [
801                      "unspecified",
802                      "landscape",
803                      "portrait",
804                      "follow_recent",
805                      "landscape_inverted",
806                      "portrait_inverted",
807                      "auto_rotation",
808                      "auto_rotation_landscape",
809                      "auto_rotation_portrait",
810                      "auto_rotation_restricted",
811                      "auto_rotation_landscape_restricted",
812                      "auto_rotation_portrait_restricted",
813                      "locked",
814                      "auto_rotation_unspecified",
815                      "follow_desktop"
816                    ]
817                  },
818                  {
819                    "maxLength": 255,
820                    "pattern": "^[$]string:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$"
821                  }
822                ],
823                "type": "string"
824              },
825              "supportWindowMode": {
826                "description": "Specifies supported window modes",
827                "type": "array",
828                "uniqueItems": true,
829                "items": {
830                  "type": "string",
831                  "enum": [
832                    "fullscreen",
833                    "split",
834                    "floating"
835                  ]
836                }
837              },
838              "maxWindowRatio": {
839                "description": "This tag identifies the max window ratio. The value is an number.",
840                "type": "number",
841                "minimum": 0
842              },
843              "minWindowRatio": {
844                "description": "This tag identifies the min window ratio. The value is an number.",
845                "type": "number",
846                "minimum": 0
847              },
848              "maxWindowWidth": {
849                "description": "This tag identifies the min window ratio. The value is an integer.",
850                "type": "integer",
851                "minimum": 0
852              },
853              "minWindowWidth": {
854                "description": "This tag identifies the min window ratio. The value is an integer.",
855                "type": "integer",
856                "minimum": 0
857              },
858              "maxWindowHeight": {
859                "description": "This tag identifies the min window ratio. The value is an integer.",
860                "type": "integer",
861                "minimum": 0
862              },
863              "minWindowHeight": {
864                "description": "This tag identifies the min window ratio. The value is an integer.",
865                "type": "integer",
866                "minimum": 0
867              },
868              "excludeFromMissions": {
869                "description": "Specifies whether to display in the recent missions list. For system application only.",
870                "type": "boolean",
871                "default": false
872              },
873              "recoverable": {
874                "description": "Specifies whether to support recover UI interface",
875                "type": "boolean",
876                "default": false
877              },
878              "unclearableMission": {
879                "description": "Specify whether it is a task that cannot be deleted",
880                "type": "boolean",
881                "default": false
882              },
883              "excludeFromDock": {
884                "description": "Specify whether to hide the application icon from the dock area.",
885                "type": "boolean",
886                "default": false
887              },
888              "preferMultiWindowOrientation": {
889                "description": "Indicates the prefered multi window orientation.",
890                "type": "string",
891                "enum": [
892                  "default",
893                  "portrait",
894                  "landscape",
895                  "landscape_auto"
896
897                ],
898                "default": "default"
899              },
900              "isolationProcess": {
901                "description": "Specifies whether the ability can run in an independent process",
902                "type": "boolean",
903                "default": false
904              },
905              "continueType": {
906                "description": "Identifies the type of the ability can be migrated.",
907                "type": "array",
908                "uniqueItems": true,
909                "maxLength": 100,
910                "items": {
911                  "type": "string",
912                  "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
913                  "maxLength": 127
914                }
915              },
916              "continueBundleName": {
917                "description": "Configure the package names of other applications to be connected.",
918                "type": "array",
919                "uniqueItems": true,
920                "items": {
921                  "type": "string",
922                  "pattern": "^[a-zA-Z][0-9a-zA-Z_.]+$",
923                  "maxLength": 128,
924                  "minLength": 7
925                }
926              },
927              "process": {
928                "description": "Running process tag the ability.",
929                "type": "string",
930                "maxLength": 31,
931                "pattern": "^[:][0-9a-zA-Z_]+$"
932              }
933            }
934          }
935        },
936        "extensionAbilities": {
937          "description": "Indicates all extensionAbilities in the current module.",
938          "type": "array",
939          "items": {
940            "type": "object",
941            "allOf": [
942              {
943                "if": {
944                  "properties": {
945                    "type": {
946                      "const": "dataShare"
947                    }
948                  }
949                },
950                "then": {
951                  "oneOf": [
952                    {
953                      "required": [
954                        "name",
955                        "srcEntrance",
956                        "type",
957                        "uri"
958                      ]
959                    },
960                    {
961                      "required": [
962                        "name",
963                        "srcEntry",
964                        "type",
965                        "uri"
966                      ]
967                    }
968                  ]
969                },
970                "else": {
971                  "oneOf": [
972                    {
973                      "required": [
974                        "name",
975                        "srcEntrance",
976                        "type"
977                      ]
978                    },
979                    {
980                      "required": [
981                        "name",
982                        "srcEntry",
983                        "type"
984                      ]
985                    }
986                  ]
987                }
988              },
989              {
990                "if": {
991                  "properties": {
992                    "type": {
993                      "const": "appService"
994                    }
995                  }
996                },
997                "then": {
998                  "propertyNames": {
999                    "enum": [
1000                      "priority",
1001                      "name",
1002                      "srcEntrance",
1003                      "srcEntry",
1004                      "icon",
1005                      "label",
1006                      "description",
1007                      "type",
1008                      "permissions",
1009                      "uri",
1010                      "readPermission",
1011                      "writePermission",
1012                      "visible",
1013                      "exported",
1014                      "skills",
1015                      "metadata",
1016                      "extensionProcessMode",
1017                      "dataGroupIds",
1018                      "process",
1019                      "appIdentifierAllowList"
1020                    ]
1021                  }
1022                },
1023                "else": {
1024                  "propertyNames": {
1025                    "enum": [
1026                      "priority",
1027                      "name",
1028                      "srcEntrance",
1029                      "srcEntry",
1030                      "icon",
1031                      "label",
1032                      "description",
1033                      "type",
1034                      "permissions",
1035                      "uri",
1036                      "readPermission",
1037                      "writePermission",
1038                      "visible",
1039                      "exported",
1040                      "skills",
1041                      "metadata",
1042                      "extensionProcessMode",
1043                      "dataGroupIds",
1044                      "process",
1045                      "isolationProcess"
1046                    ]
1047                  }
1048                }
1049              },
1050              {
1051                "if": {
1052                  "properties": {
1053                    "type": {
1054                      "const": "embeddedUI"
1055                    }
1056                  }
1057                },
1058                "then": {
1059                    "propertyNames": {
1060                      "enum": [
1061                        "priority",
1062                        "name",
1063                        "srcEntrance",
1064                        "srcEntry",
1065                        "icon",
1066                        "label",
1067                        "description",
1068                        "type",
1069                        "permissions",
1070                        "uri",
1071                        "readPermission",
1072                        "writePermission",
1073                        "visible",
1074                        "exported",
1075                        "skills",
1076                        "metadata",
1077                        "extensionProcessMode",
1078                        "dataGroupIds",
1079                        "process"
1080                      ]
1081                    }
1082                  },
1083                  "else": {
1084                    "propertyNames": {
1085                      "enum": [
1086                        "priority",
1087                        "name",
1088                        "srcEntrance",
1089                        "srcEntry",
1090                        "icon",
1091                        "label",
1092                        "description",
1093                        "type",
1094                        "permissions",
1095                        "uri",
1096                        "readPermission",
1097                        "writePermission",
1098                        "visible",
1099                        "exported",
1100                        "skills",
1101                        "metadata",
1102                        "extensionProcessMode",
1103                        "dataGroupIds",
1104                        "appIdentifierAllowList",
1105                        "isolationProcess"
1106                      ]
1107                    }
1108                  }
1109              },
1110              {
1111                "if": {
1112                  "properties": {
1113                    "type": {
1114                      "const": "sys/commonUI"
1115                    }
1116                  }
1117                },
1118                "then": {
1119                    "propertyNames": {
1120                      "enum": [
1121                        "priority",
1122                        "name",
1123                        "srcEntrance",
1124                        "srcEntry",
1125                        "icon",
1126                        "label",
1127                        "description",
1128                        "type",
1129                        "permissions",
1130                        "uri",
1131                        "readPermission",
1132                        "writePermission",
1133                        "visible",
1134                        "exported",
1135                        "skills",
1136                        "metadata",
1137                        "extensionProcessMode",
1138                        "dataGroupIds",
1139                        "isolationProcess"
1140                      ]
1141                    }
1142                  },
1143                  "else": {
1144                    "propertyNames": {
1145                      "enum": [
1146                        "priority",
1147                        "name",
1148                        "srcEntrance",
1149                        "srcEntry",
1150                        "icon",
1151                        "label",
1152                        "description",
1153                        "type",
1154                        "permissions",
1155                        "uri",
1156                        "readPermission",
1157                        "writePermission",
1158                        "visible",
1159                        "exported",
1160                        "skills",
1161                        "metadata",
1162                        "extensionProcessMode",
1163                        "dataGroupIds",
1164                        "process",
1165                        "appIdentifierAllowList"
1166                      ]
1167                    }
1168                  }
1169                }
1170            ],
1171            "properties": {
1172              "priority": {
1173                "description": "Indicates the priority of the ability.Only for system application.This field is used for implicit query.Range from 0 to 10, default value is 0.",
1174                "type": "integer",
1175                "minimum": 0,
1176                "maximum": 10
1177              },
1178              "name": {
1179                "description": "Indicates the name of the extension.",
1180                "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
1181                "type": "string",
1182                "maxLength": 127
1183              },
1184              "srcEntrance": {
1185                "description": "Indicates the code path corresponding to the extension.",
1186                "deprecationMessage": "Deprecated since api 9, use srcEntry instead.",
1187                "type": "string",
1188                "maxLength": 127
1189              },
1190              "srcEntry": {
1191                "description": "Indicates the code path corresponding to the extension.",
1192                "type": "string",
1193                "maxLength": 127
1194              },
1195              "icon": {
1196                "description": "Indicates the index to the extension icon file.If the extension is configured as MainElement, the tag must be configured",
1197                "type": "string",
1198                "pattern": "^[$]media:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$"
1199              },
1200              "label": {
1201                "description": "Indicates the extension name visible to users. The tag value is set to the resource index of this name to support multiple languages.",
1202                "type": "string",
1203                "maxLength": 255,
1204                "pattern": "^[$]string:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$"
1205              },
1206              "description": {
1207                "description": "Describes the extension. The value can be a string or a resource index to descriptions in multiple languages.This label can be left blank by default.",
1208                "type": "string",
1209                "maxLength": 255
1210              },
1211              "type": {
1212                "description": "Indicates the type of the extension.",
1213                "type": "string",
1214                "enum": [
1215                  "form",
1216                  "workScheduler",
1217                  "inputMethod",
1218                  "service",
1219                  "accessibility",
1220                  "dataShare",
1221                  "fileShare",
1222                  "staticSubscriber",
1223                  "wallpaper",
1224                  "backup",
1225                  "window",
1226                  "enterpriseAdmin",
1227                  "thumbnail",
1228                  "preview",
1229                  "print",
1230                  "share",
1231                  "push",
1232                  "driver",
1233                  "action",
1234                  "adsService",
1235                  "embeddedUI",
1236                  "insightIntentUI",
1237                  "statusBarView",
1238                  "autoFill/password",
1239                  "hms/account",
1240                  "appAccountAuthorization",
1241                  "ads",
1242                  "fence",
1243                  "remoteNotification",
1244                  "remoteLocation",
1245                  "voip",
1246                  "accountLogout",
1247                  "sysDialog/userAuth",
1248                  "sysDialog/common",
1249                  "sysDialog/atomicServicePanel",
1250                  "sysDialog/power",
1251                  "sysDialog/meetimeCall",
1252                  "sysDialog/meetimeContact",
1253                  "sysDialog/meetimeMessage",
1254                  "sysDialog/print",
1255                  "sysPicker/mediaControl",
1256                  "sysPicker/share",
1257                  "sysPicker/meetimeContact",
1258                  "sysPicker/meetimeCallLog",
1259                  "sysPicker/photoPicker",
1260                  "sysPicker/appSelector",
1261                  "sysPicker/navigation",
1262                  "sysPicker/photoEditor",
1263                  "photoEditor",
1264                  "sys/commonUI",
1265                  "fileAccess",
1266                  "sysPicker/camera",
1267                  "autoFill/smart",
1268                  "liveViewLockScreen",
1269                  "sysPicker/filePicker",
1270                  "sysPicker/audioPicker",
1271                  "sys/visualExtension",
1272                  "uiService",
1273                  "recentPhoto",
1274                  "callerInfoQuery",
1275                  "assetAcceleration",
1276                  "formEdit",
1277                  "liveForm",
1278                  "distributed",
1279                  "awc/webpage",
1280                  "awc/newsfeed",
1281                  "vpn",
1282                  "appService",
1283                  "selection"
1284                ]
1285              },
1286              "permissions": {
1287                "description": "Indicates the permissions required for extensionAbilities of another application to call the current extension.",
1288                "type": "array",
1289                "uniqueItems": true,
1290                "items": {
1291                  "type": "string",
1292                  "maxLength": 255
1293                }
1294              },
1295              "appIdentifierAllowList": {
1296                "description": "List of applications that are allowed to launch this ExtensionAbility.",
1297                "type": "array",
1298                "uniqueItems": true,
1299                "items": {
1300                  "type": "string",
1301                  "maxLength": 128,
1302                  "pattern": "[0-9a-zA-Z]+$"
1303                }
1304              },
1305              "uri": {
1306                "description": "Identifies the provided uri data for current extension.",
1307                "type": "string",
1308                "maxLength": 255
1309              },
1310              "readPermission": {
1311                "description": "Indicates the readPermission required for extensionAbilities of another application to call the current extension.",
1312                "type": "string",
1313                "maxLength": 255
1314              },
1315              "writePermission": {
1316                "description": "Indicates the writePermission required for extensionAbilities of another application to call the current extension.",
1317                "type": "string",
1318                "maxLength": 255
1319              },
1320              "visible": {
1321                "description": "Specifies whether the extension can be called by other applications.",
1322                "deprecationMessage": "Deprecated since api 9, use exported instead.",
1323                "type": "boolean",
1324                "default": false
1325              },
1326              "exported": {
1327                "description": "Specifies whether the extension can be called by other applications.",
1328                "type": "boolean",
1329                "default": false
1330              },
1331              "skills": {
1332                "description": "Indicates the types of the intent that can be accepted by the extension.",
1333                "type": "array",
1334                "uniqueItems": true,
1335                "items": {
1336                  "type": "object",
1337                  "propertyNames": {
1338                    "enum": [
1339                      "actions",
1340                      "entities",
1341                      "uris",
1342                      "permissions"
1343                    ]
1344                  },
1345                  "properties": {
1346                    "actions": {
1347                      "description": "Indicates the actions of the intent that can be accepted by the extension. The value can have one or multiple actions predefined in the system.",
1348                      "type": "array",
1349                      "uniqueItems": true,
1350                      "items": {
1351                        "type": "string"
1352                      }
1353                    },
1354                    "entities": {
1355                      "description": "Indicates the entities of the intent that can be accepted by the extension, such as video and Home application. The value can have one or multiple entities either predefined in the system or be customized.",
1356                      "type": "array",
1357                      "uniqueItems": true,
1358                      "items": {
1359                        "type": "string"
1360                      }
1361                    },
1362                    "uris": {
1363                      "description": "This tag identifies the collection of data specifications to be added to the Intent filter.",
1364                      "type": "array",
1365                      "uniqueItems": true,
1366                      "items": {
1367                        "anyOf": [
1368                          {
1369                            "type": "object",
1370                            "propertyNames": {
1371                              "enum": [
1372                                "scheme",
1373                                "host",
1374                                "port",
1375                                "pathStartWith",
1376                                "path",
1377                                "pathRegex",
1378                                "type",
1379                                "utd",
1380                                "maxFileSupported"
1381                              ]
1382                            },
1383                            "required": [
1384                              "scheme"
1385                            ],
1386                            "properties": {
1387                              "scheme": {
1388                                "description": "This label is a string type.",
1389                                "type": "string"
1390                              },
1391                              "host": {
1392                                "description": "This label is a string type.",
1393                                "type": "string"
1394                              },
1395                              "port": {
1396                                "description": "This label is a string type.",
1397                                "type": "string"
1398                              },
1399                              "pathStartWith": {
1400                                "description": "This label is a string type.",
1401                                "type": "string"
1402                              },
1403                              "path": {
1404                                "description": "This label is a string type.",
1405                                "type": "string"
1406                              },
1407                              "pathRegex": {
1408                                "description": "This label is a string type.",
1409                                "type": "string"
1410                              },
1411                              "type": {
1412                                "description": "This label is a string type.",
1413                                "type": "string"
1414                              },
1415                              "utd": {
1416                                "description": "Indicates the uniform file type supported by the ability. Please refer to https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.data.uniformTypeDescriptor.d.ts for detailed information",
1417                                "type": "string"
1418                              },
1419                              "maxFileSupported": {
1420                                "description": "Indicates the maximum number of files that can be received.",
1421                                "type": "integer"
1422                              }
1423                            }
1424                          },
1425                          {
1426                            "type": "object",
1427                            "propertyNames": {
1428                              "enum": [
1429                                "type"
1430                              ]
1431                            },
1432                            "properties": {
1433                              "type": {
1434                                "description": "This label is a string type.",
1435                                "type": "string"
1436                              }
1437                            }
1438                          }
1439                        ]
1440                      }
1441                    },
1442                    "permissions": {
1443                      "description": "Indicates the permissions required for extensionAbilities of another application to call the current extension.",
1444                      "type": "array",
1445                      "uniqueItems": true,
1446                      "items": {
1447                        "type": "string",
1448                        "pattern": "^[a-zA-Z][a-zA-Z_.]*$",
1449                        "maxLength": 255
1450                      }
1451                    }
1452                  }
1453                }
1454              },
1455              "metadata": {
1456                "description": "Indicates the metadata of the extension.",
1457                "type": "array",
1458                "items": {
1459                  "type": "object",
1460                  "propertyNames": {
1461                    "enum": [
1462                      "name",
1463                      "value",
1464                      "resource"
1465                    ]
1466                  },
1467                  "properties": {
1468                    "name": {
1469                      "description": "Indicates the key of a data element. The value is a string with a maximum of 255 bytes.",
1470                      "type": "string",
1471                      "maxLength": 255
1472                    },
1473                    "value": {
1474                      "description": "Indicates the value of a data element. The value is a string with a maximum of 255 bytes.",
1475                      "type": "string",
1476                      "maxLength": 255
1477                    },
1478                    "resource": {
1479                      "description": "Indicates the resource of a data element.",
1480                      "type": "string",
1481                      "pattern": "^([$]profile:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+)|(^(\/[\\w-]+)+(.[a-z]+)?)$",
1482                      "maxLength": 255
1483                    }
1484                  }
1485                }
1486              },
1487              "dataGroupIds": {
1488                "description": "Indicates the data group IDs associated with the extension ability.",
1489                "type": "array",
1490                "maxItems": 1024,
1491                "items": {
1492                  "type": "string",
1493                  "minLength": 1,
1494                  "maxLength": 1024,
1495                  "pattern": "^[\\x00-\\x7F]*$"
1496                }
1497              },
1498              "process": {
1499                "description": "Running process tag the extension ability.",
1500                "type": "string",
1501                "maxLength": 31,
1502                "pattern": "^[:][0-9a-zA-Z_]+$"
1503              },
1504              "isolationProcess": {
1505                "description": "Specifies whether the ability can run in an independent process",
1506                "type": "boolean",
1507                "default": false
1508              }
1509            },
1510            "if": {
1511              "properties": {
1512                "type": {
1513                  "const": "statusBarView"
1514                }
1515              }
1516            },
1517            "then": {
1518              "properties": {
1519                "extensionProcessMode": {
1520                  "description": "Indicates the extension support multi instance model.",
1521                  "type": "string",
1522                  "enum": [
1523                    "instance",
1524                    "type",
1525                    "bundle",
1526                    "runWithMainProcess"
1527                  ],
1528                  "default": "bundle"
1529                }
1530              }
1531            },
1532            "else": {
1533              "properties": {
1534                "extensionProcessMode": {
1535                  "description": "Indicates the extension support multi instance model.",
1536                  "type": "string",
1537                  "enum": [
1538                    "instance",
1539                    "type",
1540                    "bundle"
1541                  ],
1542                  "default": "bundle"
1543                }
1544              }
1545            }
1546          }
1547        },
1548        "definePermissions": {
1549          "description": "Indicates the permissions defined by the application.",
1550          "type": "array",
1551          "uniqueItems": true,
1552          "items": {
1553            "type": "object",
1554            "propertyNames": {
1555              "enum": [
1556                "name",
1557                "grantMode",
1558                "availableLevel",
1559                "provisionEnable",
1560                "distributedSceneEnable",
1561                "label",
1562                "description"
1563              ]
1564            },
1565            "required": [
1566              "name"
1567            ],
1568            "properties": {
1569              "name": {
1570                "description": "Specifies the permission name. The value is a character string.",
1571                "type": "string"
1572              },
1573              "grantMode": {
1574                "description": "This tag identifies the permission granting mode.",
1575                "type": "string",
1576                "enum": [
1577                  "system_grant",
1578                  "user_grant"
1579                ],
1580                "default": "system_grant"
1581              },
1582              "availableLevel": {
1583                "description": "This tag identifies the permission level.",
1584                "type": "string",
1585                "enum": [
1586                  "system_core",
1587                  "system_basic",
1588                  "normal"
1589                ],
1590                "default": "normal"
1591              },
1592              "provisionEnable": {
1593                "description": "Specifies whether to support the certificate method to apply for permission.",
1594                "type": "boolean",
1595                "default": true
1596              },
1597              "distributedSceneEnable": {
1598                "description": "Specifies whether to support the use of this permission in distributed scenarios.",
1599                "type": "boolean",
1600                "default": false
1601              },
1602              "label": {
1603                "description": "This tag identifies the short description of the permission.",
1604                "type": "string",
1605                "pattern": "^[$]string:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$"
1606              },
1607              "description": {
1608                "description": "This tag indicates the detailed description of the permission.",
1609                "type": "string"
1610              }
1611            }
1612          }
1613        },
1614        "requestPermissions": {
1615          "description": "Indicates the permissions that the application applies for from the system before its running.This label can be left blank by default.",
1616          "type": "array",
1617          "items": {
1618            "type": "object",
1619            "propertyNames": {
1620              "enum": [
1621                "name",
1622                "reason",
1623                "usedScene"
1624              ]
1625            },
1626            "required": [
1627              "name"
1628            ],
1629            "properties": {
1630              "name": {
1631                "description": "Specifies the permission name to be used.",
1632                "type": "string"
1633              },
1634              "reason": {
1635                "description": "Describe the reason for applying for the permission.",
1636                "type": "string",
1637                "pattern": "^[$]string:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$"
1638              },
1639              "usedScene": {
1640                "description": "This section describes the scenarios and timing of permission usage.",
1641                "type": "object",
1642                "propertyNames": {
1643                  "enum": [
1644                    "abilities",
1645                    "when"
1646                  ]
1647                },
1648                "properties": {
1649                  "abilities": {
1650                    "description": "This tag identifies the abilities that need the permission.",
1651                    "type": "array",
1652                    "uniqueItems": true,
1653                    "items": {
1654                      "type": "string"
1655                    }
1656                  },
1657                  "when": {
1658                    "description": "This tag identifies the time when the permission is used.",
1659                    "type": "string",
1660                    "enum": [
1661                      "inuse",
1662                      "always"
1663                    ]
1664                  }
1665                }
1666              }
1667            }
1668          }
1669        },
1670        "testRunner": {
1671          "description": "This tag is used for configure the test properties.",
1672          "type":"object",
1673          "required": [
1674            "name",
1675            "srcPath"
1676          ],
1677          "propertyNames": {
1678            "enum": [
1679              "name",
1680              "srcPath"
1681            ]
1682          },
1683          "properties":{
1684            "name": {
1685              "description": "Indicates the name of testRunner,  The value is a string with a maximum of 255 bytes",
1686              "type": "string",
1687              "maxLength": 255
1688            },
1689            "srcPath": {
1690              "description": "Indicates the srcPath testRunner,  The value is a string with a maximum of 255 bytes",
1691              "type": "string",
1692              "maxLength": 255
1693            }
1694          }
1695        },
1696        "dependencies": {
1697          "description": "Indicates the module names that this module depends on.",
1698          "type": "array",
1699          "uniqueItems": true,
1700          "items": {
1701            "type": "object",
1702            "propertyNames": {
1703              "enum": [
1704                "bundleName",
1705                "moduleName",
1706                "versionCode"
1707              ]
1708            },
1709            "required": [
1710              "moduleName"
1711            ],
1712            "properties":{
1713              "bundleName": {
1714                "description": "Indicates the bundle name of the dependency shared library. It uniquely identifies the dependency shared library. The value is a string with 7 to 128 bytes of a reverse domain name, for example, com.huawei.himusic. It is recommended that the first label of this attribute is the top-level domain com, the second label is the vendor or individual name, and the third label is the dependency shared library name. This label is a string type and cannot be defaulted.",
1715                "type": "string",
1716                "maxLength": 128,
1717                "minLength": 7,
1718                "pattern": "^[a-zA-Z][0-9a-zA-Z_.]+$"
1719              },
1720              "moduleName": {
1721                "description": "Indicates the module name of the dependency shared library.",
1722                "type": "string",
1723                "maxLength": 128
1724              },
1725              "versionCode": {
1726                "description": "Indicates the versionCode number of the dependency shared library. The value is an integer greater than 0. A larger value generally represents a later version.The system determines the dependency shared library version based on the tag value.This label cannot be left blank.",
1727                "type": "integer",
1728                "minimum": 0,
1729                "maximum": 2147483647
1730              }
1731            }
1732          }
1733        },
1734        "libIsolation": {
1735          "description": "Indicates whether to isolate the shared libraries in this module.",
1736          "type": "boolean"
1737        },
1738        "compressNativeLibs": {
1739          "description": "Specifies whether the libs libraries of the .hap file are compressed for storage. If this attribute is set to false, the libs libraries are stored without being compressed and will be directly loaded during the installation of the .hap file.",
1740          "type": "boolean",
1741          "default": false
1742        },
1743        "extractNativeLibs": {
1744          "description": "Specifies whether to extract native libraries (so) of the .hap file during installation.",
1745          "type": "boolean",
1746          "default": true
1747        },
1748        "atomicService": {
1749          "description": "Indicates the module config in atomic service.",
1750          "type": "object",
1751          "propertyNames": {
1752            "enum": [
1753              "preloads",
1754              "resizeable"
1755            ]
1756          },
1757          "properties": {
1758            "preloads": {
1759              "description": "Indicates modules are preloaded when the current module is run.",
1760              "type": "array",
1761              "uniqueItems": true,
1762              "items": {
1763                "type": "object",
1764                "propertyNames": {
1765                  "enum": [
1766                    "moduleName"
1767                  ]
1768                },
1769                "properties": {
1770                  "moduleName": {
1771                    "description": "Indicates module is preloaded when the current module is run.",
1772                    "type": "string",
1773                    "maxLength": 128
1774                  }
1775                }
1776              }
1777            },
1778            "resizeable": {
1779                "description": "Indicates whether atomicService can be resize.The \"true\" indicates the atomicService can be resize.The \"false\" indicates the atomicService cannot be resize.This tag is optional. The default value is false.",
1780                "type": "boolean",
1781                "default": false
1782            }
1783          }
1784        },
1785        "targetModuleName": {
1786          "description": "Indicates the target module name of an overlay module.",
1787          "type": "string",
1788          "pattern": "[^\u4e00-\u9fa5]+",
1789          "maxLength": 128
1790        },
1791        "targetPriority": {
1792          "description": "Indicates the priority of the overlay module. 1 to 100, default value is 1.",
1793          "type": "integer",
1794          "minimum": 1,
1795          "maximum": 100
1796        },
1797        "generateBuildHash": {
1798          "description": "Indicates whether the hash value of hap or hsp is filed with in module.json.",
1799          "type": "boolean",
1800          "default": false
1801        },
1802        "isolationMode": {
1803          "description": "Indicates the module process isolation mode.",
1804          "type": "string",
1805          "enum": [
1806            "isolationOnly",
1807            "nonisolationOnly",
1808            "isolationFirst",
1809            "nonisolationFirst"
1810          ],
1811          "default": "nonisolationFirst"
1812        },
1813        "proxyData": {
1814          "description": "Indicates all the proxy data of the module.",
1815          "type": "array",
1816          "items": {
1817            "type": "object",
1818            "required": [
1819              "uri"
1820            ],
1821            "propertyNames": {
1822              "enum": [
1823                "uri",
1824                "requiredReadPermission",
1825                "requiredWritePermission",
1826                "metadata"
1827              ]
1828            },
1829            "properties": {
1830              "uri": {
1831                "description": "Indicates the uri of the data proxy.",
1832                "type": "string",
1833                "pattern": "^datashareproxy:",
1834                "maxLength": 255
1835              },
1836              "requiredReadPermission": {
1837                "description": "Indicates the permission required to read data from the proxy.",
1838                "type": "string",
1839                "maxLength": 255
1840              },
1841              "requiredWritePermission": {
1842                "description": "Indicates the permission required to write data to the proxy.",
1843                "type": "string",
1844                "maxLength": 255
1845              },
1846              "metadata": {
1847                "description": "Indicates the metadata of the proxy.",
1848                "type": "object",
1849                "propertyNames": {
1850                  "enum": [
1851                    "name",
1852                    "resource"
1853                  ]
1854                },
1855                "properties": {
1856                  "name": {
1857                    "description": "Indicates the key of a data element. The value is a string with a maximum of 255 bytes.",
1858                    "type": "string",
1859                    "maxLength": 255
1860                  },
1861                  "resource": {
1862                    "description": "Indicates the resource of a data element.",
1863                    "type": "string",
1864                    "pattern": "^[$]profile:[0-9a-zA-Z_.]+|(?=.*[{])(?=.*[}])[0-9a-zA-Z_.{}]+$",
1865                    "maxLength": 255
1866                  }
1867                }
1868              }
1869            }
1870          }
1871        },
1872        "crossAppSharedConfig": {
1873          "description": "Indicates the name of the configuration file used to identify configurations shared across applications.",
1874          "type": "string",
1875          "pattern": "^[$]profile:[0-9a-zA-Z_.]+$",
1876          "maxLength": 255
1877        },
1878        "fileContextMenu": {
1879          "description": "Indicates the menu profile.",
1880          "type": "string",
1881          "pattern": "^[$]profile:[0-9a-zA-Z_.]+$",
1882          "maxLength": 255
1883        },
1884        "querySchemes": {
1885          "description": "Indicates the URL schemes control list",
1886          "type": "array",
1887          "uniqueItems": true,
1888          "maxItems": 50,
1889          "items": {
1890            "type": "string",
1891            "maxLength": 128,
1892            "pattern": "^[a-zA-Z][0-9a-zA-Z+.-]*"
1893          }
1894        },
1895        "routerMap": {
1896          "description": "Indicates the path of router navigation profile.",
1897          "type": "string",
1898          "pattern": "^[$]profile:[0-9a-zA-Z_.]+$",
1899          "maxLength": 255
1900        },
1901        "appEnvironments": {
1902          "description": "Indicates the environment value of app.",
1903          "type": "array",
1904          "items": {
1905            "type": "object",
1906            "propertyNames": {
1907              "enum": [
1908                "name",
1909                "value"
1910              ]
1911            },
1912            "properties": {
1913              "name": {
1914                "description": "Indicates the key of a environment element. The value is a string with a maximum of 4096 bytes.",
1915                "type": "string",
1916                "maxLength": 4096
1917              },
1918              "value": {
1919                "description": "Indicates the value of a environment element. The value is a string with a maximum of 4096 bytes.",
1920                "type": "string",
1921                "maxLength": 4096
1922              }
1923            }
1924          }
1925        },
1926        "appStartup": {
1927          "description": "Startup framework configuration file. The value is startup framework configuration file path.",
1928          "type": "string",
1929          "pattern": "^[$]profile:[0-9a-zA-Z_.]+$",
1930          "maxLength": 255
1931        },
1932        "formExtensionModule": {
1933          "description": "Module name for associating the frontend form package with the backend form.",
1934          "type": "string",
1935          "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
1936          "maxLength": 128
1937        },
1938        "formWidgetModule": {
1939          "description": "The backend of the application package form is associated with the frontend module name.",
1940          "type": "string",
1941          "pattern": "^[a-zA-Z][0-9a-zA-Z_.]*$",
1942          "maxLength": 128
1943        },
1944        "hnpPackages": {
1945          "description": "Native package configuration file.",
1946          "type": "array",
1947          "minItems": 1,
1948          "items": {
1949            "type": "object",
1950            "propertyNames": {
1951              "enum": [
1952                "package",
1953                "type"
1954              ]
1955            },
1956            "required": [
1957              "package",
1958              "type"
1959            ],
1960            "properties": {
1961              "package": {
1962                "description": "Indicates the file name of native package.",
1963                "type": "string",
1964                "pattern": "^([a-zA-Z0-9_-]+(\/[a-zA-Z0-9_-]+)*\/)?[a-zA-Z0-9_-]+\\.hnp$",
1965                "maxLength": 255
1966              },
1967              "type": {
1968                "description": "Indicates the type of native package.",
1969                "type": "string",
1970                "enum": [
1971                  "public",
1972                  "private"
1973                ]
1974              }
1975            }
1976          }
1977        }
1978      }
1979    }
1980  }
1981}
1982