[{"data":1,"prerenderedAt":551},["ShallowReactive",2],{"footer-primary":3,"footer-secondary":93,"footer-description":119,"tv-directus-academy":121,"tv-directus-academy-seasons":131,"tv-directus-academy-episodes":147,"sales-reps":299},{"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,"title":123,"logo":124,"cover":125,"tile":126,"announcement_text":8,"description":127,"slug":128,"one_liner":129,"card_text":8,"status":130,"sort":8},"3a4b9e97-449f-4e24-b607-9ad1baee2441","Directus Academy","82d9be2b-1154-40b5-a118-a5e615b64429","6eca7da2-0dbb-4a2d-a96f-6a9c2a614cce","bd5e0d7c-fd4f-4225-af71-dedb154be371","In this series, we will introduce you to many parts of the Directus platform. We won't go into a huge amount of depth on each tool, but will ensure that you understand what it is capable of, when you can use it in your projects, and know where to look for more information.","directus-academy","Learn about each of Directus' building blocks in this tour of the platform.","published",[132],{"id":133,"number":134,"show":122,"year":135,"episodes":136},"7915da85-0e6a-40d5-a43b-fe0514ec2b6c",1,"2024",[137,138,139,140,141,142,143,144,145,146],"96b44cbc-1b14-4bea-87cd-0c4cb34d261d","637aafa2-b323-4ad0-adf0-ba52328bb798","04ffd615-6d1d-45de-9c1b-2ff9206fe343","4cc18530-ba2a-44f3-bb2e-2bfe4ad024d5","43612e4c-1bd9-411e-bd73-9c835a9b51e0","6e6965e7-13cc-4f86-b512-f567d66cfbe9","20666ca0-00e3-4d71-985b-f7c4abbe3bd1","8ad4795b-963c-4ebd-8921-38ea2dda9f44","4d3c062f-0f30-41b7-83e9-3d2ed34a86f4","c7ab64da-f34d-42c9-8a1a-03e6026cc7e5",[148,165,180,195,210,224,240,255,270,284],{"id":137,"slug":149,"vimeo_id":150,"description":151,"tile":152,"length":153,"resources":8,"people":8,"episode_number":154,"published":155,"title":156,"video_transcript_html":157,"video_transcript_text":158,"content":8,"seo":159,"status":130,"episode_people":160,"recommendations":162,"season":163},"what-is-directus","1026478250","In this introduction, you will learn about the Directus platform, offering rich developer tools and an intuitive web application for managing data-driven projects⁠.","016a7543-2363-4d5f-a9ab-fa65d0c84999",4,0,"2024-09-09","What is Directus?","\u003Cp>Speaker 0: Welcome to Directus Academy. My name is Kevin Lewis and I run our education programs here at Directus. Throughout this set of videos, I'm gonna take you on a tour of the Directus platform. So you understand what it's capable of and how to use it. So Directus is a back end for developers.\u003C/p>\u003Cp>It connects to any new or existing SQL database and asset storage and immediately provides rich developer tooling that we call the data engine, and a really lovely web application that is approachable enough to give to all of your team whether they are developers or not. We call it the data studio. Granular and powerful access control means users can only see, interact with, and create data allowed by their role and access policies used by both the engine and the studio. This means that however a user is given access via API, your own application built on top of those APIs, or the data studio, their level of access remains the same. Directus is also hugely extensible through the Directus marketplace.\u003C/p>\u003Cp>Developers can author and publish extensions with Node. Js and Vue. And project admins can install them in any Directus project. Now Directus does not add or change fields in your database to operate, which means you can remove it at any time. You can self host directors or use directors cloud, if you don't wanna worry about infrastructure, maintenance, or updating your project.\u003C/p>\u003Cp>Directors can be used to power any data driven project. Whether that's fleets of connected devices, ecommerce data, building a sass, or content for your applications. You can use it as a back end, a content management system, an internal tool builder, or a data management and analytics platform. When you connect directors to your database and asset storage, we use a technique called abstraction to handle the nuance of your specific data sources and provide them in a sources and provide them in a consistent interface both in terms of the engine and the studio. On top of the abstraction layer for your database is a powerful query language and an event based automation system that powers multiple parts of directors.\u003C/p>\u003Cp>On top of the asset storage abstraction is a system to allow on the fly media transformation. Director's auth comes next, effectively gating the ability to access and operate on your data through a native authentication system or via your existing single sign on provider. Finally, the interfaces to access the data. Directus offers rest and graph ql APIs for each table in your database. As well as a real time connection via web sockets or graph ql subscriptions.\u003C/p>\u003Cp>The directus SDK makes working with directus in your JavaScript projects even easier. And of course, if you want to give access to your data via a web UI to anyone in your application, you can use the directors data studio. Before we wrap up, a note on the directors license. Directors is licensed under the business source license 1.1 for commercial usage. This means you require a license if you are an entity with over $5,000,000 in total finances.\u003C/p>\u003Cp>Otherwise, you can continue to enjoy Directus in full and commercially without a license. Now that's all for this video. Thank you for joining me. And we're gonna start jumping into the various parts of Directus in more depth in the next one. Have a great day and bye for now.\u003C/p>","Welcome to Directus Academy. My name is Kevin Lewis and I run our education programs here at Directus. Throughout this set of videos, I'm gonna take you on a tour of the Directus platform. So you understand what it's capable of and how to use it. So Directus is a back end for developers. It connects to any new or existing SQL database and asset storage and immediately provides rich developer tooling that we call the data engine, and a really lovely web application that is approachable enough to give to all of your team whether they are developers or not. We call it the data studio. Granular and powerful access control means users can only see, interact with, and create data allowed by their role and access policies used by both the engine and the studio. This means that however a user is given access via API, your own application built on top of those APIs, or the data studio, their level of access remains the same. Directus is also hugely extensible through the Directus marketplace. Developers can author and publish extensions with Node. Js and Vue. And project admins can install them in any Directus project. Now Directus does not add or change fields in your database to operate, which means you can remove it at any time. You can self host directors or use directors cloud, if you don't wanna worry about infrastructure, maintenance, or updating your project. Directors can be used to power any data driven project. Whether that's fleets of connected devices, ecommerce data, building a sass, or content for your applications. You can use it as a back end, a content management system, an internal tool builder, or a data management and analytics platform. When you connect directors to your database and asset storage, we use a technique called abstraction to handle the nuance of your specific data sources and provide them in a sources and provide them in a consistent interface both in terms of the engine and the studio. On top of the abstraction layer for your database is a powerful query language and an event based automation system that powers multiple parts of directors. On top of the asset storage abstraction is a system to allow on the fly media transformation. Director's auth comes next, effectively gating the ability to access and operate on your data through a native authentication system or via your existing single sign on provider. Finally, the interfaces to access the data. Directus offers rest and graph ql APIs for each table in your database. As well as a real time connection via web sockets or graph ql subscriptions. The directus SDK makes working with directus in your JavaScript projects even easier. And of course, if you want to give access to your data via a web UI to anyone in your application, you can use the directors data studio. Before we wrap up, a note on the directors license. Directors is licensed under the business source license 1.1 for commercial usage. This means you require a license if you are an entity with over $5,000,000 in total finances. Otherwise, you can continue to enjoy Directus in full and commercially without a license. Now that's all for this video. Thank you for joining me. And we're gonna start jumping into the various parts of Directus in more depth in the next one. Have a great day and bye for now.","faa0fe76-e10b-43b0-942b-28aa3ad7b2f4",[161],"f70a8276-d086-4f34-bcea-0a31318e3126",[],{"id":133,"number":134,"show":122,"year":135,"episodes":164},[137,138,139,140,141,142,143,144,145,146],{"id":138,"slug":166,"vimeo_id":167,"description":168,"tile":169,"length":170,"resources":8,"people":8,"episode_number":134,"published":155,"title":171,"video_transcript_html":172,"video_transcript_text":173,"content":8,"seo":174,"status":130,"episode_people":175,"recommendations":177,"season":178},"data-management","1007701870","Discover how Directus empowers you to manage data, create collections, customize fields, and streamline content workflows with features like Explore, Editor, and multilingual support.","367c893f-d7d3-43d7-bd5e-233d30dc9a92",8,"Data Management","\u003Cp>Speaker 0: Directus can be used to manage both the data in your collections and the collection data models themselves, which includes setting up new collections, fields, and defining the relationships between them. Any changes made directly in your database will be recognized and reflected by directors. While collections in a directors project map to your database tables, they are not directly equivalent. Collections are your tables, plus the additional metadata required for Directus to operate correctly. There are 2 types of collections.\u003C/p>\n\u003Cp>All Directus specific settings and data are held in system collections created and managed by Directus and never in your existing database tables. This includes user related data, including sessions, data around our automation features, activity and revision logging, and more. As an aside, it means that you can effectively remove Directus if desired with no Directus specific data left behind. We believe it's important to put you in control of your data. And while we hope you'll use directors for months years to come, you can jump out at any time.\u003C/p>\n\u003Cp>To stop running the application, delete the tables that start with directors underscore, and it's like we were never there. User collections are created directly in your database or via directors. They describe your project's data models. Let's talk about what goes into a collection. Each collection has a unique name and strategy for creating a primary key for each item, which includes an auto incrementing number, a UUID, or a manually entered string.\u003C/p>\n\u003Cp>At the time of creating a collection, directors can also set up some common optional fields, including status, thought, created date, created by, and so on. Next is fields. Like collections are to tables, directors fields map to fields in your database, but contain additional metadata about how they are shown in the editor within layout and in relational fields. When creating a field, the first thing to choose is the interface, which you can think of as the form input type. Directus has many built in interfaces, including a rich text editor, a map, a file picker, and more.\u003C/p>\n\u003Cp>And you can download additional ones from the Directus marketplace. Directus also supports all standard relationship types, as well as a few more of its own compound types, which are custom tailored to make common but complex tasks easier. When creating a many to many or what we call a many to any builder relationship, directors will create the junction collection for you automatically. There are a whole set of display and validation options available for each field, which you can then configure directly from the data model settings. A quick aside that Director supports bringing an existing database, there are some first time setup needed in the data model settings to configure them with the additional details needed to turn them into directors collections.\u003C/p>\n\u003Cp>This is all done in the Data Studio data model settings and is similar to when you create new collections. Directus Explore allows you to display and query items in a collection. Data is represented as it is stored in your database with display templates allowing custom representation with inline text, image thumbnails, dates, numbers, or anything else. Data can be displayed in any of the default or installed layouts, each with their own configuration options. Layouts include a table, Kanban board, gallery, calendar, and map, with more available in the Directus marketplace.\u003C/p>\n\u003Cp>Now, at the top of layouts, Directus Explore has a search, which uses all top level string, text, number, and UUID fields, but also has a very powerful filter interface. You can add single filters or multiple using the and and all groups, which can then be nested. You can use the provided variables to refer to the current user or roles. Once you have everything set up the way you like, you can create a preset. Presets are saved views that contain a search, filters, sorts, visible fields, and layout information.\u003C/p>\n\u003Cp>They can be saved for all users or specific roles or users. This allows you to create views that are more relevant to your different teams and stakeholders. Director's editor allows you to display, edit, and preview items in your collections. This page also includes options for archiving, reverting, versioning, and commenting on an item. In the editor, the field settings from when you configure the data model are applied.\u003C/p>\n\u003Cp>This includes their chosen interfaces, position, and size, validations, conditional visibility, and more. There is a live preview that can show your changes in your real application as you save them. So you know what it will look like once you publish or rebuild your site. To use live preview, you need to have correctly configured your external application, but we have guides in our docs to help you with this. Content versioning allows teams to create and manage different versions of their content.\u003C/p>\n\u003Cp>There are several reasons to use content versioning, including drafting content without publishing it and more ways to collaborate with others. At any point, a content version can be created and worked on in isolation. Then when ready, a content version can be promoted to become the new main version. We have a UI to select which edited field should be promoted, if not all of them. And all changes made on an item are stored in the revision history along with who made them, which is great for both accountability and also reverting changes if needed.\u003C/p>\n\u003Cp>Directus has a lot of flexibility around translations, but it's important to note that there are 2 distinct types of translation. 1, within the data studio web application that serves your team, and 2, in the content and data that you actually author. Many parts of the Director's Data Studio are already translated into over 30 languages. This includes all UI elements and descriptions. We support community contributions to both increase the coverage for existing languages and to support new ones.\u003C/p>\n\u003Cp>When creating collections and fields, you can set translations of names, which will be reflected if the user changes their language Data Studio. And in any other field across Directus, for example, in field descriptions, you can utilize translation strings, which can be set up in your project settings. For content translations, Directus has a dedicated translations interface to configure and author multilingual content. And that's a very quick summary of data management inside of Directus. If you have any questions, please feel free to reach out, and we'll see you in the next video.\u003C/p>","Directors can be used to manage both the data in your collections and the collection data models themselves, which includes setting up new collections, fields, and defining the relationships between them. Any changes made directly in your database will be recognized and reflected by directors. While collections in a directors project map to your database tables, they are not directly equivalent. Collections are your tables, plus the additional metadata required for Directus to operate correctly. There are 2 types of collections. All Directus specific settings and data are held in system collections created and managed by Directus and never in your existing database tables. This includes user related data, including sessions, data around our automation features, activity and revision logging, and more. As an aside, it means that you can effectively remove Directus if desired with no Directus specific data left behind. We believe it's important to put you in control of your data. And while we hope you'll use directors for months years to come, you can jump out at any time. To stop running the application, delete the tables that start with directors underscore, and it's like we were never there. User collections are created directly in your database or via directors. They describe your project's data models. Let's talk about what goes into a collection. Each collection has a unique name and strategy for creating a primary key for each item, which includes an auto incrementing number, a UUID, or a manually entered string. At the time of creating a collection, directors can also set up some common optional fields, including status, thought, created date, created by, and so on. Next is fields. Like collections are to tables, directors fields map to fields in your database, but contain additional metadata about how they are shown in the editor within layout and in relational fields. When creating a field, the first thing to choose is the interface, which you can think of as the form input type. Directus has many built in interfaces, including a rich text editor, a map, a file picker, and more. And you can download additional ones from the Directus marketplace. Directus also supports all standard relationship types, as well as a few more of its own compound types, which are custom tailored to make common but complex tasks easier. When creating a many to many or what we call a many to any builder relationship, directors will create the junction collection for you automatically. There are a whole set of display and validation options available for each field, which you can then configure directly from the data model settings. A quick aside that Director supports bringing an existing database, there are some first time setup needed in the data model settings to configure them with the additional details needed to turn them into directors collections. This is all done in the Data Studio data model settings and is similar to when you create new collections. Directus Explore allows you to display and query items in a collection. Data is represented as it is stored in your database with display templates allowing custom representation with inline text, image thumbnails, dates, numbers, or anything else. Data can be displayed in any of the default or installed layouts, each with their own configuration options. Layouts include a table, Kanban board, gallery, calendar, and map, with more available in the Directus marketplace. Now, at the top of layouts, Directus Explore has a search, which uses all top level string, text, number, and UUID fields, but also has a very powerful filter interface. You can add single filters or multiple using the and and all groups, which can then be nested. You can use the provided variables to refer to the current user or roles. Once you have everything set up the way you like, you can create a preset. Presets are saved views that contain a search, filters, sorts, visible fields, and layout information. They can be saved for all users or specific roles or users. This allows you to create views that are more relevant to your different teams and stakeholders. Director's editor allows you to display, edit, and preview items in your collections. This page also includes options for archiving, reverting, versioning, and commenting on an item. In the editor, the field settings from when you configure the data model are applied. This includes their chosen interfaces, position, and size, validations, conditional visibility, and more. There is a live preview that can show your changes in your real application as you save them. So you know what it will look like once you publish or rebuild your site. To use live preview, you need to have correctly configured your external application, but we have guides in our docs to help you with this. Content versioning allows teams to create and manage different versions of their content. There are several reasons to use content versioning, including drafting content without publishing it and more ways to collaborate with others. At any point, a content version can be created and worked on in isolation. Then when ready, a content version can be promoted to become the new main version. We have a UI to select which edited field should be promoted, if not all of them. And all changes made on an item are stored in the revision history along with who made them, which is great for both accountability and also reverting changes if needed. Directus has a lot of flexibility around translations, but it's important to note that there are 2 distinct types of translation. 1, within the data studio web application that serves your team, and 2, in the content and data that you actually author. Many parts of the Director's Data Studio are already translated into over 30 languages. This includes all UI elements and descriptions. We support community contributions to both increase the coverage for existing languages and to support new ones. When creating collections and fields, you can set translations of names, which will be reflected if the user changes their language Data Studio. And in any other field across Directus, for example, in field descriptions, you can utilize translation strings, which can be set up in your project settings. For content translations, Directus has a dedicated translations interface to configure and author multilingual content. And that's a very quick summary of data management inside of Directus. If you have any questions, please feel free to reach out, and we'll see you in the next video.","958be259-c514-4549-9588-22a140f23427",[176],"d180947c-749e-4607-83c9-88b8a59ab770",[],{"id":133,"number":134,"show":122,"year":135,"episodes":179},[137,138,139,140,141,142,143,144,145,146],{"id":139,"slug":181,"vimeo_id":182,"description":183,"tile":184,"length":153,"resources":8,"people":8,"episode_number":185,"published":155,"title":186,"video_transcript_html":187,"video_transcript_text":188,"content":8,"seo":189,"status":130,"episode_people":190,"recommendations":192,"season":193},"access-control","1007702200","This video explains Directus' access control system, covering user management, authentication, roles, permissions, and policies for secure and flexible data management.","8191a290-8378-460f-b6f9-7230fea84937",2,"Access Control","\u003Cp>Speaker 0: Access control is a critical part of managing data. What different users in their various roles and responsibilities should be able to create, read, update, delete and share. Directus auth along with Directus' access control provide a complete solution for user management. From initial registration, through to interacting with data held in your project. In side of a directors project, you will have 1 or more users.\u003C/p>\u003Cp>A user conceptually is just one item in a special directors users collection, that represents a person or a service that has access to your data. Users may only be able to access your data via API or your custom application but can also be given access to data via the data studio web application. You can invite users, enable public registration or create users via API from your own application. Directus auth provides all of the required end points to manage users. From generating and refreshing access tokens, checking permissions, resetting passwords and more.\u003C/p>\u003Cp>Directus can fully manage your users or you can connect it with an existing single sign on provider to use the existing accounts to authenticate with directus. But that's all authentication, Let's talk about access control. The first concept is the permission itself. A permission is a combination of a collection, an action such as create or update, and either allow all or custom rules. By default, all actions on all collections are denied, and you can add access by creating permissions.\u003C/p>\u003Cp>Allow all is self explanatory, but for each action in each collection, custom rules can be created, which use Directus' filter syntax to specify which items can be interacted with. For example, only items created by the current user. You can also apply custom rules to limit which fields in a collection a user can access. So you might allow certain roles to edit data and others to only see it. Now given a permission is just a single action on a single collection, a user is likely to have many of them.\u003C/p>\u003Cp>And to organize them, we create access policies. And an access policy is just that, a set of permissions. For example, you might have a policy called manage own posts and use it to group the edit and delete permissions on posts created by the current user. Now roles describe a user's position within a team. For example, marketing team or editors.\u003C/p>\u003Cp>You can add roles to other roles allowing for a cascade that describes someone's full position and all that they will inherit. Now policies can be attached to either roles or users, making them a flexible organization tool for permissions. Any user's overall set of permissions are just an aggregate of all of the policies that are attached to them or their role. Now there are a lot of use case specific nuance to how access control could be configured. But just remember that a policy is a set of permissions, and policy can be attached to either a user or a role.\u003C/p>\u003Cp>Hopefully, you found this useful. Feel free to reach out with any questions, and we'll see you in the next video.\u003C/p>","Access control is a critical part of managing data. What different users in their various roles and responsibilities should be able to create, read, update, delete and share. Directus auth along with Directus' access control provide a complete solution for user management. From initial registration, through to interacting with data held in your project. In side of a directors project, you will have 1 or more users. A user conceptually is just one item in a special directors users collection, that represents a person or a service that has access to your data. Users may only be able to access your data via API or your custom application but can also be given access to data via the data studio web application. You can invite users, enable public registration or create users via API from your own application. Directus auth provides all of the required end points to manage users. From generating and refreshing access tokens, checking permissions, resetting passwords and more. Directus can fully manage your users or you can connect it with an existing single sign on provider to use the existing accounts to authenticate with directus. But that's all authentication, Let's talk about access control. The first concept is the permission itself. A permission is a combination of a collection, an action such as create or update, and either allow all or custom rules. By default, all actions on all collections are denied, and you can add access by creating permissions. Allow all is self explanatory, but for each action in each collection, custom rules can be created, which use Directus' filter syntax to specify which items can be interacted with. For example, only items created by the current user. You can also apply custom rules to limit which fields in a collection a user can access. So you might allow certain roles to edit data and others to only see it. Now given a permission is just a single action on a single collection, a user is likely to have many of them. And to organize them, we create access policies. And an access policy is just that, a set of permissions. For example, you might have a policy called manage own posts and use it to group the edit and delete permissions on posts created by the current user. Now roles describe a user's position within a team. For example, marketing team or editors. You can add roles to other roles allowing for a cascade that describes someone's full position and all that they will inherit. Now policies can be attached to either roles or users, making them a flexible organization tool for permissions. Any user's overall set of permissions are just an aggregate of all of the policies that are attached to them or their role. Now there are a lot of use case specific nuance to how access control could be configured. But just remember that a policy is a set of permissions, and policy can be attached to either a user or a role. Hopefully, you found this useful. Feel free to reach out with any questions, and we'll see you in the next video.","92be10a7-1bbf-4f83-a045-b7484a89ed1b",[191],"f009801a-f129-4434-bf02-1c57c706487d",[],{"id":133,"number":134,"show":122,"year":135,"episodes":194},[137,138,139,140,141,142,143,144,145,146],{"id":140,"slug":196,"vimeo_id":197,"description":198,"tile":199,"length":153,"resources":8,"people":8,"episode_number":200,"published":155,"title":201,"video_transcript_html":202,"video_transcript_text":203,"content":8,"seo":204,"status":130,"episode_people":205,"recommendations":207,"season":208},"directus-connect","1007702290","This video introduces Directus Connect — automatic REST and GraphQL APIs for your database and asset storage, highlighting key features such as resource-based URLs, query parameters, and the Directus JavaScript SDK.","246ec429-2758-4590-93c5-b802fe5be579",3,"Directus Connect","\u003Cp>Speaker 0: Part of the Directus data engine is Directus Connect. Automatic REST and GraphQL APIs for your database and asset storage. The REST API has predictable resource based URLs, relies on standard HTTP status codes, and uses JSON for input and output. To explain resource based URLs, let's use an example. Your project has a collection called posts.\u003C/p>\u003Cp>The primary key is an auto incrementing number called id. Other fields include status, title, date published, and content. For this example, some of the available resource based endpoints include listing all posts, getting a single post by ID, creating a post while passing a payload, and so on. The URL path for working with items are dynamic based on the resources in your project, but they all follow a standard format. Most directives API endpoints can utilize a number of powerful query parameters to alter the data that is returned.\u003C/p>\u003Cp>They include specifying which fields are returned, including relational fields. Filtering the returned items using the filter rules syntax, including logical operators and dynamic variables such as current user, sorting, paginating, and limiting the number of returned items, and applying aggregate functions either on the whole data set or on groups of data. Having a standard rest and graph ql API means that you can integrate a directus backend into any application in any language or framework by making an HTTP request. If you're building in a javascript the official directory's javascript sdk provides an improved developer experience. It's type safe, separated into several modules that provide granular control over which features include and then prune those that aren't at build time.\u003C/p>\u003Cp>And does not require any external libraries. You can check out the directory's API reference. Every single operation that you can make is shown both with the rest example, the graphql example and the directivesdk example side by side. Using directives over API uses the same access control as the data studio. The permissions are the same, so you don't have to set anything up again or worry that your application will receive or be able to use data in ways it shouldn't be allowed to.\u003C/p>\u003Cp>You can log in and use an access token which performs requests as your user or you can use a static token which is generated in your user profile and does not expire. If you make a request without an access token, it will use the configured public permissions, which are used when a user is unauthenticated. So this is a little bit about the APIs and the SDK. We have a load of tutorials inside of our documentation on Directus TV and on our YouTube channel in order to understand how to actually use the APIs and SDK to build real world projects. If you have any questions, feel free to reach out, and we'll see you in the next video.\u003C/p>","Part of the Directus data engine is Directus Connect. Automatic REST and GraphQL APIs for your database and asset storage. The REST API has predictable resource based URLs, relies on standard HTTP status codes, and uses JSON for input and output. To explain resource based URLs, let's use an example. Your project has a collection called posts. The primary key is an auto incrementing number called id. Other fields include status, title, date published, and content. For this example, some of the available resource based endpoints include listing all posts, getting a single post by ID, creating a post while passing a payload, and so on. The URL path for working with items are dynamic based on the resources in your project, but they all follow a standard format. Most directives API endpoints can utilize a number of powerful query parameters to alter the data that is returned. They include specifying which fields are returned, including relational fields. Filtering the returned items using the filter rules syntax, including logical operators and dynamic variables such as current user, sorting, paginating, and limiting the number of returned items, and applying aggregate functions either on the whole data set or on groups of data. Having a standard rest and graph ql API means that you can integrate a directus backend into any application in any language or framework by making an HTTP request. If you're building in a javascript the official directory's javascript sdk provides an improved developer experience. It's type safe, separated into several modules that provide granular control over which features include and then prune those that aren't at build time. And does not require any external libraries. You can check out the directory's API reference. Every single operation that you can make is shown both with the rest example, the graphql example and the directivesdk example side by side. Using directives over API uses the same access control as the data studio. The permissions are the same, so you don't have to set anything up again or worry that your application will receive or be able to use data in ways it shouldn't be allowed to. You can log in and use an access token which performs requests as your user or you can use a static token which is generated in your user profile and does not expire. If you make a request without an access token, it will use the configured public permissions, which are used when a user is unauthenticated. So this is a little bit about the APIs and the SDK. We have a load of tutorials inside of our documentation on Directus TV and on our YouTube channel in order to understand how to actually use the APIs and SDK to build real world projects. If you have any questions, feel free to reach out, and we'll see you in the next video.","25b805c7-a2c2-4d36-9476-12c890c65746",[206],"51785675-45e0-419d-aa67-42bfc8f90cd7",[],{"id":133,"number":134,"show":122,"year":135,"episodes":209},[137,138,139,140,141,142,143,144,145,146],{"id":141,"slug":211,"vimeo_id":212,"description":213,"tile":214,"length":200,"resources":8,"people":8,"episode_number":153,"published":155,"title":215,"video_transcript_html":216,"video_transcript_text":217,"content":8,"seo":218,"status":130,"episode_people":219,"recommendations":221,"season":222},"directus-files","1007702379","Discover the powerful features of Directus Files, a comprehensive Digital Asset Management system that simplifies file storage, organization, and transformation within your Directus projects⁠.","113f6680-9c83-4111-99a9-9e1f1dc1dbac","Directus Files","\u003Cp>Speaker 0: Directus files aggregate all assets within your Directus project into one consolidated library. It is a full featured digital asset management system for storing, organizing, browsing and transforming your files. By default, director stores all uploaded files locally on disk. However you can also configure directors to use any AWS S3 compatible storage, Google Cloud storage, Azure storage, Cloudinary or Superbase. Each file managed by Directus also corresponds to an item in the Directus file system collection.\u003C/p>\u003Cp>Which provides a unique for each item and additional metadata. Folders in directors files can be used to organize assets within the platform, but folders are virtual and aren't mirrored within the storage adapter. As well as organization, folders can be used within access control settings to limit a user's ability to create, read, update, and delete files. The full file tree can be used so virtual folder hierarchies can reflect a user's permission. Each file in your directors project has a number of additional system fields that can be used for management.\u003C/p>\u003Cp>Any additional metadata directors was able to scrape from the file will also be stored. For images, this includes exif, I iptc and icc information. From within the file detail page, metadata can be seen and edited including manual cropping and setting a focal point for cropping via API. You can access files via URL in your own application by using the following structure. Being sure to provide your directors project URL and the specific file uuid that is shown in the data studio.\u003C/p>\u003Cp>And there's lots we can do with this url. We can provide an optional file name after the id to optimize for search engines. And directives provides out of the box asset transformations, allowing for cropping with width, height and fit parameters. A specific quality and format can also be requested along with other transformations offered by the node sharp library such as blurring, flipping and re coloring. Once an asset is transformed with all of the transformation parameters for the first time, it is stored and will not need to be transformed again.\u003C/p>\u003Cp>Meaning that subsequent loads should be quicker and more performant. You can also save combinations of transforms into what we call storage asset presets and then apply them just by using a key when accessing the image. Director's files is super powerful. And when combined with several of our interfaces that are both built in and provided via the director's marketplace, you have a super rich digital asset management system for any project to your building.\u003C/p>","Directus files aggregate all assets within your Directus project into one consolidated library. It is a full featured digital asset management system for storing, organizing, browsing and transforming your files. By default, director stores all uploaded files locally on disk. However you can also configure directors to use any AWS S3 compatible storage, Google Cloud storage, Azure storage, Cloudinary or Superbase. Each file managed by Directus also corresponds to an item in the Directus file system collection. Which provides a unique for each item and additional metadata. Folders in directors files can be used to organize assets within the platform, but folders are virtual and aren't mirrored within the storage adapter. As well as organization, folders can be used within access control settings to limit a user's ability to create, read, update, and delete files. The full file tree can be used so virtual folder hierarchies can reflect a user's permission. Each file in your directors project has a number of additional system fields that can be used for management. Any additional metadata directors was able to scrape from the file will also be stored. For images, this includes exif, I iptc and icc information. From within the file detail page, metadata can be seen and edited including manual cropping and setting a focal point for cropping via API. You can access files via URL in your own application by using the following structure. Being sure to provide your directors project URL and the specific file uuid that is shown in the data studio. And there's lots we can do with this url. We can provide an optional file name after the id to optimize for search engines. And directives provides out of the box asset transformations, allowing for cropping with width, height and fit parameters. A specific quality and format can also be requested along with other transformations offered by the node sharp library such as blurring, flipping and re coloring. Once an asset is transformed with all of the transformation parameters for the first time, it is stored and will not need to be transformed again. Meaning that subsequent loads should be quicker and more performant. You can also save combinations of transforms into what we call storage asset presets and then apply them just by using a key when accessing the image. Director's files is super powerful. And when combined with several of our interfaces that are both built in and provided via the director's marketplace, you have a super rich digital asset management system for any project to your building.","6a90e070-f6f4-4d93-a335-34d6b711b0fc",[220],"0dba09ec-49a6-4cb8-9113-5a232c00a831",[],{"id":133,"number":134,"show":122,"year":135,"episodes":223},[137,138,139,140,141,142,143,144,145,146],{"id":142,"slug":225,"vimeo_id":226,"description":227,"tile":228,"length":229,"resources":8,"people":8,"episode_number":229,"published":230,"title":231,"video_transcript_html":232,"video_transcript_text":233,"content":8,"seo":234,"status":130,"episode_people":235,"recommendations":237,"season":238},"directus-automate","1007702460","Understand Directus Flows, We'll explain how it enables custom event-driven task automation within Directus through triggers, operations, and data chains⁠.","35aa07c6-947b-4859-9e04-f44870140ffa",5,"2024-09-13","Directus Automate","\u003Cp>Speaker 0: Directus Automate provides flows, which enable custom event driven task automation within Directus. Each flow is composed of 1 trigger followed by a series of operations and finally returning data. Each flow starts with 1 trigger. The first is event driven based on data changes in your project. You can create a filter trigger which intercepts a database transaction before it happens, allowing you to validate or manipulate the data and optionally rejecting the transaction.\u003C/p>\u003Cp>Or action filters trigger once the change has happened in your database. This includes create, update, and deleting of items. This is great for data enrichment or follow-up logic that doesn't need to delay the database transaction from happening. The schedule trigger will run regularly on a specified interval. It uses the 6 point cron job syntax, so you can get as granular as second or as wide as weeks.\u003C/p>\u003Cp>The webhook trigger creates a unique URL for your flow and will be run whenever that URL is requested. Any data sent with the request will be available in the trigger object. The manual flow trigger adds a button to configured collections in Directus Explore and Directus Editor that can be clicked by users in the data studio. Optionally, a confirmation prompt can be shown with a form to collect data. And finally, you can chain flows together and configure them to be triggered by a parent flow.\u003C/p>\u003Cp>Data can be passed into them from the parent and once the flow has concluded it can be returned back up. Each time a flow is run it has its own data chain which is a JSON object passed from the trigger and to each operation, which will append information to the data chain. Now there are some dynamic properties available in every data chain. Trigger contains all of the data generated by the flows trigger. Accountability contains data about who or what started the flow.\u003C/p>\u003Cp>Env contains all of the environment variables that have been allowed to be shown and used inside of flows. And last contains return data from the previous operation whenever used. That means in every operation, the value of last will change to always be the output of the previous step. Each step which we call operations will receive all data in the data chain, perform some logic and return data back into the data chain. Each operation has a success and failure path which we call resolve and reject.\u003C/p>\u003Cp>So be sure to account for failed operations, especially when they rely on specific permissions or external services. A couple of very common operations include the webhook request url operation that allows your flow to make an external web request. You can select a method, url, and set custom headers as well as providing a payload. The create, read, update and delete data operations perform actions on items from a collection and adds the result to the data chain. You may select items by their ID or by running a query using directives' filter syntax.\u003C/p>\u003Cp>The run script operation lets you add custom JavaScript snippets. The script will be executed securely in an isolated sandbox, which means it only has access to standard built in objects and has no access outside of the sandbox except for sharing input and output values. This means, for example, no access to the file system, no ability to do network requests, and no support for third party packages. You can do each of these by using other operations that are provided as part of directors or by building custom operation extensions that use packages. Accessible from the sidebar, logs store information for each flow execution.\u003C/p>\u003Cp>Each log will display information from triggers as well as each operation in the flow. Keep in mind that if you've configured a flow to track logs, all of this will be stored in your database. So you may periodically need to delete this data if your flows get a lot of use. Directus automate is super powerful and I hope this explains the basics of how to utilize them. You can download custom operations from the directors marketplace and follow the tutorials in our documentation to set up specific flows.\u003C/p>","Directus Automate provides flows, which enable custom event driven task automation within Directus. Each flow is composed of 1 trigger followed by a series of operations and finally returning data. Each flow starts with 1 trigger. The first is event driven based on data changes in your project. You can create a filter trigger which intercepts a database transaction before it happens, allowing you to validate or manipulate the data and optionally rejecting the transaction. Or action filters trigger once the change has happened in your database. This includes create, update, and deleting of items. This is great for data enrichment or follow-up logic that doesn't need to delay the database transaction from happening. The schedule trigger will run regularly on a specified interval. It uses the 6 point cron job syntax, so you can get as granular as second or as wide as weeks. The webhook trigger creates a unique URL for your flow and will be run whenever that URL is requested. Any data sent with the request will be available in the trigger object. The manual flow trigger adds a button to configured collections in Directus Explore and Directus Editor that can be clicked by users in the data studio. Optionally, a confirmation prompt can be shown with a form to collect data. And finally, you can chain flows together and configure them to be triggered by a parent flow. Data can be passed into them from the parent and once the flow has concluded it can be returned back up. Each time a flow is run it has its own data chain which is a JSON object passed from the trigger and to each operation, which will append information to the data chain. Now there are some dynamic properties available in every data chain. Trigger contains all of the data generated by the flows trigger. Accountability contains data about who or what started the flow. Env contains all of the environment variables that have been allowed to be shown and used inside of flows. And last contains return data from the previous operation whenever used. That means in every operation, the value of last will change to always be the output of the previous step. Each step which we call operations will receive all data in the data chain, perform some logic and return data back into the data chain. Each operation has a success and failure path which we call resolve and reject. So be sure to account for failed operations, especially when they rely on specific permissions or external services. A couple of very common operations include the webhook request url operation that allows your flow to make an external web request. You can select a method, url, and set custom headers as well as providing a payload. The create, read, update and delete data operations perform actions on items from a collection and adds the result to the data chain. You may select items by their ID or by running a query using directives' filter syntax. The run script operation lets you add custom JavaScript snippets. The script will be executed securely in an isolated sandbox, which means it only has access to standard built in objects and has no access outside of the sandbox except for sharing input and output values. This means, for example, no access to the file system, no ability to do network requests, and no support for third party packages. You can do each of these by using other operations that are provided as part of directors or by building custom operation extensions that use packages. Accessible from the sidebar, logs store information for each flow execution. Each log will display information from triggers as well as each operation in the flow. Keep in mind that if you've configured a flow to track logs, all of this will be stored in your database. So you may periodically need to delete this data if your flows get a lot of use. Directus automate is super powerful and I hope this explains the basics of how to utilize them. You can download custom operations from the directors marketplace and follow the tutorials in our documentation to set up specific flows.","84bfeb3c-0e79-4204-bde1-a4926d26de01",[236],"5acd1c81-4e55-4cbf-ba4b-1b89556a6ee4",[],{"id":133,"number":134,"show":122,"year":135,"episodes":239},[137,138,139,140,141,142,143,144,145,146],{"id":143,"slug":241,"vimeo_id":242,"description":243,"tile":244,"length":200,"resources":8,"people":8,"episode_number":245,"published":230,"title":246,"video_transcript_html":247,"video_transcript_text":248,"content":8,"seo":249,"status":130,"episode_people":250,"recommendations":252,"season":253},"directus-insights","1009260574","Explore the powerful features of Directus Insights for building interactive dashboards with customizable panels, charts, and global variables to visualize and analyze your data.","f6fdb697-d613-48c0-b02d-18ec93f498ce",6,"Directus Insights","\u003Cp>Speaker 0: Directus insights allows rapid no code dashboard building to display and act on data. Regardless of your use case, you will be able to set up key metrics from data held in your director's project in just a few clicks. Dashboards can be used for business intelligence, user progress tracking, web traffic conversions, or any other time you need to analyze data within your director's project. Each dash board is made up of panels, building blocks to display and interact with data. They include charts and graphs like bar charts, line charts, meters, pie charts and data lists.\u003C/p>\n\u003Cp>The list panel allows filtering and listing of items from a specified collection. If inline editing is enabled, clicking an item will open a directors editor drawer allowing users to examine each item and edit data directly from the dashboard. Now there are 2 specific built in panels which are very interesting. The global variable and the global relational variable panels. The global variable panel allows you to create a variable which is globally accessible across other panels.\u003C/p>\n\u003Cp>When creating a variable, a key is provided. The value can then be accessed in any other panel by using the mustache syntax with the name of the key in the middle. The global relational variable panel allows for variables to be set by selecting 1 or more items from a collection. A drop down select interface is shown which will open a director's explore draw. The returned value will be a single item ID or an array of IDs if select multiple items is enabled.\u003C/p>\n\u003Cp>You can use this, for example, to create a dynamic filter. Directus insights comes with some baked in panels, but you can always get more straight from the directus marketplace or build your own as an extension and install it in your project. I hope this provides an interesting insight into how director's insights works. If you have any questions, feel free to reach out and we'll see you in the next video.\u003C/p>","Directus insights allows rapid no code dashboard building to display and act on data. Regardless of your use case, you will be able to set up key metrics from data held in your director's project in just a few clicks. Dashboards can be used for business intelligence, user progress tracking, web traffic conversions, or any other time you need to analyze data within your director's project. Each dash board is made up of panels, building blocks to display and interact with data. They include charts and graphs like bar charts, line charts, meters, pie charts and data lists. The list panel allows filtering and listing of items from a specified collection. If inline editing is enabled, clicking an item will open a directors editor drawer allowing users to examine each item and edit data directly from the dashboard. Now there are 2 specific built in panels which are very interesting. The global variable and the global relational variable panels. The global variable panel allows you to create a variable which is globally accessible across other panels. When creating a variable, a key is provided. The value can then be accessed in any other panel by using the mustache syntax with the name of the key in the middle. The global relational variable panel allows for variables to be set by selecting 1 or more items from a collection. A drop down select interface is shown which will open a director's explore draw. The returned value will be a single item ID or an array of IDs if select multiple items is enabled. You can use this, for example, to create a dynamic filter. Directus insights comes with some baked in panels, but you can always get more straight from the directus marketplace or build your own as an extension and install it in your project. I hope this provides an interesting insight into how director's insights works. If you have any questions, feel free to reach out and we'll see you in the next video.","c1c793eb-6117-45c5-b4ec-51462a062177",[251],"e73b7e97-b6e9-4750-b6bc-919a744e1fe8",[],{"id":133,"number":134,"show":122,"year":135,"episodes":254},[137,138,139,140,141,142,143,144,145,146],{"id":144,"slug":256,"vimeo_id":257,"description":258,"tile":259,"length":200,"resources":8,"people":8,"episode_number":260,"published":230,"title":261,"video_transcript_html":262,"video_transcript_text":263,"content":8,"seo":264,"status":130,"episode_people":265,"recommendations":267,"season":268},"theming","1009260633","Explore Directus' advanced custom theming options, including light and dark themes, CSS customization, and public page styling, to create a personalized look for your company or client's project⁠.","e09a8852-8d67-40c0-b10b-7c91d0528858",7,"Theming","\u003Cp>Speaker 0: The ability to make Directus feel like it belongs to your company or client is very important and entirely possible thanks to the advanced custom theming options available. The direct us theming engine contains a number of customizable themes including a light theme and a dark theme. If default values are changed, they will automatically be mapped to the correct elements inside of the data studio even between upgrades. Both themes can be updated for all users in the settings module or for specific users in the users module. Any valid css values will be accepted by the directors theming engine.\u003C/p>\n\u003Cp>Custom CSS also allows custom styles or overrides in the data studio. If there are ever changes to the markup of the data studio, the directors team will ensure that all custom values set in the theming interface will continue to be applied correctly. You can also use custom CSS to add custom styles or overrides in the data studio. However, the data studio's core code and therefore the DOM selectors may change in any future release. So these updates are not considered a breaking change.\u003C/p>\n\u003Cp>So you should try and use the theming engine where possible and validate custom CSS still works after updating your director's project. The public pages of directors are shown before a user logs in and are related to authentication. Within your project's appearance settings, you can customize a project color, logo and favicon. Or is it favicon? Who knows favicon, favicon.\u003C/p>\n\u003Cp>You can, also pick custom images to display in the right half of the public pages. Public pages can also be further customized using custom CSS and our theming engine. And we'll talk about extensions in a future video, but themes can also be packaged up as extensions and installed in projects manually or via the directors marketplace. We want directors to be a super flexible tool that makes sense inside of your organization, and we hope that our custom theming options enable that to take place. If you have any questions, feel free to reach out, and we'll see you in the next video.\u003C/p>","The ability to make Directus feel like it belongs to your company or client is very important and entirely possible thanks to the advanced custom theming options available. The direct us theming engine contains a number of customizable themes including a light theme and a dark theme. If default values are changed, they will automatically be mapped to the correct elements inside of the data studio even between upgrades. Both themes can be updated for all users in the settings module or for specific users in the users module. Any valid css values will be accepted by the directors theming engine. Custom CSS also allows custom styles or overrides in the data studio. If there are ever changes to the markup of the data studio, the directors team will ensure that all custom values set in the theming interface will continue to be applied correctly. You can also use custom CSS to add custom styles or overrides in the data studio. However, the data studio's core code and therefore the dom selectors may change in any future release. So these updates are not considered a breaking change. So you should try and use the theming engine where possible and validate custom CSS still works after updating your director's project. The public pages of directors are shown before a user logs in and are related to authentication. Within your project's appearance settings, you can customize a project color, logo and favicon. Or is it favicon? Who knows favicon, favicon. You can, also pick custom images to display in the right half of the public pages. Public pages can also be further customized using custom CSS and our theming engine. And we'll talk about extensions in a future video, but themes can also be packaged up as extensions and installed in projects manually or via the directors marketplace. We want directors to be a super flexible tool that makes sense inside of your organization, and we hope that our custom theming options enable that to take place. If you have any questions, feel free to reach out, and we'll see you in the next video.","dc95bfd4-ec6f-4c3f-9900-2d144c953ddf",[266],"1d57ea7a-24a2-42aa-8523-188aa536fe10",[],{"id":133,"number":134,"show":122,"year":135,"episodes":269},[137,138,139,140,141,142,143,144,145,146],{"id":145,"slug":271,"vimeo_id":272,"description":273,"tile":274,"length":200,"resources":8,"people":8,"episode_number":170,"published":230,"title":275,"video_transcript_html":276,"video_transcript_text":277,"content":8,"seo":278,"status":130,"episode_people":279,"recommendations":281,"season":282},"directus-realtime","1009260676","Discover how Directus Realtime keeps your application data up-to-date instantly, enabling realtime features like multi-user chat, live updates, and time-sensitive data transfers through WebSocket connections and flexible subscription options⁠.","d3d60bb4-86f0-4f8b-8159-ac3aefc641fb","Directus Realtime","\u003Cp>Speaker 0: Directus real time can be used anytime you need to ensure data is always up to date in your application. Common use cases include building multi user chat, audience participation, and any time sensitive data transfer like auction value, stock prices and sports scores. Unlike many real time platform providers, directus emits events once changes happen in your collections. This means that you can always trust that the latest version of your data is persisted and retrievable without needing to implement your own storage logic. You can connect using a standard WebSocket connection, using GraphQL subscriptions or by using the directives Javascript SDK.\u003C/p>\u003Cp>You can begin any number of subscriptions over your real time connection with directives. Subscriptions are made on a collection level and will by default receive messages whenever an item is created, updated, or deleted. You can specify a subscription to only receive events on specific operations and optionally provide a unique identifier, which will be returned in all messages related to the subscription, which is really useful if you have multiple of them and need to track where data needs to be processed in your application. You can also execute actions over a real time connection, so you can create, read, update, and delete data without needing to make a separate HTTP request. This can be useful when for example, building a chat where the current user must both subscribe to new messages and be able to submit their own.\u003C/p>\u003Cp>With directors real time, you can do that all over a single authenticated connection. Check out our documentation for tutorials on implementing directus real time in your applications. Or check out our directus tv show, make it real time for a set of project based tutorials, which actually have you building real projects with real time. As always, hope you found this interesting, and we'll see you in the next video.\u003C/p>","Directus real time can be used anytime you need to ensure data is always up to date in your application. Common use cases include building multi user chat, audience participation, and any time sensitive data transfer like auction value, stock prices and sports scores. Unlike many real time platform providers, directus emits events once changes happen in your collections. This means that you can always trust that the latest version of your data is persisted and retrievable without needing to implement your own storage logic. You can connect using a standard WebSocket connection, using GraphQL subscriptions or by using the directives Javascript SDK. You can begin any number of subscriptions over your real time connection with directives. Subscriptions are made on a collection level and will by default receive messages whenever an item is created, updated, or deleted. You can specify a subscription to only receive events on specific operations and optionally provide a unique identifier, which will be returned in all messages related to the subscription, which is really useful if you have multiple of them and need to track where data needs to be processed in your application. You can also execute actions over a real time connection, so you can create, read, update, and delete data without needing to make a separate HTTP request. This can be useful when for example, building a chat where the current user must both subscribe to new messages and be able to submit their own. With directors real time, you can do that all over a single authenticated connection. Check out our documentation for tutorials on implementing directus real time in your applications. Or check out our directus tv show, make it real time for a set of project based tutorials, which actually have you building real projects with real time. As always, hope you found this interesting, and we'll see you in the next video.","cb5636c2-bb9b-45f8-b18c-fcd33725a136",[280],"c4e1455a-db0e-4e89-ab86-eb044a562653",[],{"id":133,"number":134,"show":122,"year":135,"episodes":283},[137,138,139,140,141,142,143,144,145,146],{"id":146,"slug":285,"vimeo_id":286,"description":287,"tile":288,"length":200,"resources":8,"people":8,"episode_number":289,"published":230,"title":290,"video_transcript_html":291,"video_transcript_text":292,"content":8,"seo":293,"status":130,"episode_people":294,"recommendations":296,"season":297},"extensions","1009260726","Discover the power of Directus extensions in this overview, exploring how they can enhance your project's functionality and integrate with external services⁠.","cf0efaae-ee67-4a49-934e-2c79311582ce",9,"Extensions","\u003Cp>Speaker 0: Directus has been built with flexibility and extensibility at its core. And can be added to by building or installing extensions to build features or integrate with external services. Extensions in directives run within the same environment as the core application, allowing them to leverage existing access to underlying services, authentication and access control systems, and UI components. App extensions run entirely in the data studio and API extensions run on the server and have different utilities available based on where they are run. Interfaces are used in the Directus editor providing the user with ways to create and edit items through forms and other elements, for example, a whiteboard interface.\u003C/p>\u003Cp>Displays are used in directus explore to represent single data points in new ways. For example, showing a 1 to 5 rating as various emojis. Layouts are also used in directus explore to give control over how multiple items in a collection are presented. For example, inside of a Gantt chart or a spreadsheet. Modules introduce a new level of extensibility to Directus, allowing you to add an entirely new page to your Directus app from the module bar on the far left.\u003C/p>\u003Cp>For example, a page solely containing an integration with an external service while still having access to all of the primitives inside of directors including all of the user state and the application state. Panels are used in directors insights to display or interact with data. Panels can also gather information from users through interfaces and act on them. For example, a panel to send an email to users. Hooks and operations allow for custom logic to be executed when data is changed or on schedules.\u003C/p>\u003Cp>Hooks are entirely code based and operations provide the functionality inside of directors automate. And finally, end points, which allow for creating additional API end points on top of those provided by Directus. End points are implemented as collections of express route handlers. The Directus marketplace provides a way for admins to install extensions in their projects directly in the data studio. It's available for all projects whether run on directors cloud or on your own infrastructure.\u003C/p>\u003Cp>While all app extensions can be published in the marketplace, API extensions must use our sandboxed extensions framework in order to be published, which is designed to provide robust security to your data and maintain strict control over interactions with the external environment by running extension code in an isolated sandbox. The world of extensions runs deep so I'm gonna stop at this high level overview. Just know that extensions are built in Node. Js and Vue, can be manually installed or installed via the marketplace and provide new functionality within your directors project.\u003C/p>","Directus has been built with flexibility and extensibility at its core. And can be added to by building or installing extensions to build features or integrate with external services. Extensions in directives run within the same environment as the core application, allowing them to leverage existing access to underlying services, authentication and access control systems, and UI components. App extensions run entirely in the data studio and API extensions run on the server and have different utilities available based on where they are run. Interfaces are used in the Directus editor providing the user with ways to create and edit items through forms and other elements, for example, a whiteboard interface. Displays are used in directus explore to represent single data points in new ways. For example, showing a 1 to 5 rating as various emojis. Layouts are also used in directus explore to give control over how multiple items in a collection are presented. For example, inside of a Gantt chart or a spreadsheet. Modules introduce a new level of extensibility to Directus, allowing you to add an entirely new page to your Directus app from the module bar on the far left. For example, a page solely containing an integration with an external service while still having access to all of the primitives inside of directors including all of the user state and the application state. Panels are used in directors insights to display or interact with data. Panels can also gather information from users through interfaces and act on them. For example, a panel to send an email to users. Hooks and operations allow for custom logic to be executed when data is changed or on schedules. Hooks are entirely code based and operations provide the functionality inside of directors automate. And finally, end points, which allow for creating additional API end points on top of those provided by Directus. End points are implemented as collections of express route handlers. The Directus marketplace provides a way for admins to install extensions in their projects directly in the data studio. It's available for all projects whether run on directors cloud or on your own infrastructure. While all app extensions can be published in the marketplace, API extensions must use our sandboxed extensions framework in order to be published, which is designed to provide robust security to your data and maintain strict control over interactions with the external environment by running extension code in an isolated sandbox. The world of extensions runs deep so I'm gonna stop at this high level overview. Just know that extensions are built in Node. Js and Vue, can be manually installed or installed via the marketplace and provide new functionality within your directors project.","a522211e-162c-4612-89e9-99553c402107",[295],"381099bd-2e00-4678-b01f-f79e937af716",[],{"id":133,"number":134,"show":122,"year":135,"episodes":298},[137,138,139,140,141,142,143,144,145,146],{"reps":300},[301,357],{"name":302,"sdr":8,"link":303,"countries":304,"states":306},"John Daniels","https://meet.directus.io/meetings/john2144/john-contact-form-meeting",[305],"United States",[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],"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":358,"link":359,"countries":360},"Michelle Riber","https://meetings.hubspot.com/mriber",[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,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,338,549,550],"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",1773850413958]