[{"data":1,"prerenderedAt":458},["ShallowReactive",2],{"footer-primary":3,"footer-secondary":93,"footer-description":119,"the-changelog-4-november-2024":121,"the-changelog-4-november-2024-next":187,"sales-reps":206},{"items":4},[5,29,49,69],{"id":6,"title":7,"url":8,"page":8,"children":9},"522e608a-77b0-4333-820d-d4f44be2ade1","Solutions",null,[10,15,20,25],{"id":11,"title":12,"url":8,"page":13},"fcafe85a-a798-4710-9e7a-776fe413aae5","Headless CMS",{"permalink":14},"/solutions/headless-cms",{"id":16,"title":17,"url":8,"page":18},"79972923-93cf-4777-9e32-5c9b0315fc10","Backend-as-a-Service",{"permalink":19},"/solutions/backend-as-a-service",{"id":21,"title":22,"url":8,"page":23},"0fa8d0c1-7b64-4f6f-939d-d7fdb99fc407","Product Information",{"permalink":24},"/solutions/product-information-management",{"id":26,"title":27,"url":28,"page":8},"63946d54-6052-4780-8ff4-91f5a9931dcc","100+ Things to Build","https://directus.io/blog/100-tools-apps-and-platforms-you-can-build-with-directus",{"id":30,"title":31,"url":8,"page":8,"children":32},"8ab4f9b1-f3e2-44d6-919b-011d91fe072f","Resources",[33,37,41,45],{"id":34,"title":35,"url":36,"page":8},"f951fb84-8777-4b84-9e91-996fe9d25483","Documentation","https://docs.directus.io",{"id":38,"title":39,"url":40,"page":8},"366febc7-a538-4c08-a326-e6204957f1e3","Guides","https://docs.directus.io/guides/",{"id":42,"title":43,"url":44,"page":8},"aeb9128e-1c5f-417f-863c-2449416433cd","Community","https://directus.chat",{"id":46,"title":47,"url":48,"page":8},"da1c2ed8-0a77-49b0-a903-49c56cb07de5","Release Notes","https://github.com/directus/directus/releases",{"id":50,"title":51,"url":8,"page":8,"children":52},"d61fae8c-7502-494a-822f-19ecff3d0256","Support",[53,57,61,65],{"id":54,"title":55,"url":56,"page":8},"8c43c781-7ebd-475f-a931-747e293c0a88","Issue Tracker","https://github.com/directus/directus/issues",{"id":58,"title":59,"url":60,"page":8},"d77bb78e-cf7b-4e01-932a-514414ba49d3","Feature Requests","https://github.com/directus/directus/discussions?discussions_q=is:open+sort:top",{"id":62,"title":63,"url":64,"page":8},"4346be2b-2c53-476e-b53b-becacec626a6","Community Chat","https://discord.com/channels/725371605378924594/741317677397704757",{"id":66,"title":67,"url":68,"page":8},"26c115d2-49f7-4edc-935e-d37d427fb89d","Cloud Dashboard","https://directus.cloud",{"id":70,"title":71,"url":8,"page":8,"children":72},"49141403-4f20-44ac-8453-25ace1265812","Organization",[73,78,84,88],{"id":74,"title":75,"url":76,"page":77},"1f36ea92-8a5e-47c8-914c-9822a8b9538a","About","/about",{"permalink":76},{"id":79,"title":80,"url":81,"page":82},"b84bf525-5471-4b14-a93c-225f6c386005","Careers","#",{"permalink":83},"/careers",{"id":85,"title":86,"url":87,"page":8},"86aabc3a-433d-434b-9efa-ad1d34be0a34","Brand Assets","https://drive.google.com/drive/folders/1lBOTba4RaA5ikqOn8Ewo4RYzD0XcymG9?usp=sharing",{"id":89,"title":90,"url":8,"page":91},"8d2fa1e3-198e-4405-81e1-2ceb858bc237","Contact",{"permalink":92},"/contact",{"items":94},[95,101,107,113],{"id":96,"title":97,"url":8,"page":98,"children":100},"8a1b7bfa-429d-4ffc-a650-2a5fdcf356da","Cloud Policies",{"permalink":99},"/cloud-policies",[],{"id":102,"title":103,"url":81,"page":104,"children":106},"bea848ef-828f-4306-8017-6b00ec5d4a0c","License",{"permalink":105},"/bsl",[],{"id":108,"title":109,"url":81,"page":110,"children":112},"4e914f47-4bee-42b7-b445-3119ee4196ef","Terms",{"permalink":111},"/terms",[],{"id":114,"title":115,"url":81,"page":116,"children":118},"ea69eda6-d317-4981-8421-fcabb1826bfd","Privacy",{"permalink":117},"/privacy",[],{"description":120},"\u003Cp>A composable backend to build your Headless CMS, BaaS, and more.&nbsp;\u003C/p>",{"id":122,"slug":123,"vimeo_id":124,"description":125,"tile":126,"length":127,"resources":8,"people":8,"episode_number":128,"published":129,"title":130,"video_transcript_html":131,"video_transcript_text":132,"content":8,"status":133,"episode_people":134,"recommendations":173,"season":174,"seo":186},"cfcf16eb-9630-4423-9f83-0fe27ef57f85","4-november-2024","1030913964","Join us for The Changelog, taking you through the month’s Directus updates including product updates, new content and community contribution highlights. This month's show includes a community showcase of a note taking system from Josh, Carmen taking you the first episode of Sharp Focus, Kevin with the new guest Author program and more...","9bde0965-1d3e-4d2e-b5c1-c3e11711200b",45,4,"2024-11-18","November 2024","\u003Cp>Speaker 0: All right. Hello. Hello everyone. Hopefully you can all hear me and if you can I would love to know where you are joining us from today? 1, to say that\u003C/p>\u003Cp>Speaker 1: you can hear me and, 2, because I'm nosy and\u003C/p>\u003Cp>Speaker 0: I wanna know where everyone is. Last time everyone was all over and it was really great to hear. Personally, I am joining from London where we had the first snow of the fall this morning. It was quite rainy snow like it wasn't magical magical but it counted and that's what matters so that is where I am from. Excellent, Carmen, thank\u003C/p>\u003Cp>Speaker 1: you so much for telling me you can hear me, I appreciate it. Vienna, Austria, we've got Sweden, USA, Finland, amazing, welcome. I hope you're all having such an amazing day. Devon, Germany, very cool, Netherlands as well. We have some very fun and also educational, material coming up for you for the rest of this show.\u003C/p>\u003Cp>If you've got any questions throughout, we've got\u003C/p>\u003Cp>Speaker 0: the chat open, and there's a couple of people from our team in it as well. So please do let us know if you have any questions. But we are starting off, the November change log with a product update from Bryant. So I'm gonna send you over to him.\u003C/p>\u003Cp>Speaker 2: Thanks, Beth. Bryant here for Directus, and here's a quick rundown of the core changes that have happened since the last changelog. Version 11.2.0 brought TUS resumable file upload protocol support to the Supabase, Azure, Cloudinary, and GCS storage adapters. And we already had tough support for the AWS s three compatible and local asset storage adapters. Which basically means, you are now fully covered when uploading large files, like videos to Directus.\u003C/p>\u003Cp>In version 11 dot 1 dot 2, we introduced a migration for Directus comments. There's now a dedicated directus underscore comments collection, which will make it much much easier for you to use comments in your front end projects via the API. We previously stored comments in the directus underscore activity collection, which admittedly was a bit messy because of all the other activity logs we stored alongside those comments. So this welcome change brings new API endpoints for comments, but the existing endpoints are still 100% totally functional. One note though, primary keys are now UUIDs instead of integers.\u003C/p>\u003Cp>So that could impact any custom type checking implementations you set up. The Directus SDK's internal comment endpoints have also been updated to reflect this change. And I know you're all for avoiding errors, so just ensure your Directus version is compatible with the latest SDK when you're using those comment functions. And there's just one more change with version 11.1.2. We've made some improvements to content versioning.\u003C/p>\u003Cp>Internally, we stored every change to a content version separately in the directus_revisions collection. And then we merge those together when promoting a version. In this release, we've added a new delta field to directus_versions collection, and that combines all the revisions into a single field. So all that to say, this means you'll be able to prune your revisions, which are the individual changes to a piece of content, without losing your versions. And with that, back over to you, Beth.\u003C/p>\u003Cp>Speaker 0: I'm going to demonstrate each of the new extensions in Director's Labs this month. As a reminder, Director's Labs is our team's experimental organization on GitHub. Typically, these extensions aren't maintained the same way that the main directors project is, but we have now committed to maintaining 4 of them. They are the spreadsheet layout, the Gantt chart layout, the Command Palette module, and the calculated fields bundle. You can see all these extensions, including which extensions are maintained, over on the extensions repo.\u003C/p>\u003Cp>Onto the demos. Directors AI is a collection of extensions that allows you to leverage the best AI tools from within Directors Automate. Today, we have 2 announcements, a brand new extension and an improvement. Let's start with a brand new extension, the AI web scraper. This allows you to scrape web pages and receive structured data back.\u003C/p>\u003Cp>We're using FireCrawl to perform the scraping, so you'll need an API key from them. You put a web page or a link to a PDF. Here, we're using directors. Io. If we go into the actions before scraping, here you can get the scraper to perform actions on the web page and add additional metadata about the action.\u003C/p>\u003Cp>For example, which element to click on or how far to scroll. For the data to extract, here's where you tell it what data you wanted to extract, and it will use AI to extract it. In the property description, we're going to put permission, string as data type, and we're going to enable making it a requirement. Optionally, there are additional formats, so you can also specify how you want the pages content to be presented back to you. They've also just had their launch week and we've implemented their brand new features such as the country, language, and mobile options.\u003C/p>\u003Cp>The other announcement is an improvement to the AI writer. The biggest change here is that before you could only use OpenAI's models and now we're extending the option to use multiple AI providers such as Anthropic, as well as different AI models. Other than that, everything else works as it did before, and this expansion was done thanks to an issue that was opened on the Directors Labs Extensions repo. So please do keep bringing your feedback for these. That's what's new for Directors AI We often hear from people that they love Directors insights, but want more ways to visualise their data.\u003C/p>\u003Cp>So we've added 4 new panels, which you can install now via the marketplace. 1st, we have the tree map chart. Select a collection, optionally a filter, which field you want to use for the labels and the value, and any aggregation you would like to perform. For example, here we are summing the value of all deals per company, so each company has its own cell at the size of all values related to that company. Next, we have funnel chart.\u003C/p>\u003Cp>Now, the funnel chart works exactly the same way, but visualises data differently. So depending on your needs might be more appropriate for you. For example, here we have a typical sales funnel. Funnel charts excel when people, or entities, follow a linear path and you want to see how many convert between stages. Next is the scatterplot.\u003C/p>\u003Cp>If you've never seen one before, this is a very typical two axis chart where values are plotted as dots. You can optionally add axis labels and hover over any of the dots to see the values. Finally, we have the timeline chart. This is a sibling to the Gantt chart layout that we recently released last month. We have less space to work with in a panel, so it's a simplified version, but it can be really powerful to include for project management.\u003C/p>\u003Cp>This relies on having 2 date fields, a start and an end, and then a label for the axes on the left and some display text for the item itself. We hope you enjoy our new panels. We certainly think that people are going to get a lot of use out of them. Extension authors often want to extend the functionality of our built in interfaces, And a few months ago, we released the WYSIWYG and block editor as boilerplates to build on top of. Today, we are releasing our first layout boilerplate, the table layout.\u003C/p>\u003Cp>This was already the basis for our spreadsheet layout extension, and now you can build on top of it and extend it too. You can find this in our Director's Labs extension repo, And we hope that this supercharges your extension building.\u003C/p>\u003Cp>Speaker 3: Hello there. Today, we are announcing our brand new and improved guest author program. The directors community is filled with people who use directors in so many different ways, so many different languages, frameworks, use cases, and this program is all about bringing those experiences to the tutorial section in our new documentation to help new directors users and existing directors users be as successful as possible. So we invite you to apply to be part of our brand new guest author program. Previously, our guest author program worked where you submitted your own ideas.\u003C/p>\u003Cp>In this program, once accepted, we have identified a huge number of tutorials that we think would be hugely impact for our users, and we invite you to write them and get paid doing it. We will support you through that whole process reviewing content and making sure what you create, is the best it can possibly be. So if you are an experienced technical writer and you know how to use directors, this program is for you. It's about educating others about how to be successful and make the most of directors. We are going to open applications a few times a year.\u003C/p>\u003Cp>This first open application starts today, and it will be open through the end of November, to kick off shortly after. So we really look forward to seeing your applications and the amazing tutorials that you can write to help others.\u003C/p>\u003Cp>Speaker 0: Alright. Hopefully, I am back. I'm super excited about those announcements. I did put in the chat the links for applications to become a guest author and also the Derick's Labs extensions, URL as well, so do check those out if you haven't already seen them. I'm super interested in hearing about what you are excited about from those announcements or if you're using any extensions.\u003C/p>\u003Cp>We've got a couple\u003C/p>\u003Cp>Speaker 1: of minutes in the chat to, have a talk with you about them So if you have seen any that you're like, this is gonna be particularly useful to me, we'd love some instant feedback on what is getting you excited, what you might be using them for. I know and I think I said this last month to you about the Gantt chart, but anything project management, super exciting. Like, just to be able to see a timeline, like a crisp timeline is super exciting for me. Also, the funnel, we love to see it. So, yeah, if you do have any thoughts, keep them coming in the chat whilst we are talking through them.\u003C/p>\u003Cp>Speaker 0: And if not, we have the Discord throughout the month, if you've got any questions about anything at all. I'm gonna\u003C/p>\u003Cp>Speaker 1: give it a couple more seconds. If you are typing, type quickly, before I move us on.\u003C/p>\u003Cp>Speaker 0: But, yeah, just, as we said in there, lots of feedback coming in through, which is super helpful in working out the directions as well. So that is all good, and we're excited to keep things coming and keep telling you about them in the change log. Alright. I am going to Ben says, I'd really like some more documentation on using real time stuff in Next. Js.\u003C/p>\u003Cp>Carmen, I believe you are in the chat\u003C/p>\u003Cp>Speaker 1: as well, so that, hopefully, you are able to give some insight on what is upcoming. Josh says I\u003C/p>\u003Cp>Speaker 0: found your software, and I'm using cool. Excellent. Very excited to see it. So I'm gonna move us on to the next segment, which is slightly cringey. So you have been warned.\u003C/p>\u003Cp>We had a lot of fun putting this together, and it's time for a completely new segment in\u003C/p>\u003Cp>Speaker 1: the change log. We do try and keep things, new and fresh, so we haven't done this before. This is a segment called Automate My Life, and we really hope you enjoy it.\u003C/p>\u003Cp>Speaker 0: Hello, and welcome to Automate My Life. In this show, we help regular people using Directus.\u003C/p>\u003Cp>Speaker 3: And today, we are in sunny London with our 1st person in need, Sean. He has lots of problems. We can't help with most of them, but we certainly can help with 1. Over to Sean. So I'm here with Sean who has called in the Automate My Life team with a problem.\u003C/p>\u003Cp>Sean, what can we help you with? Hi, Keir. Thanks for coming. I have a problem. Tell me more.\u003C/p>\u003Cp>Look at this plant. What do you notice about it? Sean, this plant is dead. That is the problem. Okay.\u003C/p>\u003Cp>Yep. See, I have plants and they are not dead. But then no matter what I do, they become dead. Despite your best effort. Despite my best and sometimes your mediocre efforts as well.\u003C/p>\u003Cp>Okay. I understand. Well, I think this is something we might be able to help with over in the workshop. Marvelous. Automate my life, director's team.\u003C/p>\u003Cp>Over to Beth.\u003C/p>\u003Cp>Speaker 0: Okay, folks. You've heard what Sean's problem is. We've brought you here as the best of the best to work out a solution for Sean. The future of his plants relies on you. What have you got?\u003C/p>\u003Cp>Speaker 4: Hey, Sean. Welcome to the Directus workshopping team. We're all about automating our lives every day. I have a similar problem. My wife my partner, has a pepper garden.\u003C/p>\u003Cp>She's an avid gardener. She loves to garden. This year, she actually picked up a little pH temperature monitor or soil tester, to give you the soil quality and quantity and make sure that she could amend the soil properly for those kinds of things. But as I'm thinking about this now, I'd actually like to work with her, and we'll get a I I think next year, I'm actually going to do this particular project. But in the meantime, we'll talk about some of the ways we could solve this problem.\u003C/p>\u003Cp>There are both DIY options and aftermarket options. I think I'll opt for the DIY, and that will be using something along the lines of an e s ESP 32 Wi Fi Sensor. There's a nice Directus blog that kind of goes through a use case for this, but we're gonna talk a little bit more in detail about some specific sensors and capabilities that we'll need to do for this. So there's an ESP 32. This has built in Wi Fi.\u003C/p>\u003Cp>The ability to integrate that with your sensors and plug that into your sensors, so we can collect data, soil temp moisture contents, and, temperatures. So the key thing is to making sure that your plants grow successfully. Now, in order to make this all work together to get you alerts and notifications, I'm gonna hand you off to my main automation guru, mister Bryant Gillespie.\u003C/p>\u003Cp>Speaker 2: Sorry, Jonathan. I, had these thinking glasses on to consider this problem. I just want to say this is an amazing use case for Directus Flows. We are going to be able to send automated notifications whenever these values are out of bounds. So here's what I'm thinking.\u003C/p>\u003Cp>Whenever a new item is created in the logging collection we trigger a flow. That flow does some magic and it will run some conditional operations to determine whether those values for moisture, for pH, for temperature are within the bounds that we set. If they are within those bounds, nothing happens. You're a okay Sean. As soon as those values step out of bounds like they're on the court, boom, you get a message via SMS through the Twilio API.\u003C/p>\u003Cp>And that's a wrap. Now to kick it over to my main man, AvDV, our head of insights.\u003C/p>\u003Cp>Speaker 5: Hey, Sean. If you're anything like me and you've got a lot of plants, I can imagine all these sensors are gonna be bringing in a ton of data into your into your director's project. So what better way to use insights or our dashboards to build up, targeted, insights which give you a summary of all the information in one page. We have, time series charts that you can start to track the pH, the moisture and the temperature over time. And with built in filters as well, you can you can filter by room, by particular plant, or even by the season if you want to track, the growth or the moisture over the seasons.\u003C/p>\u003Cp>There's a ton more use cases that we could build in, but those are just good. Some 3 quick summaries of what you could build with the Director's insights.\u003C/p>\u003Cp>Speaker 0: Wow. This all sounds great. I'm gonna leave you in the workshop to make this real. So Sean, we built you a soil monitor. There's sensors in here that every hour monitor the status of the planet.\u003C/p>\u003Cp>And if it's in need, we'll let you know via text messages exactly what's wrong.\u003C/p>\u003Cp>Speaker 3: Wow. That's amazing. I'll never kill again. Thanks, directors. Thank you so much.\u003C/p>\u003Cp>What a wonderful first episode of Automate My Life. Thank you for taking part. If you have an idea for a future episode, you can probably keep it to yourself. This is probably a one and done. Thank you, and bye for now.\u003C/p>\u003Cp>And that's something we can help you with. I certainly hope so.\u003C/p>\u003Cp>Speaker 6: I think we can handle discus team.\u003C/p>\u003Cp>Speaker 3: What's the new company again? Director. Director.\u003C/p>\u003Cp>Speaker 1: Wow. That was quite something, I hope you enjoyed. And I'm also very glad that the bloopers reel did in fact stay in because it was a lot of fun to record. There were some great ones. So, next up is sorry.\u003C/p>\u003Cp>I've gotta compose myself. It was so cringey. I could still feel it, like, in my cheeks. So next up, we have what I always say is my favorite part\u003C/p>\u003Cp>Speaker 0: of the change log, and that is the community showcase. This month, we have Josh talking through the note taking system he built, so I'm gonna send you over to him.\u003C/p>\u003Cp>Speaker 6: Hi there. I'm Joshua Behmendurfer, a software developer and IT manager at a Christian nonprofit. I have a tendency to build odd solutions like this one to solve mildly frustrating problems. Today, I'm showing off an offline first portable note taking system that integrates with Directus. It uses the Tiletec's awesome hackberry pi 0 for the hardware.\u003C/p>\u003Cp>This little doohickey with a physical keyboard, And Directus to store and retrieve data. Here's how it works. 1st, in Directus, I'm going to create a new collection called to do with a manual primary key which we'll set to the current date from the note taking system. Then we'll add a single simple markdown field that we'll use for our task list. And you can do more complicated stuff.\u003C/p>\u003Cp>I'm just going with the markdown field. Then I'm going to add a, assign to field that references a contact so that I can show how, relationships work with the note taking system. And then we should be good to go. Alright. Now let's take a look at how to create and edit notes on the device.\u003C/p>\u003Cp>I'm gonna use my Android phone here because it's pretty hard to take a recording of the Hackberry without my fingers getting in the way. I've got my editor open with a new text file. This file contains commands that interface with the Directus API. Let's skip the current date so that we can refer to it when creating today's to do and then get the ID of my contact entry so that the to do could be assigned to me. I'm using the Directus search and field parameters to find just my contact ID.\u003C/p>\u003Cp>Alright. Now we've got that ID. Let's make a view to do for today. We could use the, dollar sign to refer to the output of previous commands. Like, you were setting the ID to the current date.\u003C/p>\u003Cp>And then I'm going to assign that contact to my that, to do to myself. We're on it. Now let's add some tasks for some things I need to do today. Well, let's see. We could take out the trash.\u003C/p>\u003Cp>I should probably do that. We should do the laundry. That definitely needs to get done. What else? I should probably record this video.\u003C/p>\u003Cp>Alright. And then when I hit control r, these changes sync to Directus. And then they're also saved locally in this file for offline editing. I can make changes and they will get synced to my Directus instance. So let's take a look at what has been saved.\u003C/p>\u003Cp>As you can see, the tasks, assignment, and date are all here. I built this system because I forget things pretty easily and I'm always remembering them at the wrong time. So, to try and capture those fleeting memories, I tried to take notes on the go. Especially at Berk when I'm needing to walk between different people's offices and just catch up with all sorts of things people are saying while I'm, away from my desk. So, I started out with all sorts of notebooks and even designed several variations of reusable note cards, but I could never find the right note card at the right time and digitizing them constantly to make them searchable turned out to be quite a chore.\u003C/p>\u003Cp>To make the switch to digital notes, I started with Obsidian. It worked pretty well, but I never had the flexibility in data structures and the querying capabilities that I wanted. The text editing experience and syncing proved finicky at times as well. It was close to what I wanted, but not quite right. I solved the structured data organization problem using Directus.\u003C/p>\u003Cp>The Data Studio makes it a breeze to set up all the collections and fields I need to organize my data the way I want to and it backs it with the full power of a SQLite database. Anything it doesn't support out of the box, I'm a software developer, I can build on to it. But, I had two main issues with the vanilla Directus setup. Number 1, it doesn't work offline and I was always forgetting to hit the save button in my notes And trying to switch between other apps on my phone and direct us while in the middle of a bunch of other things just put too much friction in the note taking process. So, when I saw the Hackberry Pi come up for sale, it seemed like the perfect crazy gadget for taking notes.\u003C/p>\u003Cp>My, fat thumbs make typing on a touchscreen a pain, so a device with a physical keyboard was perfect. And, it's still small enough to fit in my shirt pocket. I snagged one once they were in stock and while waiting for it to ship from Germany I threw together some simple software to communicate with Directus. This system uses the micro text editor, which is a convenient, easy to use command line text editor that also happens to be extensible with Lua. And I combine it with an indentation based syntax for encoding JSON as the small scripts do things up to direct us.\u003C/p>\u003Cp>It's not pretty and it does have all sorts of interesting ways of crashing but it works very well for my use case. When I need to take notes, I press the hotkey on the Hackberry, the note I want to edit comes up, then I just type and sync to Directus once I'm back online. I doubt this exact system will be of much use for anyone else but it just goes to show the creative things you can do with Directus to Scratch, personal or work related itches. There's all sorts of wonderful ways you can wire things up. Thank you for your time.\u003C/p>\u003Cp>Goodbye.\u003C/p>\u003Cp>Speaker 0: Alright. Thank you so much to you, Joshua, for taking the time to, record the video and share\u003C/p>\u003Cp>Speaker 1: with us as we always love to see what people are doing with directors. I see\u003C/p>\u003Cp>Speaker 0: that a couple of people have got a video blur, we are on it and we're trying to fix it and see what\u003C/p>\u003Cp>Speaker 1: we can do. Hopefully it comes back to normal. I don't think it's been that way the whole time so fingers crossed it's just\u003C/p>\u003Cp>Speaker 0: a bit of a rough patch and it will be fine again going forward. I'm gonna send you over to Carmen who has the first video of Sharp Focus and I'm gonna allow her to talk through exactly what that series is and the rest of the series is also out now on director's TV. So I'll find the link for you in the chat as well. Alright. Over to Carmen.\u003C/p>\u003Cp>Speaker 7: Hello, everybody, and welcome to Sharp Focus, the show where we shine a lens on how Directus helps you transform your images and truly make them shine. My name is Carmen, and I will be your guide over the next 5 episodes where we'll learn how images can be transformed, how they work under the hood, how they can be manipulated, how they can be resized to be more performant, how you can use advanced transformations, and how you can use presets to take all of the above and apply it in one fell swoop. Now as it turns out, Directus offers a bevy of options for working with images out of the box powered by the sharp API from Node JS. And we're going to be taking a look at how to do that in a way that's going to be super fun and super approachable. So won't you join me in grabbing our cameras and let's dive right into finding out how Directus works with images.\u003C/p>\u003Cp>So here we are in my very own Directus project running locally dedicated to my photography. Right now, we are in the file library module where you can see that I have a folder over here on the left sidebar. This folder contains photos from my latest trip to my home country Chile. Now, I'm going to use Directus to work with these images for different applications, thumbnails, that sort of thing. But, as you can see, a lot of these images are of varying sizes and qualities.\u003C/p>\u003Cp>But that's okay. We can use to transform these images to create some consistency and even add some cool effects, which we'll be doing in this series. But first, let's take a little look at what makes these images tick. Now I've already uploaded these to Directus, so this gives me a couple of options to work with them. If I click on one of the images, for example, the photo of my trip to the national park, Torres del Paine, we will see that we can do things like change the title, add a description, some tags, location, if we wish, some focal points, more on that later, and also have access to its asset ID.\u003C/p>\u003Cp>But that's not all. We can even edit that image. Now we're not going to be doing that in this series, except for using it to create focal points. But again, more on that later. Now, if I want to access that image from say my browser, I can take that asset ID and navigate to my instances URL/assets/the ID of that image, which is fantastic.\u003C/p>\u003Cp>But one thing to bear in mind, I'm logged into Directus as an admin. But if I wanted to access this image from an application, I would need to assign that application the correct permissions, which we can do here in Directus. When I navigate to the settings module and then go over to access policies, we can see that I already have some permissions and roles set for administrators, which is my logged in user. But I wanna make these images fully public. So what I can do is click here on public and under permissions, click on add collection and select the Directus Files system collection.\u003C/p>\u003Cp>I will be able to assign different permissions for folks accessing that from anywhere. But I only want to give folks the ability to read. So we'll click here on read access and then assign all access. The last thing to do is to save that permission. Fantastic.\u003C/p>\u003Cp>Now I can access this image from a browser, from an application, from anywhere. So let's go back and look at that image. Now you remember that these images are of different sizes and qualities. So in order to create some consistencies, we're going to be applying different image transformations, but also giving them a little bit of pizzazz with some advanced transformations. It's gonna be super cool.\u003C/p>\u003Cp>Before we wrap up this video, I'd like to show you a couple of the types of transformations we can do. In the next video, we'll be looking at image manipulation where we can use query parameters like width, like height, and fit to manipulate our image and in this case make it a consistent 300 by 300 pixels. But that's not all. In our 3rd episode, we'll be looking at how we can manipulate the size and performance of our images. For example, here we're applying a quality of 5% and a format of web P to be used in our applications.\u003C/p>\u003Cp>Next. Now bear with me. We're going to be doing some advanced transformations. Now this looks a little wild, but you'll see that we're applying some powerful transforms with that sharp API. So we're applying a blur, a tint, we're negating colors.\u003C/p>\u003Cp>All of this is done with direct us, which is super cool. And finally, in our last episode, we'll talk about preset transformation where we can assign presets to a key, and that way we don't have to type out all of those transformations, but rather place them in one consistent place in Directus. Finally, let's talk about that processing power. You might think it'd be pretty cumbersome if every time I reload this image, it reprocesses all of those transformations. And I have good news.\u003C/p>\u003Cp>That transformation is done once and then saved in Directus, and you don't have to apply that every time. That means that you can reload that image worry free of any extra processing power done. So there you have it. Now we've seen how direct us works with images out of the box and how we can apply access permissions, which is gonna be super handy because in the next 4 episodes, we're gonna be working with a new Nuxt application to work with these images and display them in a variety of ways using transformations. So what's next?\u003C/p>\u003Cp>In episode 2, we'll be looking at how to resize our images using width, height, and other parameters, and I can't wait to show you all how it works. So till next time, keep those cameras ready.\u003C/p>\u003Cp>Speaker 0: We've put together a reading list from suggestions within the director's team of resources they found interesting, educational, or entertaining this month. Firstly, we have how we built a powerful JSON data type for ClickHouse. They talk about some of the challenges they face, such as true column oriented storage, dynamically changing data without type unification, and prevention of avalanche of column data files on disk. Next, a conflict free replicated data type, also known as a CRDT, is a data structure that lets multiple users or applications make changes to the same piece of data. This blog post from BlockSuite, called Building Document Centric CRDT Native Editors, explores the evolution of collaborative document editors, including the transitioning from the traditional editor centric approach to the document centric approach.\u003C/p>\u003Cp>Next, not a blog post, but an interesting project, pdlight. Run a full Postgres database, locally in WASM, with reactivity and live sync As opposed to running it in the application, you can run this in the browser, dependency free And unlike previous Postgres in the browser projects, pdlight does not use a Linux virtual machine. It is simply Postgres in WASM. Finally, there are some roles that rely on you being able to work with a lot of people from different teams where sometimes that's not always possible time wise and they become a blocker. This post from Kirk Campbell addresses that challenge by looking at how to utilise AI, specifically Claude Projects, in absence of people being able to give you their time and how to bridge that gap.\u003C/p>\u003Cp>Those are 4 really solid recommendations from the team that we hope you enjoy. We want to take a moment towards the end of the changelog to thank our amazing community contributors who give their time and expertise to improving the director's project. Since last month, there have been 3 releases and 8 contributors. A massive thank you to Gerard for adding support for batch editing in many to many and one to many table interfaces. Thank you to Jun Hong for fixing a display error when selecting Kanban layout for the first time, adding condition to only show the create dashboard if the user has the correct permission, fixing tag interfaces to correctly handle reset white space option, ensuring new operation can reuse same key as previously deleted one in current flow editing session, fixing an issue where the WYSIWYG interface would reload with every keystroke if custom formats are given, and fixing query time logging, leaking memory for failed queries.\u003C/p>\u003Cp>Thank you to Ayush for ensuring Elements login page are correctly truncated when not enough space is available. Thank you to Chris for adding save options to role and policy item pages. Thank you to Shay for fixing an issue where the mail sender is not displayed correctly for instances that use special characters in project name. Thank you to Shane for ensuring failing GraphQL requests are properly handled by throwing an error and exposing errors and data information. Thank you to Osman for fixing disabled state of the add file empty state button for users without permissions.\u003C/p>\u003Cp>Thank you again to all our contributors, and you can see their specific pull requests inside of the full release notes on GitHub. Lastly, we also want to take the time to thank the GitHub Sponsors of October for financially contributing to Directus' development. A huge thank you to Clement, that's DLXCLM, for sponsoring our backer tier of $100 a month. A huge thank you also to Entle, d Mathams, Fergus, Omar, Marcus, c k, Tommy, Perissa, Utomic, Steven, Kadir, nonlinear, Andreas, Valentino, Anthony, John, Wayne, Adam, Jason, Birka, Jens, Marcel, Vincent, Mike, Weifan, Lassie, Pedro, and Gemma Liddin. Thank you so much once again.\u003C/p>\u003Cp>The money we are given from our GitHub Sponsors go straight back to community members who build tooling and extensions for the director's ecosystem. Thank you again for being part of that. Alright. That is the end of this month's changelog. If you've made it this far, thank you so much for staying with us and watching till the end.\u003C/p>\u003Cp>We really appreciate it. All of these recordings will be available on director's TV as well as all 5 episodes of sharp focus. If you are wanting to see anything new from, us as part of the change log, this, would be a great time to tell us. We'll be sticking around in the chat for a couple more minutes. If you've got any questions that do come up throughout the month, Discord general, Discord help are the places to go.\u003C/p>\u003Cp>We will be back with December's version of the change log on December 10th at 3 PM, GMT or wherever that is your time. Discord handily tells you in your current, time zone, which is great. I've put all of the reading list recommendation URLs in the chat. If anyone's got any questions, as I said, we will be hanging around for a couple more minutes. But other than that, thank you so much once again.\u003C/p>\u003Cp>I hope you have a great week, a great month, and hopefully see you next time for December's change log. Have a great day, everyone.\u003C/p>","All right. Hello. Hello everyone. Hopefully you can all hear me and if you can I would love to know where you are joining us from today? 1, to say that you can hear me and, 2, because I'm nosy and I wanna know where everyone is. Last time everyone was all over and it was really great to hear. Personally, I am joining from London where we had the first snow of the fall this morning. It was quite rainy snow like it wasn't magical magical but it counted and that's what matters so that is where I am from. Excellent, Carmen, thank you so much for telling me you can hear me, I appreciate it. Vienna, Austria, we've got Sweden, USA, Finland, amazing, welcome. I hope you're all having such an amazing day. Devon, Germany, very cool, Netherlands as well. We have some very fun and also educational, material coming up for you for the rest of this show. If you've got any questions throughout, we've got the chat open, and there's a couple of people from our team in it as well. So please do let us know if you have any questions. But we are starting off, the November change log with a product update from Bryant. So I'm gonna send you over to him. Thanks, Beth. Bryant here for Directus, and here's a quick rundown of the core changes that have happened since the last changelog. Version 11.2.0 brought TUS resumable file upload protocol support to the Supabase, Azure, Cloudinary, and GCS storage adapters. And we already had tough support for the AWS s three compatible and local asset storage adapters. Which basically means, you are now fully covered when uploading large files, like videos to Directus. In version 11 dot 1 dot 2, we introduced a migration for Directus comments. There's now a dedicated directus underscore comments collection, which will make it much much easier for you to use comments in your front end projects via the API. We previously stored comments in the directus underscore activity collection, which admittedly was a bit messy because of all the other activity logs we stored alongside those comments. So this welcome change brings new API endpoints for comments, but the existing endpoints are still 100% totally functional. One note though, primary keys are now UUIDs instead of integers. So that could impact any custom type checking implementations you set up. The Directus SDK's internal comment endpoints have also been updated to reflect this change. And I know you're all for avoiding errors, so just ensure your Directus version is compatible with the latest SDK when you're using those comment functions. And there's just one more change with version 11.1.2. We've made some improvements to content versioning. Internally, we stored every change to a content version separately in the directus_revisions collection. And then we merge those together when promoting a version. In this release, we've added a new delta field to directus_versions collection, and that combines all the revisions into a single field. So all that to say, this means you'll be able to prune your revisions, which are the individual changes to a piece of content, without losing your versions. And with that, back over to you, Beth. I'm going to demonstrate each of the new extensions in Director's Labs this month. As a reminder, Director's Labs is our team's experimental organization on GitHub. Typically, these extensions aren't maintained the same way that the main directors project is, but we have now committed to maintaining 4 of them. They are the spreadsheet layout, the Gantt chart layout, the Command Palette module, and the calculated fields bundle. You can see all these extensions, including which extensions are maintained, over on the extensions repo. Onto the demos. Directors AI is a collection of extensions that allows you to leverage the best AI tools from within Directors Automate. Today, we have 2 announcements, a brand new extension and an improvement. Let's start with a brand new extension, the AI web scraper. This allows you to scrape web pages and receive structured data back. We're using FireCrawl to perform the scraping, so you'll need an API key from them. You put a web page or a link to a PDF. Here, we're using directors. Io. If we go into the actions before scraping, here you can get the scraper to perform actions on the web page and add additional metadata about the action. For example, which element to click on or how far to scroll. For the data to extract, here's where you tell it what data you wanted to extract, and it will use AI to extract it. In the property description, we're going to put permission, string as data type, and we're going to enable making it a requirement. Optionally, there are additional formats, so you can also specify how you want the pages content to be presented back to you. They've also just had their launch week and we've implemented their brand new features such as the country, language, and mobile options. The other announcement is an improvement to the AI writer. The biggest change here is that before you could only use OpenAI's models and now we're extending the option to use multiple AI providers such as Anthropic, as well as different AI models. Other than that, everything else works as it did before, and this expansion was done thanks to an issue that was opened on the Directors Labs Extensions repo. So please do keep bringing your feedback for these. That's what's new for Directors AI We often hear from people that they love Directors insights, but want more ways to visualise their data. So we've added 4 new panels, which you can install now via the marketplace. 1st, we have the tree map chart. Select a collection, optionally a filter, which field you want to use for the labels and the value, and any aggregation you would like to perform. For example, here we are summing the value of all deals per company, so each company has its own cell at the size of all values related to that company. Next, we have funnel chart. Now, the funnel chart works exactly the same way, but visualises data differently. So depending on your needs might be more appropriate for you. For example, here we have a typical sales funnel. Funnel charts excel when people, or entities, follow a linear path and you want to see how many convert between stages. Next is the scatterplot. If you've never seen one before, this is a very typical two axis chart where values are plotted as dots. You can optionally add axis labels and hover over any of the dots to see the values. Finally, we have the timeline chart. This is a sibling to the Gantt chart layout that we recently released last month. We have less space to work with in a panel, so it's a simplified version, but it can be really powerful to include for project management. This relies on having 2 date fields, a start and an end, and then a label for the axes on the left and some display text for the item itself. We hope you enjoy our new panels. We certainly think that people are going to get a lot of use out of them. Extension authors often want to extend the functionality of our built in interfaces, And a few months ago, we released the WYSIWYG and block editor as boilerplates to build on top of. Today, we are releasing our first layout boilerplate, the table layout. This was already the basis for our spreadsheet layout extension, and now you can build on top of it and extend it too. You can find this in our Director's Labs extension repo, And we hope that this supercharges your extension building. Hello there. Today, we are announcing our brand new and improved guest author program. The directors community is filled with people who use directors in so many different ways, so many different languages, frameworks, use cases, and this program is all about bringing those experiences to the tutorial section in our new documentation to help new directors users and existing directors users be as successful as possible. So we invite you to apply to be part of our brand new guest author program. Previously, our guest author program worked where you submitted your own ideas. In this program, once accepted, we have identified a huge number of tutorials that we think would be hugely impact for our users, and we invite you to write them and get paid doing it. We will support you through that whole process reviewing content and making sure what you create, is the best it can possibly be. So if you are an experienced technical writer and you know how to use directors, this program is for you. It's about educating others about how to be successful and make the most of directors. We are going to open applications a few times a year. This first open application starts today, and it will be open through the end of November, to kick off shortly after. So we really look forward to seeing your applications and the amazing tutorials that you can write to help others. Alright. Hopefully, I am back. I'm super excited about those announcements. I did put in the chat the links for applications to become a guest author and also the Derick's Labs extensions, URL as well, so do check those out if you haven't already seen them. I'm super interested in hearing about what you are excited about from those announcements or if you're using any extensions. We've got a couple of minutes in the chat to, have a talk with you about them So if you have seen any that you're like, this is gonna be particularly useful to me, we'd love some instant feedback on what is getting you excited, what you might be using them for. I know and I think I said this last month to you about the Gantt chart, but anything project management, super exciting. Like, just to be able to see a timeline, like a crisp timeline is super exciting for me. Also, the funnel, we love to see it. So, yeah, if you do have any thoughts, keep them coming in the chat whilst we are talking through them. And if not, we have the Discord throughout the month, if you've got any questions about anything at all. I'm gonna give it a couple more seconds. If you are typing, type quickly, before I move us on. But, yeah, just, as we said in there, lots of feedback coming in through, which is super helpful in working out the directions as well. So that is all good, and we're excited to keep things coming and keep telling you about them in the change log. Alright. I am going to Ben says, I'd really like some more documentation on using real time stuff in Next. Js. Carmen, I believe you are in the chat as well, so that, hopefully, you are able to give some insight on what is upcoming. Josh says I found your software, and I'm using cool. Excellent. Very excited to see it. So I'm gonna move us on to the next segment, which is slightly cringey. So you have been warned. We had a lot of fun putting this together, and it's time for a completely new segment in the change log. We do try and keep things, new and fresh, so we haven't done this before. This is a segment called Automate My Life, and we really hope you enjoy it. Hello, and welcome to Automate My Life. In this show, we help regular people using Directus. And today, we are in sunny London with our 1st person in need, Sean. He has lots of problems. We can't help with most of them, but we certainly can help with 1. Over to Sean. So I'm here with Sean who has called in the Automate My Life team with a problem. Sean, what can we help you with? Hi, Keir. Thanks for coming. I have a problem. Tell me more. Look at this plant. What do you notice about it? Sean, this plant is dead. That is the problem. Okay. Yep. See, I have plants and they are not dead. But then no matter what I do, they become dead. Despite your best effort. Despite my best and sometimes your mediocre efforts as well. Okay. I understand. Well, I think this is something we might be able to help with over in the workshop. Marvelous. Automate my life, director's team. Over to Beth. Okay, folks. You've heard what Sean's problem is. We've brought you here as the best of the best to work out a solution for Sean. The future of his plants relies on you. What have you got? Hey, Sean. Welcome to the Directus workshopping team. We're all about automating our lives every day. I have a similar problem. My wife my partner, has a pepper garden. She's an avid gardener. She loves to garden. This year, she actually picked up a little pH temperature monitor or soil tester, to give you the soil quality and quantity and make sure that she could amend the soil properly for those kinds of things. But as I'm thinking about this now, I'd actually like to work with her, and we'll get a I I think next year, I'm actually going to do this particular project. But in the meantime, we'll talk about some of the ways we could solve this problem. There are both DIY options and aftermarket options. I think I'll opt for the DIY, and that will be using something along the lines of an e s ESP 32 Wi Fi Sensor. There's a nice Directus blog that kind of goes through a use case for this, but we're gonna talk a little bit more in detail about some specific sensors and capabilities that we'll need to do for this. So there's an ESP 32. This has built in Wi Fi. The ability to integrate that with your sensors and plug that into your sensors, so we can collect data, soil temp moisture contents, and, temperatures. So the key thing is to making sure that your plants grow successfully. Now, in order to make this all work together to get you alerts and notifications, I'm gonna hand you off to my main automation guru, mister Bryant Gillespie. Sorry, Jonathan. I, had these thinking glasses on to consider this problem. I just want to say this is an amazing use case for Directus Flows. We are going to be able to send automated notifications whenever these values are out of bounds. So here's what I'm thinking. Whenever a new item is created in the logging collection we trigger a flow. That flow does some magic and it will run some conditional operations to determine whether those values for moisture, for pH, for temperature are within the bounds that we set. If they are within those bounds, nothing happens. You're a okay Sean. As soon as those values step out of bounds like they're on the court, boom, you get a message via SMS through the Twilio API. And that's a wrap. Now to kick it over to my main man, AvDV, our head of insights. Hey, Sean. If you're anything like me and you've got a lot of plants, I can imagine all these sensors are gonna be bringing in a ton of data into your into your director's project. So what better way to use insights or our dashboards to build up, targeted, insights which give you a summary of all the information in one page. We have, time series charts that you can start to track the pH, the moisture and the temperature over time. And with built in filters as well, you can you can filter by room, by particular plant, or even by the season if you want to track, the growth or the moisture over the seasons. There's a ton more use cases that we could build in, but those are just good. Some 3 quick summaries of what you could build with the Director's insights. Wow. This all sounds great. I'm gonna leave you in the workshop to make this real. So Sean, we built you a soil monitor. There's sensors in here that every hour monitor the status of the planet. And if it's in need, we'll let you know via text messages exactly what's wrong. Wow. That's amazing. I'll never kill again. Thanks, directors. Thank you so much. What a wonderful first episode of Automate My Life. Thank you for taking part. If you have an idea for a future episode, you can probably keep it to yourself. This is probably a one and done. Thank you, and bye for now. And that's something we can help you with. I certainly hope so. I think we can handle discus team. What's the new company again? Director. Director. Wow. That was quite something, I hope you enjoyed. And I'm also very glad that the bloopers reel did in fact stay in because it was a lot of fun to record. There were some great ones. So, next up is sorry. I've gotta compose myself. It was so cringey. I could still feel it, like, in my cheeks. So next up, we have what I always say is my favorite part of the change log, and that is the community showcase. This month, we have Josh talking through the note taking system he built, so I'm gonna send you over to him. Hi there. I'm Joshua Behmendurfer, a software developer and IT manager at a Christian nonprofit. I have a tendency to build odd solutions like this one to solve mildly frustrating problems. Today, I'm showing off an offline first portable note taking system that integrates with Directus. It uses the Tiletec's awesome hackberry pi 0 for the hardware. This little doohickey with a physical keyboard, And Directus to store and retrieve data. Here's how it works. 1st, in Directus, I'm going to create a new collection called to do with a manual primary key which we'll set to the current date from the note taking system. Then we'll add a single simple markdown field that we'll use for our task list. And you can do more complicated stuff. I'm just going with the markdown field. Then I'm going to add a, assign to field that references a contact so that I can show how, relationships work with the note taking system. And then we should be good to go. Alright. Now let's take a look at how to create and edit notes on the device. I'm gonna use my Android phone here because it's pretty hard to take a recording of the Hackberry without my fingers getting in the way. I've got my editor open with a new text file. This file contains commands that interface with the Directus API. Let's skip the current date so that we can refer to it when creating today's to do and then get the ID of my contact entry so that the to do could be assigned to me. I'm using the Directus search and field parameters to find just my contact ID. Alright. Now we've got that ID. Let's make a view to do for today. We could use the, dollar sign to refer to the output of previous commands. Like, you were setting the ID to the current date. And then I'm going to assign that contact to my that, to do to myself. We're on it. Now let's add some tasks for some things I need to do today. Well, let's see. We could take out the trash. I should probably do that. We should do the laundry. That definitely needs to get done. What else? I should probably record this video. Alright. And then when I hit control r, these changes sync to Directus. And then they're also saved locally in this file for offline editing. I can make changes and they will get synced to my Directus instance. So let's take a look at what has been saved. As you can see, the tasks, assignment, and date are all here. I built this system because I forget things pretty easily and I'm always remembering them at the wrong time. So, to try and capture those fleeting memories, I tried to take notes on the go. Especially at Berk when I'm needing to walk between different people's offices and just catch up with all sorts of things people are saying while I'm, away from my desk. So, I started out with all sorts of notebooks and even designed several variations of reusable note cards, but I could never find the right note card at the right time and digitizing them constantly to make them searchable turned out to be quite a chore. To make the switch to digital notes, I started with Obsidian. It worked pretty well, but I never had the flexibility in data structures and the querying capabilities that I wanted. The text editing experience and syncing proved finicky at times as well. It was close to what I wanted, but not quite right. I solved the structured data organization problem using Directus. The Data Studio makes it a breeze to set up all the collections and fields I need to organize my data the way I want to and it backs it with the full power of a SQLite database. Anything it doesn't support out of the box, I'm a software developer, I can build on to it. But, I had two main issues with the vanilla Directus setup. Number 1, it doesn't work offline and I was always forgetting to hit the save button in my notes And trying to switch between other apps on my phone and direct us while in the middle of a bunch of other things just put too much friction in the note taking process. So, when I saw the Hackberry Pi come up for sale, it seemed like the perfect crazy gadget for taking notes. My, fat thumbs make typing on a touchscreen a pain, so a device with a physical keyboard was perfect. And, it's still small enough to fit in my shirt pocket. I snagged one once they were in stock and while waiting for it to ship from Germany I threw together some simple software to communicate with Directus. This system uses the micro text editor, which is a convenient, easy to use command line text editor that also happens to be extensible with Lua. And I combine it with an indentation based syntax for encoding JSON as the small scripts do things up to direct us. It's not pretty and it does have all sorts of interesting ways of crashing but it works very well for my use case. When I need to take notes, I press the hotkey on the Hackberry, the note I want to edit comes up, then I just type and sync to Directus once I'm back online. I doubt this exact system will be of much use for anyone else but it just goes to show the creative things you can do with Directus to Scratch, personal or work related itches. There's all sorts of wonderful ways you can wire things up. Thank you for your time. Goodbye. Alright. Thank you so much to you, Joshua, for taking the time to, record the video and share with us as we always love to see what people are doing with directors. I see that a couple of people have got a video blur, we are on it and we're trying to fix it and see what we can do. Hopefully it comes back to normal. I don't think it's been that way the whole time so fingers crossed it's just a bit of a rough patch and it will be fine again going forward. I'm gonna send you over to Carmen who has the first video of Sharp Focus and I'm gonna allow her to talk through exactly what that series is and the rest of the series is also out now on director's TV. So I'll find the link for you in the chat as well. Alright. Over to Carmen. Hello, everybody, and welcome to Sharp Focus, the show where we shine a lens on how Directus helps you transform your images and truly make them shine. My name is Carmen, and I will be your guide over the next 5 episodes where we'll learn how images can be transformed, how they work under the hood, how they can be manipulated, how they can be resized to be more performant, how you can use advanced transformations, and how you can use presets to take all of the above and apply it in one fell swoop. Now as it turns out, Directus offers a bevy of options for working with images out of the box powered by the sharp API from Node JS. And we're going to be taking a look at how to do that in a way that's going to be super fun and super approachable. So won't you join me in grabbing our cameras and let's dive right into finding out how Directus works with images. So here we are in my very own Directus project running locally dedicated to my photography. Right now, we are in the file library module where you can see that I have a folder over here on the left sidebar. This folder contains photos from my latest trip to my home country Chile. Now, I'm going to use Directus to work with these images for different applications, thumbnails, that sort of thing. But, as you can see, a lot of these images are of varying sizes and qualities. But that's okay. We can use to transform these images to create some consistency and even add some cool effects, which we'll be doing in this series. But first, let's take a little look at what makes these images tick. Now I've already uploaded these to Directus, so this gives me a couple of options to work with them. If I click on one of the images, for example, the photo of my trip to the national park, Torres del Paine, we will see that we can do things like change the title, add a description, some tags, location, if we wish, some focal points, more on that later, and also have access to its asset ID. But that's not all. We can even edit that image. Now we're not going to be doing that in this series, except for using it to create focal points. But again, more on that later. Now, if I want to access that image from say my browser, I can take that asset ID and navigate to my instances URL/assets/the ID of that image, which is fantastic. But one thing to bear in mind, I'm logged into Directus as an admin. But if I wanted to access this image from an application, I would need to assign that application the correct permissions, which we can do here in Directus. When I navigate to the settings module and then go over to access policies, we can see that I already have some permissions and roles set for administrators, which is my logged in user. But I wanna make these images fully public. So what I can do is click here on public and under permissions, click on add collection and select the Directus Files system collection. I will be able to assign different permissions for folks accessing that from anywhere. But I only want to give folks the ability to read. So we'll click here on read access and then assign all access. The last thing to do is to save that permission. Fantastic. Now I can access this image from a browser, from an application, from anywhere. So let's go back and look at that image. Now you remember that these images are of different sizes and qualities. So in order to create some consistencies, we're going to be applying different image transformations, but also giving them a little bit of pizzazz with some advanced transformations. It's gonna be super cool. Before we wrap up this video, I'd like to show you a couple of the types of transformations we can do. In the next video, we'll be looking at image manipulation where we can use query parameters like width, like height, and fit to manipulate our image and in this case make it a consistent 300 by 300 pixels. But that's not all. In our 3rd episode, we'll be looking at how we can manipulate the size and performance of our images. For example, here we're applying a quality of 5% and a format of web P to be used in our applications. Next. Now bear with me. We're going to be doing some advanced transformations. Now this looks a little wild, but you'll see that we're applying some powerful transforms with that sharp API. So we're applying a blur, a tint, we're negating colors. All of this is done with direct us, which is super cool. And finally, in our last episode, we'll talk about preset transformation where we can assign presets to a key, and that way we don't have to type out all of those transformations, but rather place them in one consistent place in Directus. Finally, let's talk about that processing power. You might think it'd be pretty cumbersome if every time I reload this image, it reprocesses all of those transformations. And I have good news. That transformation is done once and then saved in Directus, and you don't have to apply that every time. That means that you can reload that image worry free of any extra processing power done. So there you have it. Now we've seen how direct us works with images out of the box and how we can apply access permissions, which is gonna be super handy because in the next 4 episodes, we're gonna be working with a new Nuxt application to work with these images and display them in a variety of ways using transformations. So what's next? In episode 2, we'll be looking at how to resize our images using width, height, and other parameters, and I can't wait to show you all how it works. So till next time, keep those cameras ready. We've put together a reading list from suggestions within the director's team of resources they found interesting, educational, or entertaining this month. Firstly, we have how we built a powerful JSON data type for ClickHouse. They talk about some of the challenges they face, such as true column oriented storage, dynamically changing data without type unification, and prevention of avalanche of column data files on disk. Next, a conflict free replicated data type, also known as a CRDT, is a data structure that lets multiple users or applications make changes to the same piece of data. This blog post from BlockSuite, called Building Document Centric CRDT Native Editors, explores the evolution of collaborative document editors, including the transitioning from the traditional editor centric approach to the document centric approach. Next, not a blog post, but an interesting project, pdlight. Run a full Postgres database, locally in WASM, with reactivity and live sync As opposed to running it in the application, you can run this in the browser, dependency free And unlike previous Postgres in the browser projects, pdlight does not use a Linux virtual machine. It is simply Postgres in WASM. Finally, there are some roles that rely on you being able to work with a lot of people from different teams where sometimes that's not always possible time wise and they become a blocker. This post from Kirk Campbell addresses that challenge by looking at how to utilise AI, specifically Claude Projects, in absence of people being able to give you their time and how to bridge that gap. Those are 4 really solid recommendations from the team that we hope you enjoy. We want to take a moment towards the end of the changelog to thank our amazing community contributors who give their time and expertise to improving the director's project. Since last month, there have been 3 releases and 8 contributors. A massive thank you to Gerard for adding support for batch editing in many to many and one to many table interfaces. Thank you to Jun Hong for fixing a display error when selecting Kanban layout for the first time, adding condition to only show the create dashboard if the user has the correct permission, fixing tag interfaces to correctly handle reset white space option, ensuring new operation can reuse same key as previously deleted one in current flow editing session, fixing an issue where the WYSIWYG interface would reload with every keystroke if custom formats are given, and fixing query time logging, leaking memory for failed queries. Thank you to Ayush for ensuring Elements login page are correctly truncated when not enough space is available. Thank you to Chris for adding save options to role and policy item pages. Thank you to Shay for fixing an issue where the mail sender is not displayed correctly for instances that use special characters in project name. Thank you to Shane for ensuring failing GraphQL requests are properly handled by throwing an error and exposing errors and data information. Thank you to Osman for fixing disabled state of the add file empty state button for users without permissions. Thank you again to all our contributors, and you can see their specific pull requests inside of the full release notes on GitHub. Lastly, we also want to take the time to thank the GitHub Sponsors of October for financially contributing to Directus' development. A huge thank you to Clement, that's DLXCLM, for sponsoring our backer tier of $100 a month. A huge thank you also to Entle, d Mathams, Fergus, Omar, Marcus, c k, Tommy, Perissa, Utomic, Steven, Kadir, nonlinear, Andreas, Valentino, Anthony, John, Wayne, Adam, Jason, Birka, Jens, Marcel, Vincent, Mike, Weifan, Lassie, Pedro, and Gemma Liddin. Thank you so much once again. The money we are given from our GitHub Sponsors go straight back to community members who build tooling and extensions for the director's ecosystem. Thank you again for being part of that. Alright. That is the end of this month's changelog. If you've made it this far, thank you so much for staying with us and watching till the end. We really appreciate it. All of these recordings will be available on director's TV as well as all 5 episodes of sharp focus. If you are wanting to see anything new from, us as part of the change log, this, would be a great time to tell us. We'll be sticking around in the chat for a couple more minutes. If you've got any questions that do come up throughout the month, Discord general, Discord help are the places to go. We will be back with December's version of the change log on December 10th at 3 PM, GMT or wherever that is your time. Discord handily tells you in your current, time zone, which is great. I've put all of the reading list recommendation URLs in the chat. If anyone's got any questions, as I said, we will be hanging around for a couple more minutes. But other than that, thank you so much once again. I hope you have a great week, a great month, and hopefully see you next time for December's change log. Have a great day, everyone.","published",[135,149,156,163],{"people_id":136},{"id":137,"first_name":138,"last_name":139,"avatar":140,"bio":141,"links":142},"791e1503-1d88-463d-9347-0b9192933576","Bryant","Gillespie","9013afc8-e8d7-4182-9b18-44db08117bb9","Developer Advocate at Directus",[143,146],{"url":144,"service":145},"https://directus.io/team/bryant-gillespie","website",{"service":147,"url":148},"github","https://github.com/bryantgillespie",{"people_id":150},{"id":151,"first_name":152,"last_name":153,"avatar":154,"bio":155,"links":8},"3dec7812-3664-4d2d-93f8-efc876988cc7","Beth","Loft","1277761e-2a3b-4103-b29b-ffc97e8370f5","Developer Experience at Directus",{"people_id":157},{"id":158,"first_name":159,"last_name":160,"avatar":161,"bio":162,"links":8},"49c9e2fa-e7d7-45c9-b7b0-7125a2219f16","Carmen","Huidobro","fedb548b-def3-437c-b90a-f0d4d3d81d1d","Developer Educator at Directus",{"people_id":164},{"id":165,"first_name":166,"last_name":167,"avatar":168,"bio":169,"links":170},"82b3f7e5-637b-4890-93b2-378b497d5dc6","Kevin","Lewis","a662f91b-1ee9-4277-8c9d-3ac1878e44ad","Director of Developer Experience at Directus",[171],{"url":172,"service":145},"https://directus.io/team/kevin-lewis",[],{"id":175,"number":176,"year":177,"episodes":178,"show":183},"093d2e2b-8006-4f05-a00c-22f124332e56",1,"2024",[179,180,181,122,182],"07591f9d-8187-47fd-9904-92eda024043a","61e8a740-8f60-40e8-9fc3-d9bcda53d16b","a5361f29-432a-4602-ae17-57da36b48d19","11513676-0e94-4407-bee0-387ae2bca2ac",{"title":184,"tile":185},"The Changelog","de6f3b4b-3c36-4142-819b-3312690e08a1",{"title":8,"meta_description":8},{"id":182,"slug":188,"season":175,"vimeo_id":189,"description":190,"tile":191,"length":192,"resources":8,"people":8,"episode_number":193,"published":194,"title":195,"video_transcript_html":196,"video_transcript_text":197,"content":8,"seo":198,"status":133,"episode_people":199,"recommendations":205},"5-december-2024","1037759355","Join us for The Changelog, taking you through the month’s Directus updates including product updates, new content and community contribution highlights. This month's show includes a year in review recap, a community showcase from Petros showing a universal translator extension, an episode of a new show on Directus TV called Bobby Tail's Little Library and more...","aec34c4a-1d8e-4e5c-acb3-a3a5cd456af2",39,5,"2024-12-10","December 2024","\u003Cp>Speaker 0: Alright. Hello. Hello, everyone. Welcome to December's version of the change log. Hope you're all having an amazing day.\u003C/p>\u003Cp>If you are joining us live, welcome. Let us know in the chat where you are joining us from as usual. We love to see it. We've got a really great show for you today. We have the usual product and extension updates.\u003C/p>\u003Cp>We've got the year in review for you, a community showcase, and a new show that we launched on director's TV today. So stick around if you are able to. We'd love to be able to chat with you along the way. Hello, everyone. So great for joining.\u003C/p>\u003Cp>Hello. Hello. Yeah. Let us know in the chat if you are joining. Oh, Canada.\u003C/p>\u003Cp>Hello. Welcome. Morning time, early morning time. Welcome. Glad for you to be joining us.\u003C/p>\u003Cp>Florida, super exciting. Much more exciting than London, personally. I think so at least. But, yeah, great to have you all here with us. So I'm kicking off with Alex who's gonna take you through the product updates for December.\u003C/p>\u003Cp>Speaker 1: Hey, folks. Alex here, director of web engineering, and I'm going to be taking you through the core updates that have happened since the last changelog. There's been a few releases, but here are the notable things to be aware of. In 11.2.2, we made s three connection settings configurable via environment variables. This includes things like connection timeout.\u003C/p>\u003Cp>In 11.3.0, we introduced new retention settings for activities, revisions, and flow logs. These 3 system tables can become quite large, and now you can change how long they will be kept for being preened. Earlier this year, we committed to providing security updates to Directus 10 until the end of the year. Make sure you upgrade to 10.13.4 if you're still on the version 10 family. The same patch has been included in the Directus 11 patch as well.\u003C/p>\u003Cp>That's all for me. Handing back over to Beth now.\u003C/p>\u003Cp>Speaker 2: I'm going to demonstrate each of the extensions new in Directors Labs this month. As a reminder, Directors Labs is our team's experimental org in GitHub, which regularly publishes new extensions. Here's a demo project to showcase what's new. The address completion interface integrates Google Places auto complete data API directly into the director's editor. This improves data quality and stores data in a standard GeoJSON feature format.\u003C/p>\u003Cp>It also enhances user experience by speeding up address entry. You can swap between map tiles or, when setting up the interface, skip the map altogether. The tour group interface is one we are super excited about. You can set up guided tours around director's editor to help your content authors better understand your configuration. You can set up multiple with their own labels, but we've set up one here to demonstrate.\u003C/p>\u003Cp>As you see, it's a multi step tour which moves between any of the interfaces in the UI. If we go to the interface settings, here, you can see it's a group interface, so items which are children can be included in the tour. You can add any number of tour steps. We have to first specify any element to select. This extension injects a couple of classes for each field, one for the whole field including label and one just for the output.\u003C/p>\u003Cp>You can specify a title and description and other metadata for display. This is gonna be so helpful when handing off your data project to end users. This is a choropleth panel. You've likely seen something like this before where countries are highlighted more intensely based on the higher values. Here, we have a views collection and a field called country, which contains a 2 letter ISO code.\u003C/p>\u003Cp>You can also use 3 letter or m 49 country codes. Like many other panels, pick an aggregated field and function. Here, we are counting the number of items with the country. We think this will be useful for understanding visitors and customer data based on country. The HubSpot API operation provides a way to interact directly with the Hub Spot API from Directors Automate.\u003C/p>\u003Cp>Once you provide your API key with correct access, you can interact with a load of endpoints like contacts, deals, and emails. Once you select an endpoint, you have a number of suitable actions available. Here, you can create, read, update, delete, or list your contacts. So this could be used to update a record whenever data changes in Directus, for example. We're really happy to be offering this extension to speed up integrations with your existing data sources.\u003C/p>\u003Cp>Speaker 0: Alright and I have just now put the link to check out all the extensions in the chat so if you are excited, as we hope you are, about those extensions do let us know, check them out yourself. Before I put us over to the year in review, I do also want to shout out a new project Brian has created called salty open source Santa. You write a letter to Santa including your GitHub username and Santa tells you if you are on the naughty or nice list. It's all in good fun but I also am really excited that Bryant has put through a blog post and a video talking through how he created the project as well. It's well worth checking out, so I will also include the links to those in the chat as well.\u003C/p>\u003Cp>Right now, I'm sending you over to Wrike to kick us off for the 2024 director's year in review.\u003C/p>\u003Cp>Speaker 3: Welcome to our 2024 recap where we walk through all of the cool and exciting things we added to Directus this year. I'm Reik, the CTO and cofounder of Directus. I'm going to be kicking this off by taking you through what we shipped in new releases to the core Directus project. Seeing that we shipped over a 1,000 things, I won't be listing all of them, but here's the top ones. Opening with a small but impactful feature, we added vocal point support, which allows you to set a vocal point coordinate via the API or the data studio when you're cropping images.\u003C/p>\u003Cp>That way you can ensure that the important parts of your image remain visible no matter what sizes you're generating in the API. In March, we released the beta of the marketplace, launching our extensions registry, enabling the distribution and installation of extensions in any Directus project. This was also a great way for us to be able to ship new features via extensions, which Beth will talk about later. We also brought upgrades to content versioning and live preview so you can check out what content will look like in your project without needing to publish it to the API. In version 10 dot 11, we introduced public registration, simplifying the process of allowing any user to create new accounts.\u003C/p>\u003Cp>This is available both in the Studio and via our new registration and verification APIs. To further extend public registration, we also introduced configurable user limits so you can control the number of users in your project, giving you more control over how your project runs. Over the summer, we released a new major version of Directus version 11. This introduced policies, changing the way you can compose access control throughout your project. We also used this opportunity to announce our first ever extended security update period for a version of Directus for those who weren't quite ready to migrate to the new version yet.\u003C/p>\u003Cp>In your project settings, you can now also find streaming system logs inside of the data studio for greater visibility into what's going on in your API and debug any problems along the way. For more information on this or any of the other things I just mentioned, do check out the detailed release notes on GitHub. Next up, we have Kevin taking you through our cloud recap.\u003C/p>\u003Cp>Speaker 4: Thanks, Reich. Now I have the pleasure of recapping everything that's happened this year for directors cloud. If you've not heard of it, directors cloud is the way to host directors projects managed by the team who build it. You, of course, can still self host Directus, and we make that as easy as possible. But if you want hardware maintenance, upgrades and migrations, and storage handled, Directus Cloud is for you.\u003C/p>\u003Cp>We provision a database, asset storage, caching, and more. Just a few button presses in the cloud dashboard, and you're ready to go. Now 2024 added a lot of requested features and capabilities to Directus Cloud. Probably the biggest change is to our pricing and the introduction of our new starter tier. This lowers the barrier even more to getting started, and it starts at just $15 a month.\u003C/p>\u003Cp>Remember, that's not only Directus, but a database, asset storage, caching, and all of the work required to keep an application online and secure. We also introduced a new self serve business tier that sits above our existing professional tier, but for customers who aren't quite ready for enterprise. This year, we also introduced auto scaling to cloud projects to make sure they always stay online. There was actually a significant amount of infrastructure work in the background to enable all of these changes, so shout out to our infra team for making it happen. In Director's Cloud, you can now add custom domains and set advanced project configuration that allows the editing of key environment variables.\u003C/p>\u003Cp>This is a big deal. It was one of the key pieces of feedback we had from cloud customers, and we're happy to have addressed it. We've picked important variables and a safe kind of pre picked allowed values to ensure that all projects on directors cloud continue to run smoothly. But if you want to see more, just reach out and let us know what you'd like to see. Lastly, we hear that launching a directors project for the first time can be a bit daunting, as you have a powerful but ultimately blank canvas to set up.\u003C/p>\u003Cp>When you set up a cloud project, we now offer the ability to set it up with one of our cloud templates, one for CMS, one for CRM, and one for ecommerce use cases. That's a lot of new stuff in Director's Cloud this year. Now we're reaching the end of the year, and quite frankly, I need a nap. So I'm gonna kick it back over to Beth to talk to you about all of the new extensions we shipped in 2024. Thank you so much for coming with me on this journey this year, and I'll see you next time.\u003C/p>\u003Cp>Bye for now.\u003C/p>\u003Cp>Speaker 2: Thanks, Kevin. Hello again, everyone. In every change log we have, we talk through the new extensions we release. There've been quite a few, so I'm here to take you through a short recap of some of our favorites. Starting off with directors dotai.\u003C/p>\u003Cp>Directors dotai is a group of 11 AI based extensions, which brought new capabilities to directors automate. We've integrated with best in class AI platforms to allow you to transcribe audio, generate images, write text, and scrape web pages. There's a whole lot in Director's AI, and we have a whole series on Directus TV to talk you through each of the extensions. We've added a bunch of new interfaces for Directus Editor. Rich interfaces for video, audio, PDF files, and address auto completion Collaborate with our new whiteboard and Wherebycalls interfaces Allow users to navigate multi selections via API with the multi level Autocomplete API interface One of our most upvoted feature requests, calculated fields, is also now available as an interface It supports loads of functions and dynamic data from your items.\u003C/p>\u003Cp>And our new tool group, releasing today, allows you to create guided tools around the editor to support your content authors. We've added some really powerful new layouts. The spreadsheet layout and the Gantt chart layout. Directors Insights has also received lots of love with a load of new panels, a more detailed table that you can drop in, Lots of new charts: scatterplot, funnel, tree map, timeline, and a choropleth map. And a new flow trigger panel, so you can execute automations directly from your dashboards.\u003C/p>\u003Cp>Finally, new service integrations. As well as Whereby Video calls that we mentioned earlier, we now have integrations with Flausible Analytics, resend's email service, and the HubSpot CRM. Moving away from extensions, I also want to briefly talk about templates, which is something we've also added this year that can help you get building with directors faster. This year, we launched a template directory, with templates built by both our core team and community members. Currently, there are templates for building a content management system, a customer relationship manager, an ecommerce store, an agency operating system, an event operating system, and an adventure business kit comprising a website, blog, and CMS.\u003C/p>\u003Cp>These are all available to browse on directors. Io / templates. I'm gonna hand over to Carmen now for taking you through the content recap.\u003C/p>\u003Cp>Speaker 5: Thanks, Beth. I'm Carmen, developer educator here at Directus. This time last year, we launched Directus TV. Between then and now, we've added over 250 episodes across nearly 40 shows. A huge amount of entertaining and educational resources.\u003C/p>\u003Cp>Some highlights from this year include new seasons of 100 Apps in 100 Hours where Bryant races against the clock to create his own versions of a customer relationship manager, a remote job board, and a social media platform to name only a few. A new season of Trace Talks from John and Pedro interviewing senior engineering leaders such as David Zimmer from Netflix and Dana Lawson at Netlify on their journeys and experiences in the tech industry. Also, a new season of Short Hops continuing to take you through quick ways of getting more from Directus, the 20 24 episodes, including transformation presets, focal points, and version control. We've also launched many new shows including what's in your dock, where we ask guests to show us their most used hardware and software, Ready, Set, Battlesnake, where Andrew and Kevin build a capable snake inside of a Directus project. As well as the joy of theming where Bry Ross shows how to make theming masterpieces.\u003C/p>\u003Cp>Democratizing data got to grips with using open data and Directus to build new applications around data like the trees of London and meteorite landings. Bridging Bytes brought together technology leaders to discuss the future of sustainable open source and how agencies innovate. Enter the workshop, invited friends from Twilio and Deepgram to build extensions live on air. And my new show, Sharp Focus, hosted by me as I show you how to use image transformation as part of Directus files. Keep an eye out for this and many new shows at directus.i0/tv.\u003C/p>\u003Cp>This year, we've also published over 50 new tutorials to help you get the most from Directus. We've published getting started guides for Sveltekit, ASTRO, Next, Nuxt, and more. Developers in other languages, we got you. There's loads including posts for Django and Flask devs, those who use Flutter, Kotlin, and Swift, and for the Laravel community too. You can now find loads of Directus automate tutorials showed how to integrate with Clarify's image recognition APIs, GitHub and OpenAPI.\u003C/p>\u003Cp>We believe you should be able to host Directus anywhere. So we wrote new content to help you deploy Directus on Azure, Google Cloud Platform, and AWS. There are some really cool project write ups as well, including building ecommerce projects with Stripe integrations, using Directus as a baby health monitor with Opsgenie, and building event registration systems. We also have new migration posts, including one for WordPress and integration with different indexing systems like Algolia and Elasticsearch. This is not all and we encourage you to take a look at our tutorials in our docs to explore our whole collection.\u003C/p>\u003Cp>That's all for me. We hope you've enjoyed this recap. And as always, if you've got any questions, let us know on Discord.\u003C/p>\u003Cp>Speaker 0: Alright. So that was a recap of some of the highlights for 2024. Whether you have been with us the whole year or you are new to directors this year, we'd love to hear what your year has looked like with directors, whether anything has changed, whether you've brought in anything new that we've talked about. But, yeah, it's been great to spend a second to just look back rather than constantly looking forward, and put together the year in review for you all. So we hope you enjoyed it.\u003C/p>\u003Cp>Next up is my personal favorite. I say this every month and every month it is true. It is the community showcase, and this month, we have Petrus Diaz talking through the universal translate flow operation.\u003C/p>\u003Cp>Speaker 6: Hi, everyone. My name is Petros Diaz, and I'm here to demo, Directus flow operation extension that we've built called a universal translator. And the main task of the universal translators is to translate anything that you throw at it, be it a string or a JSON object or an array. Let's have a quick look of how that works. You just place the universal translator within your flow and the only thing you need to do is provide the input translate which can be a direct string or a variable and choose the language which can be based on the user language that the user has selected, or you can choose from the drop down.\u003C/p>\u003Cp>We haven't included the entire language collection here, which we can do so in the future. Let's just leave it to auto for now. And just let's, let's run it real quick so you can see the results. I have a ready made flow here. So this flow creates a PDF, for the user in the language they've selected.\u003C/p>\u003Cp>And let's have a look at the result. Here it is. So you can't really tell which are the translated fields here but status, author, process, location, approved all of these are translated fields. And let's look at them in the actual record and here they are. So approved becomes approved and horizontal processes becomes horizontal processes but let's also have a look in another language just to make sure that everything works as described.\u003C/p>\u003Cp>And what we want to do is just run it again And here it is. Here you can see that, all of these fields have been translated to the, corresponding translations from the, directors collection, Directus translation. So the way this works, it's really simple. The operation just looks for a mustache type translation field which can be like this. So anything you want translated should go in the mustache syntax which is this here along with the closing bracket.\u003C/p>\u003Cp>So, let's make it quite big so it's visible. Let's hit save and try that again. And you can see here that our mustache syntax has been translated to the to the translation from the internal collection. It's a really simple, extension, and let's have a look under the hood. So this is the actual code for the extension.\u003C/p>\u003Cp>It's very short code as you can see. That's it. Just 79 lines of code, nothing remarkable. And you can see where the database pulls the, well the extension pulls language selected for the user from the database. And that's pretty much it.\u003C/p>\u003Cp>The rest is just for the options and it's a very simple extension. Now why did we create this? Because we have various users using our platform in a number of languages and all of these fields, would need to be translated. So we figured a very simple way to do that, which can be used and reused. And you can even use it for sending emails using the internal emailing service.\u003C/p>\u003Cp>We were considering other solutions as well, translating the fields internally through code or, just having a number of selections in all languages. But we figured that's not really viable as a solution because we are looking to expand a number of languages, and we really needed the localization for all of our all of our users. The, the challenge the biggest challenge in creating this, I think was pretty much creating the extension itself because we didn't really have experience. But using the provided guide from the director's documentation, it was actually pretty straightforward to build this, this extension. That wasn't so difficult.\u003C/p>\u003Cp>I guess it would be good to expand this to make sure that it works properly in any kind of, input. It doesn't miss any nested translations, which is very important that it does a recursive search of the translations that it actually executes. We do need to replace the choices with the actual languages from the collection. This doesn't need to be hard coded. It was just for our demo.\u003C/p>\u003Cp>And, I think this is pretty much it for something that needs to be translated. We don't really need to get into, more functionality or more detail, But if anybody would, be willing to help with expanding even just a little bit and, fixing our code just here and there, I would be grateful and, you know, you just make it available for everybody else as well. So, our add on is not yet our extension is not yet available on the marketplace, but you can download it from our GitHub repo, build it, and deploy it yourself, test it out. And if you have any comments, just open and, an issue in the GitHub and we'll see if we can, help out in resolving it. That was it.\u003C/p>\u003Cp>Thank you for watching. And I hope you can watch any other videos we'll make in the future for any of our other extensions.\u003C/p>\u003Cp>Speaker 0: Alright. Thank you once again to Petros for taking the time to record it for us and talk us through it. We always really appreciate it. If you'd like to see more about different projects that are being built with directors, highly recommend the I made this channel on discord. It's especially great because every now and then people give us updates and so you get to see kind of as it's built along, which I think is really sweet.\u003C/p>\u003Cp>Next, we have an episode of Bobbie Tail's Little Library, which is a brand new show we've added to director's TV today, and it is a narrated storybook. So we have a short episode for you from that series.\u003C/p>\u003Cp>Speaker 7: Bobby Tail and the library construction crew, read by Catherine Steiner. Bobby Tail had a big problem. The tree library was running out of space. Books were stacked in every corner, and new stories arrived each day. We need to build a new wing, he said, adjusting his blue vest.\u003C/p>\u003Cp>But building a library wasn't like building a regular treehouse, everything needed to be perfectly organized. Binary Badger arrived first, pocket watch ticking. Before we build, he said, we need a proper blueprint. Just like a tree needs strong roots, a library needs a strong foundation.' Together, they drew plans for different rooms. 1 for storybooks, another for pictures, and a special vault for magical scrolls.\u003C/p>\u003Cp>The Raymould family popped up from their tunnels, each wearing their numbered sweaters. We'll help organize everything, they squeaked excitedly. Each book needs its special place, just like we have our numbered homes. That way, we'll always know where to find things. Lily and Luna, the loop scroll sisters, swished their tails as they tested different bridges between the library sections.\u003C/p>\u003Cp>We need magical pathways, Lily began, so everyone can find exactly what they're looking for, Luna finished. They created special rope bridges that connected every room to every other room. Daisy Debock Duck waddled in with her magnifying glass. 'Let's test everything,' she declared. She checked each bridge, each shelf, and each room.\u003C/p>\u003Cp>We must make sure every friend can find their books easily,' she explained. Marking items off her checklist with her wing. Variable goal arrived with her magical bag. Now for the special items, she announced. Together, they created cozy reading nooks, picture frame holders, and scroll cases.\u003C/p>\u003Cp>Everything had its perfect spot, ready for all kinds of woodland treasures. Finally, the new library wing was complete. Bobby Tayl stood proudly with his construction crew. The Arraymalls organized the books, the Loop sisters bridges connected everything perfectly, and Daisy Duck had tested every path. It was more than just a library, it was a magical place, where every piece of knowledge had a hole.\u003C/p>\u003Cp>This story introduces the back end concepts of data modeling, APIs, and file management.\u003C/p>\u003Cp>Speaker 0: Alright. Hopefully, you like that as much as we do. I am putting the link to the show for for the rest of the episodes. If you or anyone you know would like to check that out, we highly recommend. We also really enjoyed putting it together.\u003C/p>\u003Cp>So glad to see you're already, liking it. Someone said, just landed. What am I watching? You were watching a new director's TV episode of Bobbie Tail's Little Library. So welcome, and glad you're here.\u003C/p>\u003Cp>We have mixed up the reading list, so I'm gonna send it myself there.\u003C/p>\u003Cp>Speaker 2: We put together a reading list based on resources shared by the director's core team on things they found interesting, educational, or entertaining this month, and we'd like to share it with you now. Firstly, we have an interactive study of queuing strategies from Encore, comparing 1st in, 1st out, last in, 1st out, and priority queues on wait time, drop results, and process time outs. Next, we have an interesting approach to testing query results for different database vendors. This allows you to test identical SQL results across database drivers or dialects for the same queries in a semi automated fashion. Next, there's an interesting write up on AI assisted coding from Adi Osmani talking about the hidden cost of AI speed brought about by edge case handling, error handling, and questioning output, and how AI tools help experienced developers more than beginners.\u003C/p>\u003Cp>Lastly, this article is about making focus outlines look better. They're the glows that appear around form inputs in focus in the browser. We particularly like how there's some real world examples in this post as well. That's all from the reading list this month. As always, if you have your own reading list suggestions, we'd love you to share them in Discord with us.\u003C/p>\u003Cp>We want to take\u003C/p>\u003Cp>Speaker 0: a moment towards the end of\u003C/p>\u003Cp>Speaker 2: the changelog for thanking our community contributors, who give their time to improve the director's project. Since last month, there have been 5 releases, directors 11.2.2 to directors 11.3.2 and 7 contributors. Thank you to Robson for fixing a HTML validity issue in the table component, Alex for fixing SSO GitHub sign up for users without public emails, George for allowing the login timeout for open ID SSO login to be adjusted, Nicholas for fixing typos in relational MD, Matthew for fixing WYSIWYG file upload extension to use filename disk, Ziles for fixing specifications TS to generate required array in open API schema, and Nick for adding select all and delete buttons for notification straw. Thank you again. You can see their specific pull requests inside of the full release notes on GitHub.\u003C/p>\u003Cp>Lastly, we also want to take the time to thank our GitHub Sponsors of November who financially contribute to Directus' development. A huge thank you to Tessent, Entle, dmathams, Fergus, Omar, Marcus, c k, Peter, Utomit, Steven, Robson, nonlinear, Andrea Valentino, John, Wayne, Bjorn, Adam, Jason, Birka, Jens, Vincent, Mike, Khan, Lassie, and Wayfan. The money we are given from our GitHub Sponsors goes straight back to community members who build tooling and extensions for the director's ecosystem. Thank you again for being part of that.\u003C/p>\u003Cp>Speaker 0: Alright. And that was the change log for December. Thank you if you are still here for joining us along the whole way. If you randomly entered into Bobby Tales and you got very confused as to what was going on, welcome and thank you for joining us the whole way too. Any questions after this is over, please put them in Discord.\u003C/p>\u003Cp>We love hearing from you along the way as well. And if you have any 2025 changelog or not wishlist items that you'd like to see from us do let us know in discord too, as we are super interested in hearing how we can make this better and more interesting and useful for you all. It is for you after all. So if there is anything you'd like, this is actually I'd like to see this. Let us know.\u003C/p>\u003Cp>We'll no promises, but we will see what we can do. Thank you so much once again for joining us and, yeah, have a great rest of your day, your week, and your 2024, everyone. Bye.\u003C/p>","Alright. Hello. Hello, everyone. Welcome to December's version of the change log. Hope you're all having an amazing day. If you are joining us live, welcome. Let us know in the chat where you are joining us from as usual. We love to see it. We've got a really great show for you today. We have the usual product and extension updates. We've got the year in review for you, a community showcase, and a new show that we launched on director's TV today. So stick around if you are able to. We'd love to be able to chat with you along the way. Hello, everyone. So great for joining. Hello. Hello. Yeah. Let us know in the chat if you are joining. Oh, Canada. Hello. Welcome. Morning time, early morning time. Welcome. Glad for you to be joining us. Florida, super exciting. Much more exciting than London, personally. I think so at least. But, yeah, great to have you all here with us. So I'm kicking off with Alex who's gonna take you through the product updates for December. Hey, folks. Alex here, director of web engineering, and I'm going to be taking you through the core updates that have happened since the last changelog. There's been a few releases, but here are the notable things to be aware of. In 11.2.2, we made s three connection settings configurable via environment variables. This includes things like connection timeout. In 11.3.0, we introduced new retention settings for activities, revisions, and flow logs. These 3 system tables can become quite large, and now you can change how long they will be kept for being preened. Earlier this year, we committed to providing security updates to Directus 10 until the end of the year. Make sure you upgrade to 10.13.4 if you're still on the version 10 family. The same patch has been included in the Directus 11 patch as well. That's all for me. Handing back over to Beth now. I'm going to demonstrate each of the extensions new in Directors Labs this month. As a reminder, Directors Labs is our team's experimental org in GitHub, which regularly publishes new extensions. Here's a demo project to showcase what's new. The address completion interface integrates Google Places auto complete data API directly into the director's editor. This improves data quality and stores data in a standard GeoJSON feature format. It also enhances user experience by speeding up address entry. You can swap between map tiles or, when setting up the interface, skip the map altogether. The tour group interface is one we are super excited about. You can set up guided tours around director's editor to help your content authors better understand your configuration. You can set up multiple with their own labels, but we've set up one here to demonstrate. As you see, it's a multi step tour which moves between any of the interfaces in the UI. If we go to the interface settings, here, you can see it's a group interface, so items which are children can be included in the tour. You can add any number of tour steps. We have to first specify any element to select. This extension injects a couple of classes for each field, one for the whole field including label and one just for the output. You can specify a title and description and other metadata for display. This is gonna be so helpful when handing off your data project to end users. This is a choropleth panel. You've likely seen something like this before where countries are highlighted more intensely based on the higher values. Here, we have a views collection and a field called country, which contains a 2 letter ISO code. You can also use 3 letter or m 49 country codes. Like many other panels, pick an aggregated field and function. Here, we are counting the number of items with the country. We think this will be useful for understanding visitors and customer data based on country. The HubSpot API operation provides a way to interact directly with the Hub Spot API from Directors Automate. Once you provide your API key with correct access, you can interact with a load of endpoints like contacts, deals, and emails. Once you select an endpoint, you have a number of suitable actions available. Here, you can create, read, update, delete, or list your contacts. So this could be used to update a record whenever data changes in Directus, for example. We're really happy to be offering this extension to speed up integrations with your existing data sources. Alright and I have just now put the link to check out all the extensions in the chat so if you are excited, as we hope you are, about those extensions do let us know, check them out yourself. Before I put us over to the year in review, I do also want to shout out a new project Brian has created called salty open source Santa. You write a letter to Santa including your GitHub username and Santa tells you if you are on the naughty or nice list. It's all in good fun but I also am really excited that Bryant has put through a blog post and a video talking through how he created the project as well. It's well worth checking out, so I will also include the links to those in the chat as well. Right now, I'm sending you over to Wrike to kick us off for the 2024 director's year in review. Welcome to our 2024 recap where we walk through all of the cool and exciting things we added to Directus this year. I'm Reik, the CTO and cofounder of Directus. I'm going to be kicking this off by taking you through what we shipped in new releases to the core Directus project. Seeing that we shipped over a 1,000 things, I won't be listing all of them, but here's the top ones. Opening with a small but impactful feature, we added vocal point support, which allows you to set a vocal point coordinate via the API or the data studio when you're cropping images. That way you can ensure that the important parts of your image remain visible no matter what sizes you're generating in the API. In March, we released the beta of the marketplace, launching our extensions registry, enabling the distribution and installation of extensions in any Directus project. This was also a great way for us to be able to ship new features via extensions, which Beth will talk about later. We also brought upgrades to content versioning and live preview so you can check out what content will look like in your project without needing to publish it to the API. In version 10 dot 11, we introduced public registration, simplifying the process of allowing any user to create new accounts. This is available both in the Studio and via our new registration and verification APIs. To further extend public registration, we also introduced configurable user limits so you can control the number of users in your project, giving you more control over how your project runs. Over the summer, we released a new major version of Directus version 11. This introduced policies, changing the way you can compose access control throughout your project. We also used this opportunity to announce our first ever extended security update period for a version of Directus for those who weren't quite ready to migrate to the new version yet. In your project settings, you can now also find streaming system logs inside of the data studio for greater visibility into what's going on in your API and debug any problems along the way. For more information on this or any of the other things I just mentioned, do check out the detailed release notes on GitHub. Next up, we have Kevin taking you through our cloud recap. Thanks, Reich. Now I have the pleasure of recapping everything that's happened this year for directors cloud. If you've not heard of it, directors cloud is the way to host directors projects managed by the team who build it. You, of course, can still self host Directus, and we make that as easy as possible. But if you want hardware maintenance, upgrades and migrations, and storage handled, Directus Cloud is for you. We provision a database, asset storage, caching, and more. Just a few button presses in the cloud dashboard, and you're ready to go. Now 2024 added a lot of requested features and capabilities to Directus Cloud. Probably the biggest change is to our pricing and the introduction of our new starter tier. This lowers the barrier even more to getting started, and it starts at just $15 a month. Remember, that's not only Directus, but a database, asset storage, caching, and all of the work required to keep an application online and secure. We also introduced a new self serve business tier that sits above our existing professional tier, but for customers who aren't quite ready for enterprise. This year, we also introduced auto scaling to cloud projects to make sure they always stay online. There was actually a significant amount of infrastructure work in the background to enable all of these changes, so shout out to our infra team for making it happen. In Director's Cloud, you can now add custom domains and set advanced project configuration that allows the editing of key environment variables. This is a big deal. It was one of the key pieces of feedback we had from cloud customers, and we're happy to have addressed it. We've picked important variables and a safe kind of pre picked allowed values to ensure that all projects on directors cloud continue to run smoothly. But if you want to see more, just reach out and let us know what you'd like to see. Lastly, we hear that launching a directors project for the first time can be a bit daunting, as you have a powerful but ultimately blank canvas to set up. When you set up a cloud project, we now offer the ability to set it up with one of our cloud templates, one for CMS, one for CRM, and one for ecommerce use cases. That's a lot of new stuff in Director's Cloud this year. Now we're reaching the end of the year, and quite frankly, I need a nap. So I'm gonna kick it back over to Beth to talk to you about all of the new extensions we shipped in 2024. Thank you so much for coming with me on this journey this year, and I'll see you next time. Bye for now. Thanks, Kevin. Hello again, everyone. In every change log we have, we talk through the new extensions we release. There've been quite a few, so I'm here to take you through a short recap of some of our favorites. Starting off with directors dotai. Directors dotai is a group of 11 AI based extensions, which brought new capabilities to directors automate. We've integrated with best in class AI platforms to allow you to transcribe audio, generate images, write text, and scrape web pages. There's a whole lot in Director's AI, and we have a whole series on Directus TV to talk you through each of the extensions. We've added a bunch of new interfaces for Directus Editor. Rich interfaces for video, audio, PDF files, and address auto completion Collaborate with our new whiteboard and Wherebycalls interfaces Allow users to navigate multi selections via API with the multi level Autocomplete API interface One of our most upvoted feature requests, calculated fields, is also now available as an interface It supports loads of functions and dynamic data from your items. And our new tool group, releasing today, allows you to create guided tools around the editor to support your content authors. We've added some really powerful new layouts. The spreadsheet layout and the Gantt chart layout. Directors Insights has also received lots of love with a load of new panels, a more detailed table that you can drop in, Lots of new charts: scatterplot, funnel, tree map, timeline, and a choropleth map. And a new flow trigger panel, so you can execute automations directly from your dashboards. Finally, new service integrations. As well as Whereby Video calls that we mentioned earlier, we now have integrations with Flausible Analytics, resend's email service, and the HubSpot CRM. Moving away from extensions, I also want to briefly talk about templates, which is something we've also added this year that can help you get building with directors faster. This year, we launched a template directory, with templates built by both our core team and community members. Currently, there are templates for building a content management system, a customer relationship manager, an ecommerce store, an agency operating system, an event operating system, and an adventure business kit comprising a website, blog, and CMS. These are all available to browse on directors. Io / templates. I'm gonna hand over to Carmen now for taking you through the content recap. Thanks, Beth. I'm Carmen, developer educator here at Directus. This time last year, we launched Directus TV. Between then and now, we've added over 250 episodes across nearly 40 shows. A huge amount of entertaining and educational resources. Some highlights from this year include new seasons of 100 Apps in 100 Hours where Bryant races against the clock to create his own versions of a customer relationship manager, a remote job board, and a social media platform to name only a few. A new season of Trace Talks from John and Pedro interviewing senior engineering leaders such as David Zimmer from Netflix and Dana Lawson at Netlify on their journeys and experiences in the tech industry. Also, a new season of Short Hops continuing to take you through quick ways of getting more from Directus, the 20 24 episodes, including transformation presets, focal points, and version control. We've also launched many new shows including what's in your dock, where we ask guests to show us their most used hardware and software, Ready, Set, Battlesnake, where Andrew and Kevin build a capable snake inside of a Directus project. As well as the joy of theming where Bry Ross shows how to make theming masterpieces. Democratizing data got to grips with using open data and Directus to build new applications around data like the trees of London and meteorite landings. Bridging Bytes brought together technology leaders to discuss the future of sustainable open source and how agencies innovate. Enter the workshop, invited friends from Twilio and Deepgram to build extensions live on air. And my new show, Sharp Focus, hosted by me as I show you how to use image transformation as part of Directus files. Keep an eye out for this and many new shows at directus.i0/tv. This year, we've also published over 50 new tutorials to help you get the most from Directus. We've published getting started guides for Sveltekit, ASTRO, Next, Nuxt, and more. Developers in other languages, we got you. There's loads including posts for Django and Flask devs, those who use Flutter, Kotlin, and Swift, and for the Laravel community too. You can now find loads of Directus automate tutorials showed how to integrate with Clarify's image recognition APIs, GitHub and OpenAPI. We believe you should be able to host Directus anywhere. So we wrote new content to help you deploy Directus on Azure, Google Cloud Platform, and AWS. There are some really cool project write ups as well, including building ecommerce projects with Stripe integrations, using Directus as a baby health monitor with Opsgenie, and building event registration systems. We also have new migration posts, including one for WordPress and integration with different indexing systems like Algolia and Elasticsearch. This is not all and we encourage you to take a look at our tutorials in our docs to explore our whole collection. That's all for me. We hope you've enjoyed this recap. And as always, if you've got any questions, let us know on Discord. Alright. So that was a recap of some of the highlights for 2024. Whether you have been with us the whole year or you are new to directors this year, we'd love to hear what your year has looked like with directors, whether anything has changed, whether you've brought in anything new that we've talked about. But, yeah, it's been great to spend a second to just look back rather than constantly looking forward, and put together the year in review for you all. So we hope you enjoyed it. Next up is my personal favorite. I say this every month and every month it is true. It is the community showcase, and this month, we have Petrus Diaz talking through the universal translate flow operation. Hi, everyone. My name is Petros Diaz, and I'm here to demo, Directus flow operation extension that we've built called a universal translator. And the main task of the universal translators is to translate anything that you throw at it, be it a string or a JSON object or an array. Let's have a quick look of how that works. You just place the universal translator within your flow and the only thing you need to do is provide the input translate which can be a direct string or a variable and choose the language which can be based on the user language that the user has selected, or you can choose from the drop down. We haven't included the entire language collection here, which we can do so in the future. Let's just leave it to auto for now. And just let's, let's run it real quick so you can see the results. I have a ready made flow here. So this flow creates a PDF, for the user in the language they've selected. And let's have a look at the result. Here it is. So you can't really tell which are the translated fields here but status, author, process, location, approved all of these are translated fields. And let's look at them in the actual record and here they are. So approved becomes approved and horizontal processes becomes horizontal processes but let's also have a look in another language just to make sure that everything works as described. And what we want to do is just run it again And here it is. Here you can see that, all of these fields have been translated to the, corresponding translations from the, directors collection, Directus translation. So the way this works, it's really simple. The operation just looks for a mustache type translation field which can be like this. So anything you want translated should go in the mustache syntax which is this here along with the closing bracket. So, let's make it quite big so it's visible. Let's hit save and try that again. And you can see here that our mustache syntax has been translated to the to the translation from the internal collection. It's a really simple, extension, and let's have a look under the hood. So this is the actual code for the extension. It's very short code as you can see. That's it. Just 79 lines of code, nothing remarkable. And you can see where the database pulls the, well the extension pulls language selected for the user from the database. And that's pretty much it. The rest is just for the options and it's a very simple extension. Now why did we create this? Because we have various users using our platform in a number of languages and all of these fields, would need to be translated. So we figured a very simple way to do that, which can be used and reused. And you can even use it for sending emails using the internal emailing service. We were considering other solutions as well, translating the fields internally through code or, just having a number of selections in all languages. But we figured that's not really viable as a solution because we are looking to expand a number of languages, and we really needed the localization for all of our all of our users. The, the challenge the biggest challenge in creating this, I think was pretty much creating the extension itself because we didn't really have experience. But using the provided guide from the director's documentation, it was actually pretty straightforward to build this, this extension. That wasn't so difficult. I guess it would be good to expand this to make sure that it works properly in any kind of, input. It doesn't miss any nested translations, which is very important that it does a recursive search of the translations that it actually executes. We do need to replace the choices with the actual languages from the collection. This doesn't need to be hard coded. It was just for our demo. And, I think this is pretty much it for something that needs to be translated. We don't really need to get into, more functionality or more detail, But if anybody would, be willing to help with expanding even just a little bit and, fixing our code just here and there, I would be grateful and, you know, you just make it available for everybody else as well. So, our add on is not yet our extension is not yet available on the marketplace, but you can download it from our GitHub repo, build it, and deploy it yourself, test it out. And if you have any comments, just open and, an issue in the GitHub and we'll see if we can, help out in resolving it. That was it. Thank you for watching. And I hope you can watch any other videos we'll make in the future for any of our other extensions. Alright. Thank you once again to Petros for taking the time to record it for us and talk us through it. We always really appreciate it. If you'd like to see more about different projects that are being built with directors, highly recommend the I made this channel on discord. It's especially great because every now and then people give us updates and so you get to see kind of as it's built along, which I think is really sweet. Next, we have an episode of Bobbie Tail's Little Library, which is a brand new show we've added to director's TV today, and it is a narrated storybook. So we have a short episode for you from that series. Bobby Tail and the library construction crew, read by Catherine Steiner. Bobby Tail had a big problem. The tree library was running out of space. Books were stacked in every corner, and new stories arrived each day. We need to build a new wing, he said, adjusting his blue vest. But building a library wasn't like building a regular treehouse, everything needed to be perfectly organized. Binary Badger arrived first, pocket watch ticking. Before we build, he said, we need a proper blueprint. Just like a tree needs strong roots, a library needs a strong foundation.' Together, they drew plans for different rooms. 1 for storybooks, another for pictures, and a special vault for magical scrolls. The Raymould family popped up from their tunnels, each wearing their numbered sweaters. We'll help organize everything, they squeaked excitedly. Each book needs its special place, just like we have our numbered homes. That way, we'll always know where to find things. Lily and Luna, the loop scroll sisters, swished their tails as they tested different bridges between the library sections. We need magical pathways, Lily began, so everyone can find exactly what they're looking for, Luna finished. They created special rope bridges that connected every room to every other room. Daisy Debock Duck waddled in with her magnifying glass. 'Let's test everything,' she declared. She checked each bridge, each shelf, and each room. We must make sure every friend can find their books easily,' she explained. Marking items off her checklist with her wing. Variable goal arrived with her magical bag. Now for the special items, she announced. Together, they created cozy reading nooks, picture frame holders, and scroll cases. Everything had its perfect spot, ready for all kinds of woodland treasures. Finally, the new library wing was complete. Bobby Tayl stood proudly with his construction crew. The Arraymalls organized the books, the Loop sisters bridges connected everything perfectly, and Daisy Duck had tested every path. It was more than just a library, it was a magical place, where every piece of knowledge had a hole. This story introduces the back end concepts of data modeling, APIs, and file management. Alright. Hopefully, you like that as much as we do. I am putting the link to the show for for the rest of the episodes. If you or anyone you know would like to check that out, we highly recommend. We also really enjoyed putting it together. So glad to see you're already, liking it. Someone said, just landed. What am I watching? You were watching a new director's TV episode of Bobbie Tail's Little Library. So welcome, and glad you're here. We have mixed up the reading list, so I'm gonna send it myself there. We put together a reading list based on resources shared by the director's core team on things they found interesting, educational, or entertaining this month, and we'd like to share it with you now. Firstly, we have an interactive study of queuing strategies from Encore, comparing 1st in, 1st out, last in, 1st out, and priority queues on wait time, drop results, and process time outs. Next, we have an interesting approach to testing query results for different database vendors. This allows you to test identical SQL results across database drivers or dialects for the same queries in a semi automated fashion. Next, there's an interesting write up on AI assisted coding from Adi Osmani talking about the hidden cost of AI speed brought about by edge case handling, error handling, and questioning output, and how AI tools help experienced developers more than beginners. Lastly, this article is about making focus outlines look better. They're the glows that appear around form inputs in focus in the browser. We particularly like how there's some real world examples in this post as well. That's all from the reading list this month. As always, if you have your own reading list suggestions, we'd love you to share them in Discord with us. We want to take a moment towards the end of the changelog for thanking our community contributors, who give their time to improve the director's project. Since last month, there have been 5 releases, directors 11.2.2 to directors 11.3.2 and 7 contributors. Thank you to Robson for fixing a HTML validity issue in the table component, Alex for fixing SSO GitHub sign up for users without public emails, George for allowing the login timeout for open ID SSO login to be adjusted, Nicholas for fixing typos in relational MD, Matthew for fixing WYSIWYG file upload extension to use filename disk, Ziles for fixing specifications TS to generate required array in open API schema, and Nick for adding select all and delete buttons for notification straw. Thank you again. You can see their specific pull requests inside of the full release notes on GitHub. Lastly, we also want to take the time to thank our GitHub Sponsors of November who financially contribute to Directus' development. A huge thank you to Tessent, Entle, dmathams, Fergus, Omar, Marcus, c k, Peter, Utomit, Steven, Robson, nonlinear, Andrea Valentino, John, Wayne, Bjorn, Adam, Jason, Birka, Jens, Vincent, Mike, Khan, Lassie, and Wayfan. The money we are given from our GitHub Sponsors goes straight back to community members who build tooling and extensions for the director's ecosystem. Thank you again for being part of that. Alright. And that was the change log for December. Thank you if you are still here for joining us along the whole way. If you randomly entered into Bobby Tales and you got very confused as to what was going on, welcome and thank you for joining us the whole way too. Any questions after this is over, please put them in Discord. We love hearing from you along the way as well. And if you have any 2025 changelog or not wishlist items that you'd like to see from us do let us know in discord too, as we are super interested in hearing how we can make this better and more interesting and useful for you all. It is for you after all. So if there is anything you'd like, this is actually I'd like to see this. Let us know. We'll no promises, but we will see what we can do. Thank you so much once again for joining us and, yeah, have a great rest of your day, your week, and your 2024, everyone. Bye.","01804104-119d-470b-b225-e6a8d5d2d2a0",[200,201,202,203,204],"d7f68adc-7027-4475-aa53-55f8d0342b44","ad08e78f-597e-4ba7-9fab-ad8e0d47a247","0af255dc-eb15-47a1-911e-f2b51d47848b","6913fad7-24b4-4c51-9f90-963969ce745d","69391df2-bd67-4f9f-8d6a-4fce37455245",[],{"reps":207},[208,264],{"name":209,"sdr":8,"link":210,"countries":211,"states":213},"John Daniels","https://meet.directus.io/meetings/john2144/john-contact-form-meeting",[212],"United States",[214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263],"Michigan","Indiana","Ohio","West Virginia","Kentucky","Virginia","Tennessee","North Carolina","South Carolina","Georgia","Florida","Alabama","Mississippi","New York","MI","IN","OH","WV","KY","VA","TN","NC","SC","GA","FL","AL","MS","NY","Connecticut","CT","Delaware","DE","Maine","ME","Maryland","MD","Massachusetts","MA","New Hampshire","NH","New Jersey","NJ","Pennsylvania","PA","Rhode Island","RI","Vermont","VT","Washington DC","DC",{"name":265,"link":266,"countries":267},"Michelle Riber","https://meetings.hubspot.com/mriber",[268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,245,456,457],"Albania","ALB","Algeria","DZA","Andorra","AND","Angola","AGO","Austria","AUT","Belgium","BEL","Benin","BEN","Bosnia and Herzegovina","BIH","Botswana","BWA","Bulgaria","BGR","Burkina Faso","BFA","Burundi","BDI","Cameroon","CMR","Cape Verde","CPV","Central African Republic","CAF","Chad","TCD","Comoros","COM","Côte d'Ivoire","CIV","Croatia","HRV","Czech Republic","CZE","Democratic Republic of Congo","COD","Denmark","DNK","Djibouti","DJI","Egypt","EGY","Equatorial Guinea","GNQ","Eritrea","ERI","Estonia","EST","Eswatini","SWZ","Ethiopia","ETH","Finland","FIN","France","FRA","Gabon","GAB","Gambia","GMB","Ghana","GHA","Greece","GRC","Guinea","GIN","Guinea-Bissau","GNB","Hungary","HUN","Iceland","ISL","Ireland","IRL","Italy","ITA","Kenya","KEN","Latvia","LVA","Lesotho","LSO","Liberia","LBR","Libya","LBY","Liechtenstein","LIE","Lithuania","LTU","Luxembourg","LUX","Madagascar","MDG","Malawi","MWI","Mali","MLI","Malta","MLT","Mauritania","MRT","Mauritius","MUS","Moldova","MDA","Monaco","MCO","Montenegro","MNE","Morocco","MAR","Mozambique","MOZ","Namibia","NAM","Niger","NER","Nigeria","NGA","North Macedonia","MKD","Norway","NOR","Poland","POL","Portugal","PRT","Republic of Congo","COG","Romania","ROU","Rwanda","RWA","San Marino","SMR","São Tomé and Príncipe","STP","Senegal","SEN","Serbia","SRB","Seychelles","SYC","Sierra Leone","SLE","Slovakia","SVK","Slovenia","SVN","Somalia","SOM","South Africa","ZAF","South Sudan","SSD","Spain","ESP","Sudan","SDN","Sweden","SWE","Tanzania","TZA","Togo","TGO","Tunisia","TUN","Uganda","UGA","United Kingdom","GBR","Vatican City","VAT","Zambia","ZMB","Zimbabwe","ZWE","UK","Germany","Netherlands","Switzerland","CH","NL",1773850439527]