Our blog contains the activity stream of Orchard Dojo: general news, new resources or tutorials are announced here.

Content Tree Module, Orchard Core Admin UI experience renewal survey - This week in Orchard (06/06/2025)

This time, you can see a fascinating demo of the Content Tree Module! But first, let's look at our other topics, like adding GraphQL support for querying content items by status from the Content Picker Field, fixing binding form input in the Coming Soon theme, and improving the Register User Task. Don't forget to fill out our Orchard Core Admin UI experience renewal survey to help shape the future of Orchard Core!

Featured tags

IIS
API
SMS
SEO
MCP
All tags >

Build Version Display module, prevent Users feature from breaking when Roles feature is disabled - This week in Orchard (27/01/2023)

Add permission check for the content type filter, prevent the Users feature from breaking when the Roles feature is disabled, add new database options, and a demo about the new Build Version Display module! Check out our post for the details! Orchard Core updates Add permission check for content type filter The content type filter should only show accessible content types. The user should only see content types that they can view. Before this fix, all of the content types were listed, even if you don't have permission to see it. Let's say that I am an editor user who has no access to view the Blog content type. In this case, when this user navigates to Content -> Content Items and clicks on the content type filter, the predefined Blog content item will not appear in the list. Prevent the Users feature from breaking when the Roles feature is disabled This was an old issue in Orchard Core if you disable the Roles module, the site crashes because the Users module needs the following services to work: IRoleService RoleManager IRoleStore This issue is now fixed, and you can disable the Roles module from the UI without facing an error. You can find the implementation details in this pull request, thanks to Mike Alhayek! Add database options like TablePrefixSeparator, Schema, IdentityColumnType, and DocumentTable Here is a summary of the changes: both TableNameConvention and TablePrefixSeparator were removed from YesSqlOptions. The following properties were added to the ShellSettings of each tenant: TablePrefixSeparator when this value does not exist, we assume _, however, if an empty string is found, we use no prefix for the tables. Schema was added to allow you to provide a specific schema to use. IdentityColumnSize when this value is empty or invalid, we assume Int64. DocumentTable when this value is empty, we assume Document. If adding a new tenant failed due to missing Encrypt=false or TrustServerCertificate=True, we add the error to the log file to provide the admin with more about the issue. The following means that now you can find a new section in the configuration called OrchardCore_Data_TableOptions. Now you can define the name of the Document table if you want to change it, change the table name separator (changing the _ in tenant1_tablename), and the default identity column size, which is Int64 by default. Every existing tenant will work with Int32, but the new tenants will use Int64. It can happen because YesSql now supports Int64 as well. You can find some new lines about these settings in the documentation as well. If you want to migrate the existing tenants, you have to do your own migration. You can also define the schema of the tenant (DatabaseSchema) which is also configurable from the UI. This way all the table names are the same, just the schema that could be changed for each tenant. Demos Lombiq Hosting - Build Version Display The goal of the Lombiq Hosting - Build Version Display for Orchard Core module is to display the build version (i.e., .NET assembly version or other) on the admin of the Default tenant. By using this module, you can see at a glance which version of the app is deployed. But of course, there are various ways to know what's currently deployed into a specific environment (like staging or production), but the goal of this module is to cover the following use case: when you are looking at the app, you will know what's there. The only thing you have to do is to install the module, and navigate to Configuration -> Features, and enable the Lombiq Hosting - Build Version Display feature. After you navigate to the homepage of the admin UI, you will see the following on the dashboard. You can find the Orchard Core version, the version of the .NET assembly is currently being executed, which means the web application. If you have a CI build, usually that will generate a version number for you. And finally, during the build, you can also add a link to the build. This is just a dummy link for examples, but you can link to a GitHub action. You can read more about it in the Readme file of the module. Do you want to quickly try out this project and see it in action? Check it out in our Open-Source Orchard Core Extensions full Orchard Core solution, and also see our other useful Orchard Core-related open-source projects! And as always, if you want to know more about this feature, head to YouTube for a recording! News from the community Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 396 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Orchard Harvest updates, fix Bag Part when content type is deleted - This week in Orchard (20/01/2023)

Fix Bag Part when the content type is deleted, add .webp as a default image extension in MediaOptions, Fluid 2.3.1, and updates about the upcoming Orchard Harvest! Check out our post for the details! Orchard Core updates Fix Bag Part when the content type is deleted When you set up your site using the built-in Agency recipe, you will get a content type with a display name Landing Page. This content type has several Bag Parts attached, and by using these Bag Parts you can add several projects, services, team members, etc., to this page which you can use to customize the landing page of your agency. For example, to be able to add services, we have a predefined Service content type. But what will happen if we delete the content definition of the Service content type under Content -> Content Definition -> Content Types? Our Landing Page has a Bag Part that contains Service content items, but now we removed the content definition of that content type. So, if you try to edit the built-in Landing Page content item, you will see the following warnings in the editor (and warning entries in the log file). It means we added three Service content items, but now they have no matching content type definition. Add .webp as a default image extension in MediaOptions Until now, you can't upload .webp images by default. WebP is a modern image format that provides superior lossless and lossy compression for images on the web. Using WebP, webmasters, and web developers can create smaller, richer images that make the web faster. So, .webp should be an extension that is allowed by default, like the rest of the allowed image extensions. If you navigate to the MediaOptionsConfiguration class, you will find the .webp extension here as an allowed file extension by default. Fluid 2.3.1 The latest version of Fluid is 2.3.1, which contains a fix for the TimeZone parsing. Meaning when you use a DateTime with a TimeZone, the DateTime that will be created will also parse the TimeZone. If the TimeZone is not defined, then it will assume it's a local time zone based on the configuration. News from the community Orchard Harvest updates In our previous post, we shared the results of the Orchard Harvest survey, and recently we have just posted it to GitHub too. As you can see from this post, the shortlisted locations in Europe are Lisbon, Amsterdam, Frankfurt, and Barcelona. We have also received offers from Las Vegas and possibly Chicago in the USA. The goal of this post is to emphasize that we are not looking for a venue in the first instance, but for an organizer who can manage the venue and help run the whole thing. If you have any contacts in any of these cities who are specifically organizing events, please let us know! Any help is very much appreciated! If you can offer us a contact or location, we will be happy to arrange further details. Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 397 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who you think would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Media Theme for Orchard Core, Orchard Harvest survey results - This week in Orchard (13/01/2023)

Fixing that FlowPart's widgets are not indexed in Lucene, migrating the OpenID module to OpenIddict 4.0, demo about the new Media Theme, and announcing the results of the Orchard Harvest survey! Check out our post for the details! Orchard Core updates Fix FlowPart's widgets were not indexed in Lucene FlowPart's widgets were not indexed with Lucene (even with all the necessary settings on the Parts and Indexes). Marco Serralheiro added a FlowPartIndexHandler that is basically a clone of the BagPartIndexHandler to solve this issue. Migrate the OpenID module to OpenIddict 4.0 This is about updating the OpenID module to use OpenIddict 4.0 RTM, which shipped in December. The previous versions - including OpenIddict 3.x - are no longer supported. While OpenIddict 4.x itself has many internal improvements, the "public" API hasn't changed much so the changes here are mostly cosmetic. If you want to know more about the latest version of OpenIddict, check out this great post from Kévin Chalet! Demos Lombiq Hosting - Media Theme for Orchard Core The Lombiq Hosting - Media Theme for Orchard Core repository contains an open-source project which will allow developers to host their themes in the Orchard Core Media Library, including templates and assets. The inspiration came from our public Orchard (Core) SaaS called DotNest. If you don't know it, you can use this site to sign up and get an Orchard (Core) site with two clicks for everyone. We don't vet who is signing up, so it should be safe, and it should be limited. But still, we want people to be able to have their sites as flexible as possible. And of course, there are a lot of built-in features in Orchard for that, you can do a lot from the admin. Part of the things you can do from the admin as well in a limited fashion is theming. There is the Templates module, if the developer or the operator of the application allows it then you can also upload CSS files and do all kinds of tricks. In the end, you can adjust the styling of your website. But we wanted to have something closer to the usual developer experience. And that is pretty much creating a theme for your DotNest site with the help of Media Theme for a tenant in a Saas, and that's what media theming is about. We have documentation about that here which contains a link to the DotNest Core SDK. This is what we will use in this demo! We also have automatic deployments either from the command line or from a GitHub Actions action if you will. You can fork the SDK or can work with an Orchard Core-based solution and create a theme (it needs to use Liquid). When you are satisfied, you can either create an import package by using the .NET Command line tool or, you can use Orchard Core's remote deployment feature to import the package on your production site. Or you can also use our GitHub Actions to deploy your theme. If you would like to try it out in your own SaaS, feel free, and if you have questions, please let us know! If you would like to have a DotNest site and use this feature, just sign up here! And of course, don't forget to check out this recording on YouTube to see the usage of the Media Theme in a site runs in DotNest! News from the community New websites using Orchard Core: the site of Capri Exclusive Homeware and the site of BagPortr Capri's purpose is to provide high-quality homeware to everyone, and BagPortr collects your baggage from your doorstep and checks it onto your flight. Both sites were developed by Gert Smith. If you are interested in more websites using Orchard and Orchard Core, don't forget to visit Show Orchard. Show Orchard is a website for showing representative Orchard CMS (and now Orchard Core) websites all around the internet. It was started by Ryan Drew Burnett, but since he doesn't work with Orchard anymore, as announced earlier, it is now maintained by our team at Lombiq Technologies. Orchard Harvest 2023 survey results For those too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should really think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. We created a survey, and now we have the results! Thank you for your feedback so far regarding Orchard Harvest! We have received a significant number of responses so far which has helped us to get a better idea of the right place and time. We have created a Discussion in GitHub where we described the possible dates and locations of the upcoming conference. Mike Alhayek also reached us saying he may have the right contact needed to facilitate the event in Las Vegas. Thanks, Mike! As we move forward, we will keep community members informed of the details, and you will also find every detail in this newsletter too! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 392 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

User Notifications Improvements, introduce AddUsers extension method - This week in Orchard (06/01/2023)

Happy New Year everyone! Let's start this year with the improvements of the User Notifications feature, new Orchard Core sites, and of course, the latest fixes and improvements for Orchard Core. Check out our post for the details! Orchard Core updates Move role creation into the recipe instead of feature activation Features should not decide which roles are created but only the recipes. Features can decide what are the default permissions for a named role if the role exists. So, here is a summary of the enhancements this brings: We can now use recipe steps to explicitly list the roles we want to use for the site. We are no longer forced to use the default roles. If a role is deleted, it won't come back at some point after installing new features. Currently, even if we delete a role, it could come back after installing more features. If the Roles feature is disabled and re-enabled later, we keep track of permissions history to automatically assign any permission that would not have been assigned previously while the Roles feature is disabled. If an enabled feature introduces new permissions, it'll now get assigned to the proper roles by default "if these roles exist". Introduce the AddUsers extension method This change is about refactoring the logic that adds the specified user-related services to the collection. This is handy if we use OrchardCore.Users outside Orchard Core, something similar to AddPortableObjectLocalization, which registers the required services. Demos User Notifications Improvements The goal of the User Notifications module is to push notifications to the user, meaning notify the user somehow. There are many ways you can notify a user, one of them being a web notification, you can do SMS, you can do push to a mobile application, etc. We wrote about this new feature a few weeks ago in this post. If you head to Configuration -> Features and enable the Email Notifications and Notifications features, you will have a way to notify users and send email notifications to them. You can send notifications using workflows, but you can send them from code of course. The following workflow notifies the owner of the blog post when a blog post is published or deleted. It also notifies the user if the account of the given user is enabled, for example. You can see a bell icon near the Dark mode icon at the top right. If you click on that icon, you will see a list that shows you all of the notifications you have right now. You can click on them to mark them as read, or you can click on All Notifications at the bottom, which will redirect you to the page where you can see all of your notifications. And that's not everything! If you would like to know more, don't forget to check out this recording on YouTube! And if you want to try out this feature for yourself, now you can find the Notifications feature in the preview build of Orchard Core! News from the community New websites using Orchard Core: the site of the game called Transformers: Reactivate and the careers site of Splash Damage Transformers: Reactivate is a 1-4 player online action game developed by Splash Damage, coming to PC & consoles. Splash Damage worked on some of the biggest franchises in the world, with the likes of Batman, Halo, Gears of War, and now Transformers getting the Splash Damage treatment. Check out their careers site here! If you are interested in more websites using Orchard and Orchard Core, don't forget to visit Show Orchard. Show Orchard is a website for showing representative Orchard CMS (and now Orchard Core) websites all around the internet. It was started by Ryan Drew Burnett, but since he doesn't work with Orchard anymore, as announced earlier, it is now maintained by our team at Lombiq Technologies. Orchard Harvest 2023 For those too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should really think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. If you have any feedback or are looking forward to having a Harvest again, please share your opinion by filling out this survey about the upcoming Orchard Harvest! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 394 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Fluid.Core 2.3.0, add Content Field handlers to enforce validation in the content API - This week in Orchard (23/12/2022)

Fluid.Core 2.3.0, add Content Field handlers to enforce validation in the content API, and please help the community to decide whether to merge the Responsive Admin Theme or not. Check out our last post for this year! Orchard Core updates Fluid.Core 2.3.0 The 2.3.0 version of Fluid.Core is here and merged into Orchard Core. Let's see some of the important changes in this version! The first one is adding support for TimeSpan. Now, if you have a C# TimeSpan object that you pass in a model, it's converted to a DateTime starting from 1970. The second one is adding replace_last and remove_last filters. These are standard Liquid filters that can now be used in Fluid as well. Fluid now targets .NET 7.0. When you go to NuGet.org and search for the Fluid.Core package, you will see that the latest version of this package now also targets .NET 7.0. Let's continue with the one about fixing the case/when tag multi-statements evaluation. In Shopify Liquid a case will return multiple expressions if multiple conditions are met. This can happen because a when can contain multiple values. In Fluid the first condition that is true will return the expression and then exit the case in the same manner that a SQL "case" works. If you check out this screenshot, you can see the Liquid behavior on the Shopify API. Now Fluid supports this behavior. Add Content Field handlers to enforce validation in the content API When creating content using the Contents API, the content is stored as the user sends it without any kind of validation. For example, if you create a type with a required TitlePart, and post a new item with no title, the content item gets created with no title. Here the goal was to implement the ValidatingAsync method in every part/field handler so that way, each part/field is validated against its own settings. Also, add field handlers to be called so we can validate fields. So, to summarize this addition, this is about adding a way to attach handlers for fields. For example: services.AddContentField<TextField>() .UseDisplayDriver<TextFieldDisplayDriver>() .AddHandler<TextFieldHandler>(); // this was added TitlePartHandler was modified to validate the part against the TitlePartSettings. New handlers were added: TextFieldHandler to validate a text field. One handler for each part/field will be added "if it does not exist" which would implement that ValidatingAsync(...) event. This would be part of a follow-up PR to ensure the team is in agreement with the approach and to reduce the code change. News from the community Help the community decide whether to merge the Responsive Admin Theme or not Last month you could see a demo of the Responsive Admin Theme where one can change the look of the forms. Now we need to decide whether we want to merge this PR or not for the reasons explained in the meeting where the feature was demoed (and also in the meeting on 12/20/2022). To vote please use reactions for this comment (not on a new comment please, but you can still comment on the PR on top of it). The limit for the vote will be January 3rd, 2023. Thank you! Christmas in Lombiq Sometimes we do stuff. Together. Not (just) in front of computer screens. These are some usual events in Lombiq that are all announced and arranged in advance. We periodically have an event called RnDay: this is a few hour-long event where we share with each other what we recently worked on and what we plan to do. E.g., If we recently finished a project, then the project's team members demo what they've done. We had our last RnDay for this year in the Aranytíz Budapest, which is an event space where we held this event. And at the end of the day, we visited a nearby restaurant to have dinner together. We would like to thank you all for reading our posts and making the Orchard community stronger together with us! We hope that we can give you valuable news and demos about the happenings around Orchard and Orchard Core from time to time by reading our posts and of course the This week in Orchard newsletter. We would like to wish everyone a Merry Christmas and a Happy New Year with some photos of our latest event! Orchard Harvest 2023 For those who are too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should really think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. If you have any feedback or you are looking forward to having a Harvest again, please share your opinion with us by filling out this survey about the upcoming Orchard Harvest! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 379 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who you think would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Content items Excel file import/export, add admin relative URL for admin menu nodes - This week in Orchard (16/12/2022)

Add Admin relative URL for admin menu nodes, add Alias to ValidationResult, and a demo about content items Excel file import/export. Check out our post for the details! Orchard Core updates Add /Admin relative URL for admin menu nodes If you enable the Admin Menu feature, you will be able to create custom admin menus. You can manage admin menus under Configuration -> Admin Menus. The admin menu consists of different kinds of Admin Nodes, where a Node can be a link for each one of the selected content types or a menu item that acts as a container for others. You can also add a Link Admin Node which adds a link with text and a URL. But of course, you can also add an admin menu from the code by implementing the INavigationProvider interface or using our MainMenuNavigationProviderBase. And as you can see from the screen, this change is about handling the case where the URL is an admin URL in the menu navigation. Add Alias to ValidationResult This minor change is about adding the Alias to ValidationResult to be able to find which one is faulty faster. Also, it contains fixes for validation message styles globally. To test it, you can add the Alias Part to the predefined Blog Post content type. Set the value Alias of the predefined Blog Post content item to "myalias", then try to create another Blog Post content item with the same Alias value. As you can see, the validation error now contains the "myalias" at the end of the error message. Demos Content items Excel file import/export There is a need to export data to an Excel file and also to import data from an Excel file. Currently, we can do that using JSON, but JSON isn't really a business-friendly format. This is a new module that allows us to do such a thing. It's not really 100% ready, but it does the job right now, and it is worth mentioning it here as well. Let's check out how this module may work in the future! We have two custom content types here, called Product and Product Category, just for the sake of this demo. If we edit the definition of the Product content type, you may notice two new checkboxes here: Allow bulk excel file import Allow bulk excel file export If you want to import only but not export the data you can, or if you want to allow both, you can do that as well. In this case, we said we allow the Product content type to be exported and imported. This feature adds two new menu items under Content: Imports, and Export. And under Imports, you can find an Import Product option because the Product was marked as importable. If you look at this screen, everything here is generated based on the definition of the Product content type. The Columns Requirements table tells you the requirement of what the import file needs to look like in order for the system to understand it. For example, the Price field is a required field that contains a numeric value for Price. And these are all derived from the schema of the Product content type. You can actually download a template that gives you a file with the header name and also the description of what each one really means. Similarly, we can export by clicking on the Export option. You can select which content type you want to export and because Product is the only exportable content type, we can say to export this by clicking on the Export Data button. If you would like to know more about this feature, don't forget to check out this recording on YouTube! News from the community Updated Lombiq's Open-Source Orchard Core Extensions This is an Orchard Core Visual Studio solution that contains most of Lombiq's open-source Orchard modules and themes, as well as related utilities and libraries. Please keep in mind that only those extensions included that use the latest released version of Orchard (i.e. the very cutting-edge ones depending on a nightly build are not yet here). And now, this solution has been updated to the latest and greatest 1.5 Orchard Core version. Check them out here, and install them from NuGet or from the source! Orchard Harvest 2023 For those too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should really think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. If you have any feedback or are looking forward to having a Harvest again, please share your opinion by filling out this survey about the upcoming Orchard Harvest! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 379 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Enable/disable RSS feed per list, use WebApplicationFactory in the Lombiq UI Testing Toolbox - This week in Orchard (09/12/2022)

Enable/disable RSS feed per list, don't localize custom errors returned by the userinfo endpoint, reject grant_type=client_credentials token requests containing scope=offline_access, and a demo about using WebApplicationFactory in the Lombiq UI Testing Toolbox. Check out our post for the details! Orchard Core updates Enable/disable RSS feed per list After activation of the Feeds module, each List Part gets its public URL which can be accessed from the public and cannot be secured. List items can be intended to be private or handled in some custom way. If someone activates the Feeds module, it can leak that data through the newly added endpoint. So, this change is about adding an option to disable/enable feed generation for a given List Part. Let's try it out quickly! If you set up your site using the Blog recipe, you will get a Blog content type defined and one Blog content item. Navigate to Content -> Content Items and hit Edit near the Blog one! If you scroll down a little, you will find a new checkbox called Disable RSS feed link generation. It's unchecked by default but you can put a tick in this box to disable the RSS feed generation. Don't localize custom errors returned by the userinfo endpoint The OAuth 2.0 specification explicitly requires that errors be composed exclusively of certain USCII characters, which basically prevents localizing them. It's an issue we identified and fixed some time ago for the errors returned by AccessController, but not by UserInfoController, which still returned a localized error. Reject grant_type=client_credentials token requests containing scope=offline_access We recently added the ability to automatically grant the requested scopes for grant_type=client_credentials (which requires that the client be granted the corresponding scope permissions, of course), but we forgot to add a check to prevent a refresh token from being requested via scope=offline_access, which is a scenario we deliberately don't allow. We have a check preventing blocking grant_type=refresh_token requests in this case: Since there's no point in returning a refresh token that won't be usable, we should add a check to prevent the offline_access scope from being requested in the first place. That's exactly what this fix does. Demos Use WebApplicationFactory in the Lombiq UI Testing Toolbox Maybe you have already heard about the Lombiq UI Testing Toolbox, our web UI testing toolbox mostly for Orchard Core applications. Everything you need to do UI testing with Selenium for an Orchard app is here. We wrote about it several times here as well, first when we open-sourced it, when we added some Orchard Core Features tests to it when we added the automated monkey testing feature to it or when we introduced the Visual verification testing. And a few weeks ago, we showed you the latest updates about integrating UI testing into Orchard Core. In this recording, you could see using WebApplicationFactory directly instead of running the tested app with the dotnet CLI because you can run an ASP.NET Core app directly with WebApplicationFactory, see this blog post and the corresponding code. Why? This can potentially make things faster. Reduce the app-level configuration you have to do, so no need to add the Shortcuts module, for example, or ConfigureUITesting(). Since this would require a hard reference from the UI test project and the web app, we'd get rid of the necessity to manually build the web app. This would allow us to debug the app being tested too since it would be the same as the test process. We introduced this change in the v4.0.0 release of the UI Testing Toolbox, and if you are already using our Toolbox in your solution, don't forget to check out our migration guide for the breaking and non-breaking changes. And as always, if you want to know more about this new addition to the Lombiq UI Testing Toolbox for Orchard Core check out this recording on YouTube! News from the community Orchard Harvest 2023 For those who are too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should really think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. If you have any feedback or you are looking forward to having a Harvest again, please share your opinion with us by filling out this survey about the upcoming Orchard Harvest! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 378 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who you think would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news around Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Keep IDisplayManager backward compatible, adding permission check when querying content using GraphQL - This week in Orchard (02/12/2022)

Keep IDisplayManager backward compatible, remove extra spacing around editing contents, flows, and Bag Part, and add a permission check when querying content using GraphQL. Check out our post for the details! Orchard Core updates Keep IDisplayManager backward compatible Let's assume you are using BuildEditor of DisplayManager to create a shape. Now you will find method overload to avoid method not found exception in modules that depends on IDisplayManager. But why is that exception can happen? The BuildEditorAsync and UpdateEditorAsync methods in the IDisplayManager interface now accept a new htmlPrefix parameter, and the groupId is now not an optional one. To keep the IDisplayManager backward compatible, the old methods are marked as obsolete such that old compiled libraries use the obsolete methods, but new code knows it should use the new methods. Remove extra spacing around editing contents, flows, and Bag Part This change introduces some changes in the admin UI. We have some extra spacing around the Bag Part, Widget List, and Flow Part. There was also extra spacing around the create/edit form in the contents and the page title. The goal of this is to fix the inconsistent spacings and make the look and feel of the admin UI nicer. Add permission check when querying content using GraphQL Let's say you want to grant a user permission to be able to query their own content only using GraphQL. However, there seems to be no way to do that like we can do it using the UI. It would be nice to be able to apply the permissions as we do in the UI for GraphQL. So, here comes a new filter that honors their permissions. Also, GraphQLContentOptions.ConfigureContentType(...) had no effect. If the user configures contentType as hidden, we still show it anyway. This was also fixed. News from the community Orchard Harvest 2023 For those who are too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should really think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. If you have any feedback or you are looking forward to having a Harvest again, please share your opinion with us by filling out this survey about the upcoming Orchard Harvest! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 379 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who you think would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news around Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Fix content types fields dependency, Orchard Core in MS Tech Summit - This week in Orchard (25/11/2022)

Fix content types fields dependency, implement ITicketStore for large cookies, fix OC version used in templates, and an upcoming talk from Lombiq about Orchard Core at the MS Tech Summit conference next week! Check out our post for the details! Orchard Core updates Fix content types fields dependency When we enable the OrchardCore.ContentTypes feature but not enable any feature that composes fields like OrchardCore.ContentFields, the Fields section shows up. Here we should remove the Add Field button when there are no field definitions. Also, if a currently attached field has no definition, we should not be able to edit it, but we should be able to remove it. This can happen if a field was attached to a content type/part while the field definition is available, but then the feature that provides the definition was disabled. Moreover, we should remove the Fields section from the UI if the current content type has no fields and also there are no field definitions. Let's say that we have a site installed with the Blog recipe. This recipe defines a content type called Blog Post which has several content fields attached. These fields are defined by the following modules: Content Fields, Markdown, Media, Taxonomies, etc. So, if we disable all of these features and navigate to Content -> Content Definition -> Content Types -> Blog Post and check out the Fields section, you will see that you can only remove the attached fields and not edit them, furthermore the Add Field button is missing because we have no content field definitions in our site, so, there is no need to display this button because it would only show you an empty list. Implement ITicketStore for large cookies You have the option as an admin user to create a custom role with lots of content types and provide custom permissions to the user. But it could mean that the logged-in user having custom permissions cannot access the admin section as authentication cookie size increases and some web servers have a limit on header sizes (e.g., IIS 16kb, Kestrel 32kb). This introduces the implementation of ITicketStore as an optional feature, when enabled, it will store all claims for the logged-in user on the server's in-memory cache or distributed cache instead of a cookie. Fix OC version used in templates The template default settings are generated on the build. These templates have an OrchardVersion argument that has a default value defined in an MSBuild script to be replaced with the Version property. In the release pipeline, this value will have the VersionSuffix applied to it, like the preview. This fix forces the value of the Version property to be the one in the tag which will prevent preview from being added. This will also fix the templates' default value for OrchardVersion. The pack command uses the Version property only for the packages, and at that point, the template JSON files are already built with the wrong version. News from the community Orchard Core at MS Tech Summit Are you involved in any area (from development to DevOps and cloud to architecture) related to Microsoft technologies? If so, the MS Tech Summit is the event created for you. Close to 50 keynotes, 25 Microsoft MVP award-winning speakers, expo, live streaming, and VoD, all free of charge. Zoltán Lehóczky from Lombiq will give a talk too, about building websites with Orchard Core. Check out the free online conference coming on 2 December to see his talk too! Orchard Harvest 2023 For those who are too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should really think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. If you have any feedback or you are looking forward to having a Harvest again, please share your opinion with us by filling out this survey about the upcoming Orchard Harvest! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 379 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who you think would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news around Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!

Add a feature to allow the user to manage tenants, integrating UI testing into Orchard Core - This week in Orchard (18/11/2022)

Let's continue checking out the newest features and editions of the 1.5.0 release of Orchard Core and see a demo about integrating UI testing into Orchard Core! Oh, and did you know that Orchard Core was presented at this year's .NET Conf too? Orchard Core updates Add a feature to allow the user to manage tenants Let's say you have an Orchard Core site set up with the Software as a Service recipe. This recipe allows you to easily create multiple tenants by enabling the necessary features. Here you can see that we have already created two additional tenants called Agency and Blog. We still need to set up the Agency one, but the Blog tenant is ready to go. And here you may notice a new button near the Blog tenant, called Features. By clicking on this button, you will be redirected to a page that allows you to manage the feature of the tenant called Blog. So, if you have a SaaS environment now, you can manage the tenant's features from the host by allowing to accept {tenant?} in the route. This tenant value is only evaluated if the request is running on the host. When a tenant value is present, we'll execute the code in the scope of the given tenant. SqlParser & SqlGrammar subquery support The issue was that the SQL parser did not allow subqueries in the FROM clause. Try to run the following SQL Query, which can be done via Search -> Queries -> Run SQL Query on the admin page of Orchard Core. SELECT Id FROM ( SELECT Id FROM Document) AS Temp The query should run, but instead of that, you encountered an error: Syntax error, expected: id_simple at line:0, col:15. And this has been fixed in Orchard Core 1.5. So, if you run the query with the latest release, you will see that the query was executed successfully. Update YesSql to 3.2.0 A new version of YesSql comes with the latest release of Orchard Core. YesSql now has version number 3.2.0, which provides several improvements and fixes since the latest version shipped with Orchard Core 1.4. Don't forget to take a look at the changes! Demos Integrating UI testing into Orchard Core We would like to show some updates related to integrating UI testing into Orchard Core. This was not the first time, we already talked about this a while ago in this post. And now it's taking shape, so we would like to have some feedback and finish it up together! In this demo, we will talk about this pull request which introduces UI testing to Orchard Core in .NET with Selenium with our library called UI Testing Toolbox. There's already UI testing in Orchard Core with Cypress, this is a bit different, these are not written in JavaScript but in .NET. They use other underlying libraries for browser automation and what will be tested here is a little bit different as well. We implemented everything that was in Cypress before, and there's a lot more now. If you are interested in the progress, you can find it in the PR as well. Now let's see the current progress of the integration! There's a new folder in the Orchard Core solution called OrchardCore.Tests.UI and also an OrchardCore.Tests.UI.Mvc. The Mvc one is just testing an MVC launch, there is no CMS functionality or anything like that and the Tests.UI tests the whole of the Orchard Core feature set. The main goal was to have some decent coverage. So, we are not waiting for an hour to wait for all the UI tests to finish but still, we can be fairly confident that if these pass, then we haven't messed up anything too badly. For example, we have tests for all the built-in recipes (AgencyRecipeTests.cs, BlogRecipeTests.cs, HeadlessRecipeTests.cs, etc.). The most complete one is under the BlogRecipeTests, which runs the whole setup and checks out the basic features of Orchard Core, like login, logout, registration, basic content operations, turning features on and off, etc. If you are interested in how to run these tests or what these tests actually do in action, check out this recording on YouTube! News from the community Orchard Core at .NET Conf 2022 .NET Conf is the biggest .NET virtual event and this year we were celebrating the release of .NET 7. And there was a talk called Build websites with a modern ASP.NET Core CMS – Orchard Core by Zoltán Lehóczky from Lombiq Technologies. In this session, we'll do a quick dive into working with the modern ASP.NET Core framework and web content management system (CMS) Orchard Core. We'll see what Orchard can provide you, how it goes beyond simple content management, and why you'd want to join such a cutting-edge open-source community. You can check out the recording of this session on YouTube! Orchard Harvest 2023 For those who are too young to remember, we had Orchard conferences, called Orchard Harvest. And the conference website was available under orchardharvest.org, but unfortunately, it's not anymore. The last one was in 2017 in New York. So, having another get-together is very much overdue. If you would like to see or get a feeling of how this looked like before, we have a couple of mood videos on the Orchard YouTube channel, like this one from the first conference. The point is that we should really think about organizing the next one, and we at Lombiq can take part in that or provide an organizing role with anybody who wants to take part. If you have any feedback or you are looking forward to having a Harvest again, please share your opinion with us by filling out this survey about the upcoming Orchard Harvest! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 381 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course. Do you know of other Orchard enthusiasts who you think would like to read our weekly articles? Tell them to subscribe here! If you are interested in more news around Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!