refactor: Improve Automated Permission Documentation Generation (#10113)

* generate permission table with html

* cargo fmt

* clippy fix

* clippy fix

---------

Co-authored-by: Lucas Nogueira <118899497+lucasfernog-crabnebula@users.noreply.github.com>
This commit is contained in:
Tillmann 2024-06-26 13:59:47 +09:00 committed by GitHub
parent 61bbd8373f
commit bb50315c50
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 3662 additions and 306 deletions

View File

@ -21,7 +21,7 @@
"type": "string"
},
"description": {
"description": "Human-readable description of what the permission does.",
"description": "Human-readable description of what the permission does.\n Tauri internal convention is to use <h4> headings in markdown content\n for Tauri documentation generation purposes.",
"type": [
"string",
"null"

View File

@ -121,7 +121,11 @@ impl<'a> Builder<'a> {
let _ = std::fs::remove_file(autogenerated.join(acl::build::PERMISSION_DOCS_FILE_NAME));
} else {
acl::build::generate_schema(&permissions, "./permissions")?;
acl::build::generate_docs(&permissions, &autogenerated)?;
acl::build::generate_docs(
&permissions,
&autogenerated,
&name.strip_prefix("tauri-plugin-").unwrap_or(&name),
)?;
}
if let Some(global_scope_schema) = self.global_scope_schema {

View File

@ -237,36 +237,66 @@ pub fn generate_schema<P: AsRef<Path>>(
}
/// Generate a markdown documentation page containing the list of permissions of the plugin.
pub fn generate_docs(permissions: &[PermissionFile], out_dir: &Path) -> Result<(), Error> {
let mut docs = "| Permission | Description |\n|------|-----|\n".to_string();
pub fn generate_docs(
permissions: &[PermissionFile],
out_dir: &Path,
plugin_identifier: &str,
) -> Result<(), Error> {
let mut permission_table = "".to_string();
let permission_table_header =
"### Permission Table \n\n<table>\n<tr>\n<th>Identifier</th>\n<th>Description</th>\n</tr>\n"
.to_string();
fn docs_from(id: &str, description: Option<&str>) -> String {
let mut docs = format!("|`{id}`");
let mut default_permission = "## Default Permission\n\n".to_string();
let mut contains_default = false;
fn docs_from(id: &str, description: Option<&str>, plugin_identifier: &str) -> String {
let mut docs = format!("\n<tr>\n<td>\n\n`{plugin_identifier}:{id}`\n\n</td>\n");
if let Some(d) = description {
docs.push_str(&format!("|{d}|"));
docs.push_str(&format!("<td>\n\n{d}\n\n</td>"));
}
docs.push_str("\n</tr>");
docs
}
for permission in permissions {
for set in &permission.set {
docs.push_str(&docs_from(&set.identifier, Some(&set.description)));
docs.push('\n');
permission_table.push_str(&docs_from(
&set.identifier,
Some(&set.description),
plugin_identifier,
));
permission_table.push('\n');
}
if let Some(default) = &permission.default {
docs.push_str(&docs_from("default", default.description.as_deref()));
docs.push('\n');
default_permission.push_str(default.description.as_deref().unwrap_or_default());
default_permission.push('\n');
default_permission.push('\n');
for permission in &default.permissions {
default_permission.push_str(&format!("- `{permission}`"));
default_permission.push('\n');
}
contains_default = true;
}
for permission in &permission.permission {
docs.push_str(&docs_from(
permission_table.push_str(&docs_from(
&permission.identifier,
permission.description.as_deref(),
plugin_identifier,
));
docs.push('\n');
permission_table.push('\n');
}
}
permission_table.push_str("</table>");
if !contains_default {
default_permission = "".to_string();
}
let docs = format!("{default_permission}\n{permission_table_header}\n{permission_table}\n");
let reference_path = out_dir.join(PERMISSION_DOCS_FILE_NAME);
if docs != read_to_string(&reference_path).unwrap_or_default() {

View File

@ -19,6 +19,8 @@ pub struct DefaultPermission {
pub version: Option<NonZeroU64>,
/// Human-readable description of what the permission does.
/// Tauri convention is to use <h4> headings in markdown content
/// for Tauri documentation generation purposes.
pub description: Option<String>,
/// All permissions this set contains.

View File

@ -172,6 +172,8 @@ pub struct Permission {
pub identifier: String,
/// Human-readable description of what the permission does.
/// Tauri internal convention is to use <h4> headings in markdown content
/// for Tauri documentation generation purposes.
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,

View File

@ -378,8 +378,12 @@ permissions = [{default_permissions}]
let docs_out_dir = Path::new("permissions").join(plugin).join("autogenerated");
create_dir_all(&docs_out_dir).expect("failed to create plugin documentation directory");
tauri_utils::acl::build::generate_docs(&permissions, &docs_out_dir)
.expect("failed to generate plugin documentation page");
tauri_utils::acl::build::generate_docs(
&permissions,
&docs_out_dir,
plugin.strip_prefix("tauri-plugin-").unwrap_or(plugin),
)
.expect("failed to generate plugin documentation page");
}
}

View File

@ -1,15 +1,173 @@
| Permission | Description |
|------|-----|
|`allow-app-hide`|Enables the app_hide command without any pre-configured scope.|
|`deny-app-hide`|Denies the app_hide command without any pre-configured scope.|
|`allow-app-show`|Enables the app_show command without any pre-configured scope.|
|`deny-app-show`|Denies the app_show command without any pre-configured scope.|
|`allow-default-window-icon`|Enables the default_window_icon command without any pre-configured scope.|
|`deny-default-window-icon`|Denies the default_window_icon command without any pre-configured scope.|
|`allow-name`|Enables the name command without any pre-configured scope.|
|`deny-name`|Denies the name command without any pre-configured scope.|
|`allow-tauri-version`|Enables the tauri_version command without any pre-configured scope.|
|`deny-tauri-version`|Denies the tauri_version command without any pre-configured scope.|
|`allow-version`|Enables the version command without any pre-configured scope.|
|`deny-version`|Denies the version command without any pre-configured scope.|
|`default`|Default permissions for the plugin.|
## Default Permission
Default permissions for the plugin.
- `allow-version`
- `allow-name`
- `allow-tauri-version`
### Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`app:allow-app-hide`
</td>
<td>
Enables the app_hide command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:deny-app-hide`
</td>
<td>
Denies the app_hide command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:allow-app-show`
</td>
<td>
Enables the app_show command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:deny-app-show`
</td>
<td>
Denies the app_show command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:allow-default-window-icon`
</td>
<td>
Enables the default_window_icon command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:deny-default-window-icon`
</td>
<td>
Denies the default_window_icon command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:allow-name`
</td>
<td>
Enables the name command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:deny-name`
</td>
<td>
Denies the name command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:allow-tauri-version`
</td>
<td>
Enables the tauri_version command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:deny-tauri-version`
</td>
<td>
Denies the tauri_version command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:allow-version`
</td>
<td>
Enables the version command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`app:deny-version`
</td>
<td>
Denies the version command without any pre-configured scope.
</td>
</tr>
</table>

View File

@ -1,11 +1,122 @@
| Permission | Description |
|------|-----|
|`allow-emit`|Enables the emit command without any pre-configured scope.|
|`deny-emit`|Denies the emit command without any pre-configured scope.|
|`allow-emit-to`|Enables the emit_to command without any pre-configured scope.|
|`deny-emit-to`|Denies the emit_to command without any pre-configured scope.|
|`allow-listen`|Enables the listen command without any pre-configured scope.|
|`deny-listen`|Denies the listen command without any pre-configured scope.|
|`allow-unlisten`|Enables the unlisten command without any pre-configured scope.|
|`deny-unlisten`|Denies the unlisten command without any pre-configured scope.|
|`default`|Default permissions for the plugin.|
## Default Permission
Default permissions for the plugin.
- `allow-listen`
- `allow-unlisten`
- `allow-emit`
- `allow-emit-to`
### Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`event:allow-emit`
</td>
<td>
Enables the emit command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`event:deny-emit`
</td>
<td>
Denies the emit command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`event:allow-emit-to`
</td>
<td>
Enables the emit_to command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`event:deny-emit-to`
</td>
<td>
Denies the emit_to command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`event:allow-listen`
</td>
<td>
Enables the listen command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`event:deny-listen`
</td>
<td>
Denies the listen command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`event:allow-unlisten`
</td>
<td>
Enables the unlisten command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`event:deny-unlisten`
</td>
<td>
Denies the unlisten command without any pre-configured scope.
</td>
</tr>
</table>

View File

@ -1,13 +1,149 @@
| Permission | Description |
|------|-----|
|`allow-from-bytes`|Enables the from_bytes command without any pre-configured scope.|
|`deny-from-bytes`|Denies the from_bytes command without any pre-configured scope.|
|`allow-from-path`|Enables the from_path command without any pre-configured scope.|
|`deny-from-path`|Denies the from_path command without any pre-configured scope.|
|`allow-new`|Enables the new command without any pre-configured scope.|
|`deny-new`|Denies the new command without any pre-configured scope.|
|`allow-rgba`|Enables the rgba command without any pre-configured scope.|
|`deny-rgba`|Denies the rgba command without any pre-configured scope.|
|`allow-size`|Enables the size command without any pre-configured scope.|
|`deny-size`|Denies the size command without any pre-configured scope.|
|`default`|Default permissions for the plugin.|
## Default Permission
Default permissions for the plugin.
- `allow-new`
- `allow-from-bytes`
- `allow-from-path`
- `allow-rgba`
- `allow-size`
### Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`image:allow-from-bytes`
</td>
<td>
Enables the from_bytes command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:deny-from-bytes`
</td>
<td>
Denies the from_bytes command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:allow-from-path`
</td>
<td>
Enables the from_path command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:deny-from-path`
</td>
<td>
Denies the from_path command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:allow-new`
</td>
<td>
Enables the new command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:deny-new`
</td>
<td>
Denies the new command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:allow-rgba`
</td>
<td>
Enables the rgba command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:deny-rgba`
</td>
<td>
Denies the rgba command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:allow-size`
</td>
<td>
Enables the size command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`image:deny-size`
</td>
<td>
Denies the size command without any pre-configured scope.
</td>
</tr>
</table>

View File

@ -1,47 +1,586 @@
| Permission | Description |
|------|-----|
|`allow-append`|Enables the append command without any pre-configured scope.|
|`deny-append`|Denies the append command without any pre-configured scope.|
|`allow-create-default`|Enables the create_default command without any pre-configured scope.|
|`deny-create-default`|Denies the create_default command without any pre-configured scope.|
|`allow-get`|Enables the get command without any pre-configured scope.|
|`deny-get`|Denies the get command without any pre-configured scope.|
|`allow-insert`|Enables the insert command without any pre-configured scope.|
|`deny-insert`|Denies the insert command without any pre-configured scope.|
|`allow-is-checked`|Enables the is_checked command without any pre-configured scope.|
|`deny-is-checked`|Denies the is_checked command without any pre-configured scope.|
|`allow-is-enabled`|Enables the is_enabled command without any pre-configured scope.|
|`deny-is-enabled`|Denies the is_enabled command without any pre-configured scope.|
|`allow-items`|Enables the items command without any pre-configured scope.|
|`deny-items`|Denies the items command without any pre-configured scope.|
|`allow-new`|Enables the new command without any pre-configured scope.|
|`deny-new`|Denies the new command without any pre-configured scope.|
|`allow-popup`|Enables the popup command without any pre-configured scope.|
|`deny-popup`|Denies the popup command without any pre-configured scope.|
|`allow-prepend`|Enables the prepend command without any pre-configured scope.|
|`deny-prepend`|Denies the prepend command without any pre-configured scope.|
|`allow-remove`|Enables the remove command without any pre-configured scope.|
|`deny-remove`|Denies the remove command without any pre-configured scope.|
|`allow-remove-at`|Enables the remove_at command without any pre-configured scope.|
|`deny-remove-at`|Denies the remove_at command without any pre-configured scope.|
|`allow-set-accelerator`|Enables the set_accelerator command without any pre-configured scope.|
|`deny-set-accelerator`|Denies the set_accelerator command without any pre-configured scope.|
|`allow-set-as-app-menu`|Enables the set_as_app_menu command without any pre-configured scope.|
|`deny-set-as-app-menu`|Denies the set_as_app_menu command without any pre-configured scope.|
|`allow-set-as-help-menu-for-nsapp`|Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.|
|`deny-set-as-help-menu-for-nsapp`|Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.|
|`allow-set-as-window-menu`|Enables the set_as_window_menu command without any pre-configured scope.|
|`deny-set-as-window-menu`|Denies the set_as_window_menu command without any pre-configured scope.|
|`allow-set-as-windows-menu-for-nsapp`|Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.|
|`deny-set-as-windows-menu-for-nsapp`|Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.|
|`allow-set-checked`|Enables the set_checked command without any pre-configured scope.|
|`deny-set-checked`|Denies the set_checked command without any pre-configured scope.|
|`allow-set-enabled`|Enables the set_enabled command without any pre-configured scope.|
|`deny-set-enabled`|Denies the set_enabled command without any pre-configured scope.|
|`allow-set-icon`|Enables the set_icon command without any pre-configured scope.|
|`deny-set-icon`|Denies the set_icon command without any pre-configured scope.|
|`allow-set-text`|Enables the set_text command without any pre-configured scope.|
|`deny-set-text`|Denies the set_text command without any pre-configured scope.|
|`allow-text`|Enables the text command without any pre-configured scope.|
|`deny-text`|Denies the text command without any pre-configured scope.|
|`default`|Default permissions for the plugin.|
## Default Permission
Default permissions for the plugin.
### Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`menu:allow-append`
</td>
<td>
Enables the append command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-append`
</td>
<td>
Denies the append command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-create-default`
</td>
<td>
Enables the create_default command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-create-default`
</td>
<td>
Denies the create_default command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-get`
</td>
<td>
Enables the get command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-get`
</td>
<td>
Denies the get command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-insert`
</td>
<td>
Enables the insert command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-insert`
</td>
<td>
Denies the insert command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-is-checked`
</td>
<td>
Enables the is_checked command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-is-checked`
</td>
<td>
Denies the is_checked command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-is-enabled`
</td>
<td>
Enables the is_enabled command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-is-enabled`
</td>
<td>
Denies the is_enabled command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-items`
</td>
<td>
Enables the items command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-items`
</td>
<td>
Denies the items command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-new`
</td>
<td>
Enables the new command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-new`
</td>
<td>
Denies the new command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-popup`
</td>
<td>
Enables the popup command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-popup`
</td>
<td>
Denies the popup command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-prepend`
</td>
<td>
Enables the prepend command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-prepend`
</td>
<td>
Denies the prepend command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-remove`
</td>
<td>
Enables the remove command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-remove`
</td>
<td>
Denies the remove command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-remove-at`
</td>
<td>
Enables the remove_at command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-remove-at`
</td>
<td>
Denies the remove_at command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-accelerator`
</td>
<td>
Enables the set_accelerator command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-accelerator`
</td>
<td>
Denies the set_accelerator command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-as-app-menu`
</td>
<td>
Enables the set_as_app_menu command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-as-app-menu`
</td>
<td>
Denies the set_as_app_menu command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-as-help-menu-for-nsapp`
</td>
<td>
Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-as-help-menu-for-nsapp`
</td>
<td>
Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-as-window-menu`
</td>
<td>
Enables the set_as_window_menu command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-as-window-menu`
</td>
<td>
Denies the set_as_window_menu command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-as-windows-menu-for-nsapp`
</td>
<td>
Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-as-windows-menu-for-nsapp`
</td>
<td>
Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-checked`
</td>
<td>
Enables the set_checked command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-checked`
</td>
<td>
Denies the set_checked command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-enabled`
</td>
<td>
Enables the set_enabled command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-enabled`
</td>
<td>
Denies the set_enabled command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-icon`
</td>
<td>
Enables the set_icon command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-icon`
</td>
<td>
Denies the set_icon command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-set-text`
</td>
<td>
Enables the set_text command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-set-text`
</td>
<td>
Denies the set_text command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:allow-text`
</td>
<td>
Enables the text command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`menu:deny-text`
</td>
<td>
Denies the text command without any pre-configured scope.
</td>
</tr>
</table>

View File

@ -1,19 +1,230 @@
| Permission | Description |
|------|-----|
|`allow-basename`|Enables the basename command without any pre-configured scope.|
|`deny-basename`|Denies the basename command without any pre-configured scope.|
|`allow-dirname`|Enables the dirname command without any pre-configured scope.|
|`deny-dirname`|Denies the dirname command without any pre-configured scope.|
|`allow-extname`|Enables the extname command without any pre-configured scope.|
|`deny-extname`|Denies the extname command without any pre-configured scope.|
|`allow-is-absolute`|Enables the is_absolute command without any pre-configured scope.|
|`deny-is-absolute`|Denies the is_absolute command without any pre-configured scope.|
|`allow-join`|Enables the join command without any pre-configured scope.|
|`deny-join`|Denies the join command without any pre-configured scope.|
|`allow-normalize`|Enables the normalize command without any pre-configured scope.|
|`deny-normalize`|Denies the normalize command without any pre-configured scope.|
|`allow-resolve`|Enables the resolve command without any pre-configured scope.|
|`deny-resolve`|Denies the resolve command without any pre-configured scope.|
|`allow-resolve-directory`|Enables the resolve_directory command without any pre-configured scope.|
|`deny-resolve-directory`|Denies the resolve_directory command without any pre-configured scope.|
|`default`|Default permissions for the plugin.|
## Default Permission
Default permissions for the plugin.
- `allow-resolve-directory`
- `allow-resolve`
- `allow-normalize`
- `allow-join`
- `allow-dirname`
- `allow-extname`
- `allow-basename`
- `allow-is-absolute`
### Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`path:allow-basename`
</td>
<td>
Enables the basename command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:deny-basename`
</td>
<td>
Denies the basename command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:allow-dirname`
</td>
<td>
Enables the dirname command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:deny-dirname`
</td>
<td>
Denies the dirname command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:allow-extname`
</td>
<td>
Enables the extname command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:deny-extname`
</td>
<td>
Denies the extname command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:allow-is-absolute`
</td>
<td>
Enables the is_absolute command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:deny-is-absolute`
</td>
<td>
Denies the is_absolute command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:allow-join`
</td>
<td>
Enables the join command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:deny-join`
</td>
<td>
Denies the join command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:allow-normalize`
</td>
<td>
Enables the normalize command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:deny-normalize`
</td>
<td>
Denies the normalize command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:allow-resolve`
</td>
<td>
Enables the resolve command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:deny-resolve`
</td>
<td>
Denies the resolve command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:allow-resolve-directory`
</td>
<td>
Enables the resolve_directory command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`path:deny-resolve-directory`
</td>
<td>
Denies the resolve_directory command without any pre-configured scope.
</td>
</tr>
</table>

View File

@ -1,5 +1,41 @@
| Permission | Description |
|------|-----|
|`allow-close`|Enables the close command without any pre-configured scope.|
|`deny-close`|Denies the close command without any pre-configured scope.|
|`default`|Default permissions for the plugin.|
## Default Permission
Default permissions for the plugin.
- `allow-close`
### Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`resources:allow-close`
</td>
<td>
Enables the close command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`resources:deny-close`
</td>
<td>
Denies the close command without any pre-configured scope.
</td>
</tr>
</table>

View File

@ -1,25 +1,300 @@
| Permission | Description |
|------|-----|
|`allow-get-by-id`|Enables the get_by_id command without any pre-configured scope.|
|`deny-get-by-id`|Denies the get_by_id command without any pre-configured scope.|
|`allow-new`|Enables the new command without any pre-configured scope.|
|`deny-new`|Denies the new command without any pre-configured scope.|
|`allow-remove-by-id`|Enables the remove_by_id command without any pre-configured scope.|
|`deny-remove-by-id`|Denies the remove_by_id command without any pre-configured scope.|
|`allow-set-icon`|Enables the set_icon command without any pre-configured scope.|
|`deny-set-icon`|Denies the set_icon command without any pre-configured scope.|
|`allow-set-icon-as-template`|Enables the set_icon_as_template command without any pre-configured scope.|
|`deny-set-icon-as-template`|Denies the set_icon_as_template command without any pre-configured scope.|
|`allow-set-menu`|Enables the set_menu command without any pre-configured scope.|
|`deny-set-menu`|Denies the set_menu command without any pre-configured scope.|
|`allow-set-show-menu-on-left-click`|Enables the set_show_menu_on_left_click command without any pre-configured scope.|
|`deny-set-show-menu-on-left-click`|Denies the set_show_menu_on_left_click command without any pre-configured scope.|
|`allow-set-temp-dir-path`|Enables the set_temp_dir_path command without any pre-configured scope.|
|`deny-set-temp-dir-path`|Denies the set_temp_dir_path command without any pre-configured scope.|
|`allow-set-title`|Enables the set_title command without any pre-configured scope.|
|`deny-set-title`|Denies the set_title command without any pre-configured scope.|
|`allow-set-tooltip`|Enables the set_tooltip command without any pre-configured scope.|
|`deny-set-tooltip`|Denies the set_tooltip command without any pre-configured scope.|
|`allow-set-visible`|Enables the set_visible command without any pre-configured scope.|
|`deny-set-visible`|Denies the set_visible command without any pre-configured scope.|
|`default`|Default permissions for the plugin.|
## Default Permission
Default permissions for the plugin.
### Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`tray:allow-get-by-id`
</td>
<td>
Enables the get_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-get-by-id`
</td>
<td>
Denies the get_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-new`
</td>
<td>
Enables the new command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-new`
</td>
<td>
Denies the new command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-remove-by-id`
</td>
<td>
Enables the remove_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-remove-by-id`
</td>
<td>
Denies the remove_by_id command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-set-icon`
</td>
<td>
Enables the set_icon command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-set-icon`
</td>
<td>
Denies the set_icon command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-set-icon-as-template`
</td>
<td>
Enables the set_icon_as_template command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-set-icon-as-template`
</td>
<td>
Denies the set_icon_as_template command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-set-menu`
</td>
<td>
Enables the set_menu command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-set-menu`
</td>
<td>
Denies the set_menu command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-set-show-menu-on-left-click`
</td>
<td>
Enables the set_show_menu_on_left_click command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-set-show-menu-on-left-click`
</td>
<td>
Denies the set_show_menu_on_left_click command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-set-temp-dir-path`
</td>
<td>
Enables the set_temp_dir_path command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-set-temp-dir-path`
</td>
<td>
Denies the set_temp_dir_path command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-set-title`
</td>
<td>
Enables the set_title command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-set-title`
</td>
<td>
Denies the set_title command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-set-tooltip`
</td>
<td>
Enables the set_tooltip command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-set-tooltip`
</td>
<td>
Denies the set_tooltip command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:allow-set-visible`
</td>
<td>
Enables the set_visible command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`tray:deny-set-visible`
</td>
<td>
Denies the set_visible command without any pre-configured scope.
</td>
</tr>
</table>

View File

@ -1,27 +1,329 @@
| Permission | Description |
|------|-----|
|`allow-create-webview`|Enables the create_webview command without any pre-configured scope.|
|`deny-create-webview`|Denies the create_webview command without any pre-configured scope.|
|`allow-create-webview-window`|Enables the create_webview_window command without any pre-configured scope.|
|`deny-create-webview-window`|Denies the create_webview_window command without any pre-configured scope.|
|`allow-internal-toggle-devtools`|Enables the internal_toggle_devtools command without any pre-configured scope.|
|`deny-internal-toggle-devtools`|Denies the internal_toggle_devtools command without any pre-configured scope.|
|`allow-print`|Enables the print command without any pre-configured scope.|
|`deny-print`|Denies the print command without any pre-configured scope.|
|`allow-reparent`|Enables the reparent command without any pre-configured scope.|
|`deny-reparent`|Denies the reparent command without any pre-configured scope.|
|`allow-set-webview-focus`|Enables the set_webview_focus command without any pre-configured scope.|
|`deny-set-webview-focus`|Denies the set_webview_focus command without any pre-configured scope.|
|`allow-set-webview-position`|Enables the set_webview_position command without any pre-configured scope.|
|`deny-set-webview-position`|Denies the set_webview_position command without any pre-configured scope.|
|`allow-set-webview-size`|Enables the set_webview_size command without any pre-configured scope.|
|`deny-set-webview-size`|Denies the set_webview_size command without any pre-configured scope.|
|`allow-set-webview-zoom`|Enables the set_webview_zoom command without any pre-configured scope.|
|`deny-set-webview-zoom`|Denies the set_webview_zoom command without any pre-configured scope.|
|`allow-webview-close`|Enables the webview_close command without any pre-configured scope.|
|`deny-webview-close`|Denies the webview_close command without any pre-configured scope.|
|`allow-webview-position`|Enables the webview_position command without any pre-configured scope.|
|`deny-webview-position`|Denies the webview_position command without any pre-configured scope.|
|`allow-webview-size`|Enables the webview_size command without any pre-configured scope.|
|`deny-webview-size`|Denies the webview_size command without any pre-configured scope.|
|`default`|Default permissions for the plugin.|
## Default Permission
Default permissions for the plugin.
- `allow-webview-position`
- `allow-webview-size`
- `allow-internal-toggle-devtools`
### Permission Table
<table>
<tr>
<th>Identifier</th>
<th>Description</th>
</tr>
<tr>
<td>
`webview:allow-create-webview`
</td>
<td>
Enables the create_webview command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-create-webview`
</td>
<td>
Denies the create_webview command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-create-webview-window`
</td>
<td>
Enables the create_webview_window command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-create-webview-window`
</td>
<td>
Denies the create_webview_window command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-internal-toggle-devtools`
</td>
<td>
Enables the internal_toggle_devtools command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-internal-toggle-devtools`
</td>
<td>
Denies the internal_toggle_devtools command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-print`
</td>
<td>
Enables the print command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-print`
</td>
<td>
Denies the print command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-reparent`
</td>
<td>
Enables the reparent command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-reparent`
</td>
<td>
Denies the reparent command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-set-webview-focus`
</td>
<td>
Enables the set_webview_focus command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-set-webview-focus`
</td>
<td>
Denies the set_webview_focus command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-set-webview-position`
</td>
<td>
Enables the set_webview_position command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-set-webview-position`
</td>
<td>
Denies the set_webview_position command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-set-webview-size`
</td>
<td>
Enables the set_webview_size command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-set-webview-size`
</td>
<td>
Denies the set_webview_size command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-set-webview-zoom`
</td>
<td>
Enables the set_webview_zoom command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-set-webview-zoom`
</td>
<td>
Denies the set_webview_zoom command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-webview-close`
</td>
<td>
Enables the webview_close command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-webview-close`
</td>
<td>
Denies the webview_close command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-webview-position`
</td>
<td>
Enables the webview_position command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-webview-position`
</td>
<td>
Denies the webview_position command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:allow-webview-size`
</td>
<td>
Enables the webview_size command without any pre-configured scope.
</td>
</tr>
<tr>
<td>
`webview:deny-webview-size`
</td>
<td>
Denies the webview_size command without any pre-configured scope.
</td>
</tr>
</table>

File diff suppressed because it is too large Load Diff