mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-02-06 13:57:16 +00:00
fix(core): Mark identifier as a required field. (#10946)
* fix(core): Mark `identifier` as a required field. * change tag * inject identifier in tests
This commit is contained in:
parent
ffa33cd28a
commit
0a47bf0430
5
.changes/fix-identifier-config-required.md
Normal file
5
.changes/fix-identifier-config-required.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
'tauri-utils': 'patch:bug'
|
||||
---
|
||||
|
||||
Fixed an issue that made the `identifier` in `tauri.conf.json` optional while it was actually required.
|
||||
@ -3,6 +3,9 @@
|
||||
"title": "Config",
|
||||
"description": "The Tauri configuration object.\n It is read from a file where you can define your frontend assets,\n configure the bundler and define a tray icon.\n\n The configuration file is generated by the\n [`tauri init`](https://tauri.app/v1/api/cli#init) command that lives in\n your Tauri application source directory (src-tauri).\n\n Once generated, you may modify it at will to customize your Tauri application.\n\n ## File Formats\n\n By default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\n Tauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively.\n The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`.\n The TOML file name is `Tauri.toml`.\n\n ## Platform-Specific Configuration\n\n In addition to the default configuration file, Tauri can\n read a platform-specific configuration from `tauri.linux.conf.json`,\n `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json`\n (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used),\n which gets merged with the main configuration object.\n\n ## Configuration Structure\n\n The configuration is composed of the following objects:\n\n - [`app`](#appconfig): The Tauri configuration\n - [`build`](#buildconfig): The build configuration\n - [`bundle`](#bundleconfig): The bundle configurations\n - [`plugins`](#pluginconfig): The plugins configuration\n\n Example tauri.config.json file:\n\n ```json\n {\n \"productName\": \"tauri-app\",\n \"version\": \"0.1.0\",\n \"build\": {\n \"beforeBuildCommand\": \"\",\n \"beforeDevCommand\": \"\",\n \"devUrl\": \"../dist\",\n \"frontendDist\": \"../dist\"\n },\n \"app\": {\n \"security\": {\n \"csp\": null\n },\n \"windows\": [\n {\n \"fullscreen\": false,\n \"height\": 600,\n \"resizable\": true,\n \"title\": \"Tauri App\",\n \"width\": 800\n }\n ]\n },\n \"bundle\": {},\n \"plugins\": {}\n }\n ```",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"identifier"
|
||||
],
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"description": "The JSON schema for the Tauri config.",
|
||||
@ -27,8 +30,7 @@
|
||||
]
|
||||
},
|
||||
"identifier": {
|
||||
"description": "The application identifier in reverse domain name notation (e.g. `com.tauri.example`).\n This string must be unique across applications since it is used in system configurations like\n the bundle ID and path to the webview data directory.\n This string must contain only alphanumeric characters (A–Z, a–z, and 0–9), hyphens (-),\n and periods (.).",
|
||||
"default": "",
|
||||
"description": "The application identifier in reverse domain name notation (e.g. `com.tauri.example`).\n This string must be unique across applications since it is used in system configurations like\n the bundle ID and path to the webview data directory.\n This string must contain only alphanumeric characters (A-Z, a-z, and 0-9), hyphens (-),\n and periods (.).",
|
||||
"type": "string"
|
||||
},
|
||||
"app": {
|
||||
|
||||
@ -682,6 +682,20 @@ mod test {
|
||||
let mut migrated = original.clone();
|
||||
super::migrate_config(&mut migrated).expect("failed to migrate config");
|
||||
|
||||
if original
|
||||
.get("tauri")
|
||||
.and_then(|v| v.get("bundle"))
|
||||
.and_then(|v| v.get("identifier"))
|
||||
.is_none()
|
||||
{
|
||||
if let Some(map) = migrated.as_object_mut() {
|
||||
map.insert(
|
||||
"identifier".to_string(),
|
||||
serde_json::Value::String("com.tauri.test-injected".to_string()),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if let Err(e) = serde_json::from_value::<tauri_utils::config::Config>(migrated.clone()) {
|
||||
panic!("migrated config is not valid: {e}");
|
||||
}
|
||||
|
||||
@ -3,6 +3,9 @@
|
||||
"title": "Config",
|
||||
"description": "The Tauri configuration object.\n It is read from a file where you can define your frontend assets,\n configure the bundler and define a tray icon.\n\n The configuration file is generated by the\n [`tauri init`](https://tauri.app/v1/api/cli#init) command that lives in\n your Tauri application source directory (src-tauri).\n\n Once generated, you may modify it at will to customize your Tauri application.\n\n ## File Formats\n\n By default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\n Tauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively.\n The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`.\n The TOML file name is `Tauri.toml`.\n\n ## Platform-Specific Configuration\n\n In addition to the default configuration file, Tauri can\n read a platform-specific configuration from `tauri.linux.conf.json`,\n `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json`\n (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used),\n which gets merged with the main configuration object.\n\n ## Configuration Structure\n\n The configuration is composed of the following objects:\n\n - [`app`](#appconfig): The Tauri configuration\n - [`build`](#buildconfig): The build configuration\n - [`bundle`](#bundleconfig): The bundle configurations\n - [`plugins`](#pluginconfig): The plugins configuration\n\n Example tauri.config.json file:\n\n ```json\n {\n \"productName\": \"tauri-app\",\n \"version\": \"0.1.0\",\n \"build\": {\n \"beforeBuildCommand\": \"\",\n \"beforeDevCommand\": \"\",\n \"devUrl\": \"../dist\",\n \"frontendDist\": \"../dist\"\n },\n \"app\": {\n \"security\": {\n \"csp\": null\n },\n \"windows\": [\n {\n \"fullscreen\": false,\n \"height\": 600,\n \"resizable\": true,\n \"title\": \"Tauri App\",\n \"width\": 800\n }\n ]\n },\n \"bundle\": {},\n \"plugins\": {}\n }\n ```",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"identifier"
|
||||
],
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"description": "The JSON schema for the Tauri config.",
|
||||
@ -27,8 +30,7 @@
|
||||
]
|
||||
},
|
||||
"identifier": {
|
||||
"description": "The application identifier in reverse domain name notation (e.g. `com.tauri.example`).\n This string must be unique across applications since it is used in system configurations like\n the bundle ID and path to the webview data directory.\n This string must contain only alphanumeric characters (A–Z, a–z, and 0–9), hyphens (-),\n and periods (.).",
|
||||
"default": "",
|
||||
"description": "The application identifier in reverse domain name notation (e.g. `com.tauri.example`).\n This string must be unique across applications since it is used in system configurations like\n the bundle ID and path to the webview data directory.\n This string must contain only alphanumeric characters (A-Z, a-z, and 0-9), hyphens (-),\n and periods (.).",
|
||||
"type": "string"
|
||||
},
|
||||
"app": {
|
||||
|
||||
@ -2250,9 +2250,8 @@ pub struct Config {
|
||||
/// The application identifier in reverse domain name notation (e.g. `com.tauri.example`).
|
||||
/// This string must be unique across applications since it is used in system configurations like
|
||||
/// the bundle ID and path to the webview data directory.
|
||||
/// This string must contain only alphanumeric characters (A–Z, a–z, and 0–9), hyphens (-),
|
||||
/// This string must contain only alphanumeric characters (A-Z, a-z, and 0-9), hyphens (-),
|
||||
/// and periods (.).
|
||||
#[serde(default)]
|
||||
pub identifier: String,
|
||||
/// The App configuration.
|
||||
#[serde(default)]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user