Community Package: Umbraco 17 Tag Manager now available

Tag Manager has been updated for Umbraco 17. It adds a dedicated section in the Umbraco for managing all your tags - edit, delete, create, and clean up duplicates without digging through content nodes.

This one has been a team effort over the versions - #h5yr :high-5-you-rock: to @NigelAtOptimised for the original package #friendly, @huwred for helping refactor and fix core issues during v13, and @Lantzify for the v13 PR improving the project structure and overview UI. Appreciated all around.

Previous versions available for v7, v8, and v13. Open to suggestions and collaboration as always PRs and feedback welcome.:umbraco-heart:

This sounds like a really great package to have when using tags and I just saw that it got updated for Umbraco 17. We’re running Umbraco 17.2.0 (Cloud) right now.

However, I get the following error locally when running after adding it with dotnet add package, any idea why? I’m the only user and I have no special user groups added, just the default. Running on MacOS.

[16:09:20 INF] Starting ‘UsomeTagManagerMigrationv1’…
[16:09:20 INF] At origin
[16:09:20 INF] Execute InstallHelper
[16:09:20 ERR] Exception (12bd8ddd).
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: ‘near “umbracoUserGroup2App”: syntax error’.
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements()+MoveNext()
at Microsoft.Data.Sqlite.SqliteCommand.GetStatements()+MoveNext()
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
at Umbraco.Cms.Persistence.Sqlite.Services.SqlitePreferDeferredTransactionsConnection.CommandWrapper.ExecuteNonQuery()
at StackExchange.Profiling.Data.ProfiledDbCommand.ExecuteNonQuery() in C:\projects\dotnet\src\MiniProfiler.Shared\Data\ProfiledDbCommand.cs:line 263
at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.b__32_0()
at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.<>c__DisplayClass38_01.<Execute>b__0() at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func1 func)
at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.Execute[T](Func1 f) at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.ExecuteNonQuery() at NPoco.Database.<>c__DisplayClass338_0.<ExecuteNonQueryHelper>b__0() at NPoco.Database.ExecutionHook[T](Func1 action)
at NPoco.Database.ExecuteNonQueryHelper(DbCommand cmd)
at NPoco.Database.Execute(String sql, CommandType commandType, Object args)
at NPoco.Database.Execute(Sql Sql)
at NPoco.Database.Execute(String sql, Object args)
at Umbraco_Tag_Manager.InstallHelper.Migrate()
at Umbraco.Cms.Infrastructure.Migrations.MigrationBase.MigrateAsync()
at Umbraco.Cms.Infrastructure.Migrations.AsyncMigrationBase.RunAsync()
at Umbraco.Cms.Infrastructure.Migrations.MigrationPlanExecutor.RunMigrationAsync(Type migrationType, MigrationContext context)
at Umbraco.Cms.Infrastructure.Migrations.MigrationPlanExecutor.RunScopedMigrationAsync(Transition transition, MigrationPlan plan)
at Umbraco.Cms.Infrastructure.Migrations.MigrationPlanExecutor.RunMigrationPlanAsync(MigrationPlan plan, String fromState)
[16:09:20 ERR] Plan UsomeTagManagerMigrationv1 failed at step UsomeTagManagerMigrationv1-db
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: ‘near “umbracoUserGroup2App”: syntax error’.
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements()+MoveNext()
at Microsoft.Data.Sqlite.SqliteCommand.GetStatements()+MoveNext()
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
at Umbraco.Cms.Persistence.Sqlite.Services.SqlitePreferDeferredTransactionsConnection.CommandWrapper.ExecuteNonQuery()
at StackExchange.Profiling.Data.ProfiledDbCommand.ExecuteNonQuery() in C:\projects\dotnet\src\MiniProfiler.Shared\Data\ProfiledDbCommand.cs:line 263
at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.b__32_0()
at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.<>c__DisplayClass38_01.<Execute>b__0() at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func1 func)
at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.Execute[T](Func1 f) at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.ExecuteNonQuery() at NPoco.Database.<>c__DisplayClass338_0.<ExecuteNonQueryHelper>b__0() at NPoco.Database.ExecutionHook[T](Func1 action)
at NPoco.Database.ExecuteNonQueryHelper(DbCommand cmd)
at NPoco.Database.Execute(String sql, CommandType commandType, Object args)
at NPoco.Database.Execute(Sql Sql)
at NPoco.Database.Execute(String sql, Object args)
at Umbraco_Tag_Manager.InstallHelper.Migrate()
at Umbraco.Cms.Infrastructure.Migrations.MigrationBase.MigrateAsync()
at Umbraco.Cms.Infrastructure.Migrations.AsyncMigrationBase.RunAsync()
at Umbraco.Cms.Infrastructure.Migrations.MigrationPlanExecutor.RunMigrationAsync(Type migrationType, MigrationContext context)
at Umbraco.Cms.Infrastructure.Migrations.MigrationPlanExecutor.RunScopedMigrationAsync(Transition transition, MigrationPlan plan)
at Umbraco.Cms.Infrastructure.Migrations.MigrationPlanExecutor.RunMigrationPlanAsync(MigrationPlan plan, String fromState)

hey @rolfis

ur not by chance using the beta version right>

that is not supposed to happen, on v17.0.0

would it be possible to report this at : GitHub · Where software is built

and tag me @BishalTimalsina12 i will check this issue

thanks for using TagManager

Created issue at SQLite Error 1: ‘near “umbracoUserGroup2App”: syntax error’ when running after install · Issue #1 · ZAAKS/Umbraco-Tag-Manager · GitHub

All the best,
Rolf

We are developing a similar package to meet some extra needs:

  • Permissions have been added to User / User Group to enable or restrict “adding new tags” and access to the “Tag manager” dashboard.
  • A new property editor for tags has been introduced that enforces these permissions, allowing editors without permission only to add existing tags, while those with permission can add new tags.

Our client was okay leaving the OOTB tag property alone and not wiring up notification handlers to verify on save/publish. So we were able to scope this new functionality to just a new “clone” of the already existing editor.

Would you consider these to be in-scope / welcome additions?

All the best,

Hi @markadrake

Thanks for sharing this that sounds like a really valuable addition :+1:

I’d absolutely be open to collaboration or a PR happy to discuss how we can integrate it cleanly into TagManager.

All the best :raising_hands:

/Bishal

Any plans on making this package work with umbraco 18 @BishalTimalsina12 ?

This looks like a nice package! One check. I see this in the marketplace:

It says that the package is also available for Umbraco 18, but because you have your latest version on 17.0.8, I don’t think you already planned to create a v18 version. If you want to align your major version with the Umbraco major versions, you should have a version ceiling of 17.999999. Because if you only have a floor, the marketplace will also say that it works on v19 when it comes out.