1"use strict";(self.webpackChunkdocs_authproxy_tech=self.webpackChunkdocs_authproxy_tech||[]).push([[811],{6381:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"admin-panel/app-access","title":"Application Access Control","description":"Manage application registrations, API keys, and webhook configurations","source":"@site/docs/admin-panel/app-access.md","sourceDirName":"admin-panel","slug":"/admin-panel/app-access","permalink":"/docs/admin-panel/app-access","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":11,"frontMatter":{"title":"Application Access Control","description":"Manage application registrations, API keys, and webhook configurations","sidebar_position":11},"sidebar":"tutorialSidebar","previous":{"title":"Sessions Management","permalink":"/docs/admin-panel/sessions"},"next":{"title":"Event Monitor","permalink":"/docs/admin-panel/event-monitor"}}');var t=i(4848),r=i(8453);const a={title:"Application Access Control",description:"Manage application registrations, API keys, and webhook configurations",sidebar_position:11},o="Application Access Control",l={},c=[{value:"Overview",id:"overview",level:2},{value:"Features",id:"features",level:2},{value:"Application List",id:"application-list",level:3},{value:"Actions",id:"actions",level:3},{value:"Flag Badges",id:"flag-badges",level:3}];function d(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"application-access-control",children:"Application Access Control"})}),"\n",(0,t.jsxs)(n.p,{children:["Manage ",(0,t.jsx)(n.code,{children:"user_app"})," registrations \u2014 applications that integrate with ItBuild platform."]}),"\n",(0,t.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,t.jsxs)(n.p,{children:["Each external application (merchant, partner, service) that connects to the platform needs a ",(0,t.jsx)(n.code,{children:"user_app"})," record. This page manages:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Application registration and API keys"}),"\n",(0,t.jsx)(n.li,{children:"Webhook URL configuration and health monitoring"}),"\n",(0,t.jsx)(n.li,{children:"Permission scopes"}),"\n",(0,t.jsx)(n.li,{children:"Application flags"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"features",children:"Features"}),"\n",(0,t.jsx)(n.h3,{id:"application-list",children:"Application List"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Column"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"App ID"}),(0,t.jsx)(n.td,{children:"Application TimeTick ID"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Name"}),(0,t.jsx)(n.td,{children:"Application name"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Owner"}),(0,t.jsx)(n.td,{children:"User who registered the app"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Flags"}),(0,t.jsx)(n.td,{children:"Status badges (Active, Verified, Webhook)"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Webhook URL"}),(0,t.jsx)(n.td,{children:"Configured webhook endpoint"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Webhook Health"}),(0,t.jsx)(n.td,{children:"Last webhook delivery status"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Created"}),(0,t.jsx)(n.td,{children:"Registration date"})]})]})]}),"\n",(0,t.jsx)(n.h3,{id:"actions",children:"Actions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Approve / Reject"}),": Review new application registrations"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Edit"}),": Modify app settings, webhook URL, scopes"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Regenerate Key"}),": Issue new API key (invalidates old one)"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"flag-badges",children:"Flag Badges"}),"\n",(0,t.jsx)(n.p,{children:"Visual indicators for application status:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Active"})," (green) \u2014 Application is enabled"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Verified"})," (blue) \u2014 Manually verified by admin"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Webhook"})," (purple) \u2014 Webhook URL configured"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Suspended"})," (red) \u2014 Application disabled"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>a,x:()=>o});var s=i(6540);const t={},r=s.createContext(t);function a(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.