#EPU 4: Bulk schema deployment π¦π¦π
We know, we know. It's been a long, long time 🎵
But don't worry, unlike the late Kitty Kallen, we won't ask you to kiss us once nor twice.
Instead, we'll introduce you to one of our biggest updates yet. You see, we haven't just been slacking off this whole time. No sir/ma'am, we have been busy working on our new bulk schema deployment, among many other things.
But before we can talk about this, we need to dive into our new source group concept - because, just like string theory, it's all connected 🧵.
feature Source groups 👪
We have introduced a new layer to the data sources called source groups. Adding the source group concept was a necessity to make our new bulk deploy flow as simple to use as possible.
A source group wraps around your data sources and bundles them into a single group. This helps you to keep better track of your sources.
Most developers work with multiple environments (meaning multiple data sources) when developing a project, for example, Production, Staging, and Development.
Having all these data sources grouped together makes it easier to manage, and helps avoid mistakes, for instance, accidentally adding one source to multiple environments.
Source groups now also make it possible to use actions across multiple sources 👏.
When using source groups, the new schema field, triggers, will be replacing the old sourceEntityTypes schema field.
deprecation sourceEntityTypes schema field ⚰️
Alas, it's time to say goodbye to the schema field sourceEntityTypes.
When using the new source groups, it's no longer possible to use sourceEntityTypes. It will now be replaced with the new schema field: triggers.
The triggers-field is an object containing your source group(s) that contains an array of source entity types.
feature Bulk deploy 📦📦📦🚀
Enough beating around the bush. Let's get into the main star of the show - the new bulk deploy feature 🌟.
Deploying changes, keeping track of changes, and mirroring environments just got ten times easier.
Instead of having to go through multiple schemas and releasing one by one, you are now able to do it in one go.
Not only does it save you time - but it also minimizes the risk of errors, since you get a complete overview of the current versions and versions which are going to be deployed.
Moreover, since schemas can be interconnected, the option to deploy simultaneously reduces risks even further.
Instead of having a deploy button on the "single schema view" a "deploy changes"-button has now been added to the header.
Clicking this opens a pane, which allows you to select which environment you wish to deploy your changes to.
A list of all schema changes is shown, alongside the currently deployed version, which version will be deployed, and the state of the schema (added, updated, deleted, unchanged).
You can also choose to exclude a schema from deployment, deploy another version or simply unpublish it.
If you wish to unpublish or change a version of a schema that doesn't have any current changes, you can click "Load unchanged versions" to append the table with the rest of your schemas.
Last but certainly not least, a much-requested feature. You now have the option to copy versions from another environment - meaning mirroring an environment.
This is really useful when testing things out on the Development environment, which you wish to copy to the Production environment.
To do this, simply select the environment you wish to use the versions from in the "Use versions from different environment"-select and click apply.
Afterward, click Deploy X changes and confirm. After the schemas have been validated they are now deployed to your environment.
feature Dynamic mapping ⚡
Now that your head is almost filled to the limit with pure awesomeness, allow us to introduce a feature that will make your head explode.
One of the powerful things about Enterspeed is the option to model and transform your content however you like.
However, there are times when your current content model matches your needs, and transformation isn't necessary.
This is where dynamic mapping shines, which is done by using our dynamic property type.
Say you have a product where you want all of its properties (title, image, description, price, stock, etc.). Instead of mapping all of these single properties out, you simply type:
"product": {
"*": "p"
}
Now all properties from your source entity can be accessed using p.thePropertyName.
Say you only want the features? No problem, you just define this by appending "p." with the property name like so:
"features": {
"*": "p.features"
}
You can read more about how it works in our documentation under Path selector.
feature Sitecore integrations 🔌
We have expanded our integrations list with two new integrations for Sitecore - version 8 and version 9.
These integrations let you automatically push data from your Sitecore solution into your Enterspeed-project.
Furthermore, we have added in-depth tutorials for both integrations, which you can find in our documentation under integrations.
Improvement Schema snippets in docs ✂
Just like googling is a core skill for all developers, so is copy-pasting code snippets (thank you, Stack Overflow).
We're all on board with this, which is why we have created a schema snippets section in our documentation.
Happy copy-pasting🙌
Improvement Editor Command Palette 🎨
We use the Monico editor for our schema editor. If it feels familiar, it may be because it's the same editor that powers VS Code.
This also means it comes built-in with a ton of handful features - including the command palette.
To run a command, simply press F1 or click the "play"-button on the right side of the editor to open the menu.
Improvement Editor band 🩹
We have added a "band" to the bottom of the schema editor. We have moved Save-status, Autosave-option, Theme-selection, and the WordWrap-option to this "band".
All schema errors will also be shown here, in the bottom left corner.
Improvement Warnings in "test run" ⚠
When doing a "dry run" (testing your schemas on source entities), we have now included schema warnings, alongside schema errors.
This can help you spot redundant code, for instance, referenced source groups that are no longer in use.
fixFixes and tweaks 🛠️
- The Umbraco V9 integration now supports overwriting the job handlers responsible for ingesting data to Enterspeed. You can read more about it here.
- More descriptive text has been added to the API reference.
- When creating an environment client, you will now be asked to also add a domain. If no domains are added, a warning will be shown.
- Removed checkmark-bug from the "load more"-button on initial load.
- Our Next.js-demo now supports Preview-mode.
- The "click outside to close"-functionality has been removed from all modal windows to avoid accidental closes.
- A schema action menu has been added to the "single schema view", allowing renaming, deletion, and navigating between versions.
- Warning added on "Create source group" when trying to create without saving new sources.
- Deprecated "own shortcuts" (mainly used for navigation between pages) to not conflict with editor shortcuts.
- Filters from source entities / generated views are now removed until a source/environment is selected.
Until next time 👋