2021-04-22 12:22:01 +01:00
{
2022-05-19 08:36:04 +02:00
"$schema" : "https://json.schemastore.org/template.json" ,
2022-02-23 23:20:13 +01:00
"author" : "Umbraco HQ" ,
"classifications" : [
"Web" ,
"CMS" ,
"Umbraco"
] ,
"name" : "Umbraco Project" ,
2022-05-19 08:36:04 +02:00
"description" : "An empty Umbraco project ready to get started." ,
2022-02-23 23:20:13 +01:00
"groupIdentity" : "Umbraco.Templates.UmbracoProject" ,
"identity" : "Umbraco.Templates.UmbracoProject.CSharp" ,
"shortName" : "umbraco" ,
"tags" : {
"language" : "C#" ,
"type" : "project"
} ,
"sourceName" : "UmbracoProject" ,
"defaultName" : "UmbracoProject1" ,
"preferNameDirectory" : true ,
2024-08-26 11:21:02 +02:00
"additionalConfigFiles" : [ "starterkits.template.json" ] ,
2022-05-19 08:36:04 +02:00
"sources" : [
{
"modifiers" : [
{
"condition" : "(ExcludeGitignore)" ,
"exclude" : [
".gitignore"
]
2024-08-26 11:21:02 +02:00
} ,
{
"condition" : "(!Docker)" ,
"exclude" : [
"Dockerfile" ,
".dockerignore"
]
2022-05-19 08:36:04 +02:00
}
]
}
] ,
2022-02-23 23:20:13 +01:00
"symbols" : {
"Framework" : {
"displayName" : "Framework" ,
"description" : "The target framework for the project." ,
"type" : "parameter" ,
"datatype" : "choice" ,
"choices" : [
2021-04-22 12:22:01 +01:00
{
2024-07-01 09:17:48 +02:00
"displayName" : ".NET 9.0" ,
"description" : "Target net9.0" ,
"choice" : "net9.0"
2021-04-22 12:22:01 +01:00
}
2022-02-23 23:20:13 +01:00
] ,
2024-07-01 09:17:48 +02:00
"defaultValue" : "net9.0" ,
"replaces" : "net9.0"
2022-02-23 23:20:13 +01:00
} ,
2024-08-26 11:21:02 +02:00
"UmbracoRelease" : {
"displayName" : "Umbraco Version" ,
"description" : "The Umbraco release to use, either latest or latest long term supported" ,
"type" : "parameter" ,
"datatype" : "choice" ,
"defaultValue" : "Latest" ,
"choices" : [
{
"choice" : "Latest" ,
"description" : "The latest umbraco release"
} ,
{
"choice" : "LTS" ,
"description" : "The most recent long term supported version" ,
"displayName" : "Long Term Supported"
}
] ,
"isRequired" : false
} ,
2022-02-23 23:20:13 +01:00
"UmbracoVersion" : {
2024-08-26 11:21:02 +02:00
"displayName" : "Custom Version" ,
"description" : "The selected custom version of Umbraco, this is obsoleted, and will be removed in a future version of the template." ,
2022-02-23 23:20:13 +01:00
"type" : "parameter" ,
"datatype" : "string" ,
2024-08-26 11:21:02 +02:00
"defaultValue" : "null" ,
"replaces" : "CUSTOM_VERSION" ,
"isRequired" : false
} ,
2025-09-29 15:07:30 +00:00
"FinalVersion" : {
2024-08-26 11:21:02 +02:00
"type" : "generated" ,
"generator" : "switch" ,
"datatype" : "text" ,
"description" : "The calculated version of Umbraco to use" ,
"replaces" : "UMBRACO_VERSION_FROM_TEMPLATE" ,
"parameters" : {
"evaluator" : "C++" ,
"datatype" : "text" ,
"cases" : [
{
"condition" : "(UmbracoRelease == 'Latest')" ,
2024-11-28 12:25:53 +01:00
"value" : "*"
2024-08-26 11:21:02 +02:00
} ,
{
"condition" : "(UmbracoRelease == 'LTS')" ,
2025-09-04 08:08:35 +02:00
"value" : "17.0.0"
2024-08-26 11:21:02 +02:00
}
]
}
} ,
2025-09-29 15:07:30 +00:00
"DotnetVersion" : {
2024-08-26 11:21:02 +02:00
"type" : "generated" ,
"generator" : "switch" ,
"datatype" : "text" ,
2024-10-02 09:08:30 +02:00
"description" : "Used to calculate the dotnet version to use, for latest we want to use dotnet 9 and for LTS we want to use dotnet 8" ,
2024-08-26 11:21:02 +02:00
"replaces" : "DOTNET_VERSION_FROM_TEMPLATE" ,
"parameters" : {
"evaluator" : "C++" ,
"datatype" : "text" ,
"cases" : [
{
2024-10-02 09:08:30 +02:00
"condition" : "(UmbracoRelease == 'Latest')" ,
2025-09-04 08:08:35 +02:00
"value" : "net10.0"
2024-10-02 09:08:30 +02:00
} ,
{
"condition" : "(UmbracoRelease == 'LTS')" ,
2025-09-04 08:08:35 +02:00
"value" : "net10.0"
2024-08-26 11:21:02 +02:00
}
]
}
2022-02-23 23:20:13 +01:00
} ,
"UseHttpsRedirect" : {
"displayName" : "Use HTTPS redirect" ,
"description" : "Adds code to Startup.cs to redirect HTTP to HTTPS and enables the UseHttps setting." ,
"type" : "parameter" ,
"datatype" : "bool" ,
"defaultValue" : "false"
} ,
2024-08-26 11:21:02 +02:00
"UseDeliveryApi" : {
"displayName" : "Use Delivery API" ,
"description" : "Enables the Delivery API" ,
"type" : "parameter" ,
"datatype" : "bool" ,
"defaultValue" : "false"
} ,
"Docker" : {
"displayName" : "Add Docker file" ,
"description" : "Adds a docker file to the project." ,
"type" : "parameter" ,
"datatype" : "bool" ,
"defaultValue" : "false"
} ,
2022-02-23 23:20:13 +01:00
"SkipRestore" : {
"displayName" : "Skip restore" ,
"description" : "If specified, skips the automatic restore of the project on create." ,
"type" : "parameter" ,
"datatype" : "bool" ,
"defaultValue" : "false"
} ,
2022-05-19 08:36:04 +02:00
"ExcludeGitignore" : {
"displayName" : "Exclude .gitignore" ,
"description" : "Whether to exclude .gitignore from the generated template." ,
2022-02-23 23:20:13 +01:00
"type" : "parameter" ,
2022-05-19 08:36:04 +02:00
"datatype" : "bool" ,
"defaultValue" : "false"
2022-02-23 23:20:13 +01:00
} ,
2022-05-19 08:36:04 +02:00
"MinimalGitignore" : {
"displayName" : "Minimal .gitignore" ,
"description" : "Whether to only include minimal (Umbraco specific) rules in the .gitignore." ,
"type" : "parameter" ,
"datatype" : "bool" ,
"defaultValue" : "false"
} ,
"ConnectionString" : {
"displayName" : "Connection string" ,
"description" : "Database connection string used by Umbraco." ,
"type" : "parameter" ,
"datatype" : "string" ,
"defaultValue" : "" ,
"forms" : {
"global" : [
"jsonEncode"
2022-02-23 23:20:13 +01:00
]
} ,
2022-05-19 08:36:04 +02:00
"replaces" : "CONNECTION_STRING_FROM_TEMPLATE"
2022-02-23 23:20:13 +01:00
} ,
2022-05-19 08:36:04 +02:00
"ConnectionStringProviderName" : {
"displayName" : "Connection string provider name" ,
"description" : "Database connection string provider name used by Umbraco." ,
2022-02-23 23:20:13 +01:00
"type" : "parameter" ,
"datatype" : "string" ,
2022-05-19 08:36:04 +02:00
"defaultValue" : "Microsoft.Data.SqlClient" ,
"forms" : {
"global" : [
"jsonEncode"
]
} ,
"replaces" : "CONNECTION_STRING_PROVIDER_NAME_FROM_TEMPLATE"
} ,
"HasConnectionString" : {
"type" : "computed" ,
"value" : "(ConnectionString != '')"
} ,
"DevelopmentDatabaseType" : {
"displayName" : "Development database type" ,
"description" : "Database type used by Umbraco for development." ,
"type" : "parameter" ,
"datatype" : "choice" ,
"choices" : [
{
"displayName" : "None" ,
"description" : "Do not configure a database for development." ,
"choice" : "None"
} ,
{
"displayName" : "SQLite" ,
"description" : "Use embedded SQLite database." ,
"choice" : "SQLite"
} ,
{
"displayName" : "SQL Server Express LocalDB" ,
"description" : "Use embedded LocalDB database (requires SQL Server Express with Advanced Services)." ,
"choice" : "LocalDB"
}
] ,
"defaultValue" : "None"
2022-02-23 23:20:13 +01:00
} ,
2022-05-19 08:36:04 +02:00
"DevelopmentConnectionString" : {
2022-02-23 23:20:13 +01:00
"type" : "generated" ,
2022-05-19 08:36:04 +02:00
"datatype" : "string" ,
"generator" : "switch" ,
2022-02-23 23:20:13 +01:00
"parameters" : {
2022-05-19 08:36:04 +02:00
"cases" : [
2022-02-23 23:20:13 +01:00
{
2022-05-19 08:36:04 +02:00
"condition" : "(DevelopmentDatabaseType == 'SQLite')" ,
"value" : "Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True"
2022-02-23 23:20:13 +01:00
} ,
{
2022-05-19 08:36:04 +02:00
"condition" : "(DevelopmentDatabaseType == 'LocalDB')" ,
"value" : "Data Source=(localdb)\\\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\\\Umbraco.mdf;Integrated Security=True"
2022-02-23 23:20:13 +01:00
}
]
} ,
2022-05-19 08:36:04 +02:00
"replaces" : "CONNECTION_STRING_DEVELOPMENT_FROM_TEMPLATE"
2022-02-23 23:20:13 +01:00
} ,
2022-05-19 08:36:04 +02:00
"DevelopmentConnectionStringProviderName" : {
2022-02-23 23:20:13 +01:00
"type" : "generated" ,
2022-05-19 08:36:04 +02:00
"datatype" : "string" ,
"generator" : "switch" ,
2022-02-23 23:20:13 +01:00
"parameters" : {
2022-05-19 08:36:04 +02:00
"cases" : [
2022-02-23 23:20:13 +01:00
{
2022-05-19 08:36:04 +02:00
"condition" : "(DevelopmentDatabaseType == 'SQLite')" ,
2022-06-30 15:30:42 +02:00
"value" : "Microsoft.Data.Sqlite"
2022-02-23 23:20:13 +01:00
} ,
{
2022-05-19 08:36:04 +02:00
"condition" : "(true)" ,
"value" : "Microsoft.Data.SqlClient"
2022-02-23 23:20:13 +01:00
}
]
} ,
2022-05-19 08:36:04 +02:00
"replaces" : "CONNECTION_STRING_PROVIDER_NAME_DEVELOPMENT_FROM_TEMPLATE"
2022-02-23 23:20:13 +01:00
} ,
2022-05-19 08:36:04 +02:00
"HasDevelopmentConnectionString" : {
"type" : "computed" ,
"value" : "(DevelopmentConnectionString != '')"
} ,
"UnattendedUserName" : {
"displayName" : "Unattended user name" ,
"description" : "Used to specify the name of the default admin user when using unattended install on development (stored as plain text)." ,
2022-02-23 23:20:13 +01:00
"type" : "parameter" ,
"datatype" : "string" ,
2022-05-19 08:36:04 +02:00
"defaultValue" : "" ,
"forms" : {
"global" : [
"jsonEncode"
]
} ,
"replaces" : "UNATTENDED_USER_NAME_FROM_TEMPLATE"
2022-02-23 23:20:13 +01:00
} ,
2022-05-19 08:36:04 +02:00
"UnattendedUserEmail" : {
"displayName" : "Unattended user email" ,
"description" : "Used to specify the email of the default admin user when using unattended install on development (stored as plain text)." ,
"type" : "parameter" ,
"datatype" : "string" ,
"defaultValue" : "" ,
"forms" : {
"global" : [
"jsonEncode"
2022-02-23 23:20:13 +01:00
]
} ,
2022-05-19 08:36:04 +02:00
"replaces" : "UNATTENDED_USER_EMAIL_FROM_TEMPLATE"
2022-02-23 23:20:13 +01:00
} ,
2022-05-19 08:36:04 +02:00
"UnattendedUserPassword" : {
"displayName" : "Unattended user password" ,
"description" : "Used to specify the password of the default admin user when using unattended install on development (stored as plain text)." ,
"type" : "parameter" ,
"datatype" : "string" ,
"defaultValue" : "" ,
"forms" : {
"global" : [
"jsonEncode"
]
} ,
"replaces" : "UNATTENDED_USER_PASSWORD_FROM_TEMPLATE"
2022-02-23 23:20:13 +01:00
} ,
2025-09-29 15:07:30 +00:00
"UnattendedTelemetryLevel" : {
"displayName" : "Unattended telemetry level" ,
"description" : "Specifies the level of telemetry information the installation will report." ,
"type" : "parameter" ,
"datatype" : "choice" ,
"defaultValue" : "Detailed" ,
"choices" : [
{
"choice" : "Minimal" ,
"description" : "Minimal information"
} ,
{
"choice" : "Basic" ,
"description" : "Basic information"
} ,
{
"choice" : "Detailed" ,
"description" : "Detailed information"
}
] ,
"forms" : {
"global" : [
"jsonEncode"
]
} ,
"replaces" : "UNATTENDED_TELEMETRY_LEVEL_FROM_TEMPLATE"
} ,
2022-02-23 23:20:13 +01:00
"UsingUnattenedInstall" : {
"type" : "computed" ,
2022-05-19 08:36:04 +02:00
"value" : "(UnattendedUserName != '' && UnattendedUserEmail != '' && UnattendedUserPassword != '' && (HasConnectionString || HasDevelopmentConnectionString))"
2022-02-23 23:20:13 +01:00
} ,
"NoNodesViewPath" : {
"displayName" : "No nodes view path" ,
2022-05-19 08:36:04 +02:00
"description" : "Path to a custom view presented with the Umbraco installation contains no published content." ,
2022-02-23 23:20:13 +01:00
"type" : "parameter" ,
"datatype" : "string" ,
2022-05-19 08:36:04 +02:00
"defaultValue" : "" ,
"forms" : {
"global" : [
"jsonEncode"
2022-02-23 23:20:13 +01:00
]
} ,
"replaces" : "NO_NODES_VIEW_PATH_FROM_TEMPLATE"
} ,
"HasNoNodesViewPath" : {
"type" : "computed" ,
2022-05-19 08:36:04 +02:00
"value" : "(NoNodesViewPath != '')"
2022-02-23 23:20:13 +01:00
} ,
"PackageProjectName" : {
"displayName" : "Umbraco package project name" ,
"description" : "The name of the package project this should be a test site for." ,
"type" : "parameter" ,
"datatype" : "string" ,
"defaultValue" : "" ,
"replaces" : "PACKAGE_PROJECT_NAME_FROM_TEMPLATE"
} ,
2024-08-26 11:21:02 +02:00
"DevelopmentMode" : {
"type" : "parameter" ,
"displayName" : "Development mode" ,
"datatype" : "choice" ,
"description" : "Choose the development mode to use for the project." ,
"defaultValue" : "BackofficeDevelopment" ,
"choices" : [
{
"choice" : "BackofficeDevelopment" ,
"description" : "Enables backoffice development, allowing you to develop from within the backoffice, this is the default behaviour." ,
"displayName" : "Backoffice Development"
} ,
{
"choice" : "IDEDevelopment" ,
"description" : "Configures appsettings.Development.json to Development runtime mode and SourceCodeAuto models builder mode, and configures appsettings.json to Production runtime mode, Nothing models builder mode, and enables UseHttps" ,
"displayName" : "IDE Development"
}
]
} ,
"ModelsBuilderMode" : {
"type" : "parameter" ,
"displayName" : "Models builder mode" ,
"datatype" : "choice" ,
"description" : "Choose the models builder mode to use for the project. When development mode is set to IDEDevelopment this only changes the models builder mode appsetttings.development.json" ,
"defaultValue" : "Default" ,
"replaces" : "MODELS_MODE" ,
"choices" : [
{
"choice" : "Default" ,
"description" : "Let DevelopmentMode determine the models builder mode."
} ,
{
"choice" : "InMemoryAuto" ,
"description" : "Generate models in memory, automatically updating when a content type change, this means no need for app rebuild, however models are only available in views." ,
"displayName" : "In Memory Auto"
} ,
{
"choice" : "SourceCodeManual" ,
"description" : "Generate models as source code, only updating when requested manually, this means a interaction and rebuild is required when content type(s) change, however models are available in code." ,
"displayName" : "Source Code Manual"
} ,
{
"choice" : "SourceCodeAuto" ,
"description" : "Generate models as source code, automatically updating when a content type change, this means a rebuild is required when content type(s) change, however models are available in code." ,
"displayName" : "Source Code Auto"
} ,
{
"choice" : "Nothing" ,
"description" : "No models are generated, this is recommended for production assuming generated models are used for development."
}
]
} ,
2022-05-19 08:36:04 +02:00
"Namespace" : {
"type" : "derived" ,
"valueSource" : "name" ,
"valueTransform" : "safe_namespace" ,
2022-02-23 23:20:13 +01:00
"replaces" : "Umbraco.Cms.Web.UI"
} ,
"HttpPort" : {
"type" : "generated" ,
"generator" : "port" ,
"parameters" : {
"fallback" : 5000
} ,
"replaces" : "HTTP_PORT_FROM_TEMPLATE"
} ,
"HttpsPort" : {
"type" : "generated" ,
"generator" : "port" ,
"parameters" : {
"low" : 44300 ,
"high" : 44399 ,
"fallback" : 5001
} ,
"replaces" : "HTTPS_PORT_FROM_TEMPLATE"
} ,
"TelemetryId" : {
"type" : "generated" ,
"generator" : "guid" ,
2022-02-24 10:21:15 +01:00
"parameters" : {
"defaultFormat" : "d"
} ,
2022-02-23 23:20:13 +01:00
"replaces" : "TELEMETRYID_FROM_TEMPLATE"
}
} ,
"primaryOutputs" : [
{
"path" : "UmbracoProject.csproj"
}
] ,
"postActions" : [
{
"condition" : "(!SkipRestore)" ,
"description" : "Restore NuGet packages required by this project" ,
"manualInstructions" : [
{
"text" : "Run 'dotnet restore'"
2021-04-22 12:22:01 +01:00
}
2022-02-23 23:20:13 +01:00
] ,
"actionId" : "210D431B-A78B-4D2F-B762-4ED3E3EA9025" ,
"continueOnError" : true
2021-04-22 12:22:01 +01:00
}
2022-02-23 23:20:13 +01:00
]
2021-04-22 12:22:01 +01:00
}