 Hi, I'm Kristin Nicola. I'm a senior software engineer at the Mass Open Cloud. I am also the former Keystone PTL. This presentation is about Adjutant and how we're using it at the MOC to handle self-service with regards to project requests and to allow our users to manage members of their projects. This is a brief outline of the presentation. I'll go over what is Adjutant, how to extend it with your own business logic, what sort of things we're doing with it, and there's also pictures showing it. So Adjutant is a basic workflow framework that helps you automate admin tasks within an OpenStack cluster. This is designed to allow a place for users to request workflows which they would not be otherwise able to perform given that they would be missing the admin role. So like creating a new project, changing quotas for a project, adding users to their project or removing users to the project, and now there are various functionality that we have implemented like adding users to a mailing list so they can receive notifications when we have announcements to make and things like that. It allows so easy addition of your own business logic like in this case we've added mailing lists and things which don't necessarily have to be related to OpenStack. So how to extend it? It's pretty simple. It's built with Django and Django REST framework. There's three primitives that you need to be aware of. There's a task which is composed of multiple actions. An action may be creating a project, another action may be adding a user to a project, and then you compose this action together into a task. For example, create a project would be creating the project and adding the user which created the project to it. And these are also assigned to APIs and APIs don't necessarily need to map one-to-one to a task or to any task at all. You can just have APIs which returns the state of the system. For example, health checks and stuff like that. It also allows you to create your own tasks, actions, and APIs and they do not have to sit in the same repository as Adjutant. You can create a different repository and store all of it there. So it's very pluggable and you can also use a configuration files to enable and disable different APIs, tasks, and actions. So in our case, we're using this for sign-ups. So when a user requests a project at the MOC, they will sign in with their single sign-on account since we are mainly focused on the research people. They would log in with their institutional account like from Boston University or Harvard University or whatever. And after logging in, they would be presented with a sign-up form where they can request the project, try it out their description, which organization and roll their part and submit this form. This is all horizon-based, so there is a plug-in for Horizon for presenting the Adjutant functionality. And this is specifically the sign-up form, which people will see when they try to authenticate, but they don't have any projects or they go directly to this page. The Horizon-based dashboard also allows admins to see all the project requests or other workflows that have been processed. For example, here we can see that there are several MOC-create project requests and there's also several MOC-invite-user. So in this dashboard, these are completed tasks, but for tasks that have not been completed yet, the administrator would be able to either approve or deny the task that is operating. So we also allow users to manage access to their project and they can invite members to the project based on their email address. So in the same dashboard, if you have the project admin role to a project, then you can see the users that are part of the project and the roles that they have and you can also click the invite button and that brings up a form where you can write out the email address of the person that you're trying to invite and which roles you want to invite them to your project as. And then they will receive a link and they will sign in with their single sign-on institutional account through it. And if it matches the email you invited, then they will be added to the project with the role you requested. This is pretty much it. Adjutant is an OpenStack project. There's the link to the documentation, to the Adjutant project, to the Adjutant UI Horizon plugin, and to the MOC plugin with the custom business logic that we have implemented for our use case. Thank you.