1"use strict";(self.webpackChunkAuthressKnowledgeBase=self.webpackChunkAuthressKnowledgeBase||[]).push([[5853],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var s=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,s,a=function(e,t){if(null==e)return{};var r,s,a={},n=Object.keys(e);for(s=0;s<n.length;s++)r=n[s],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(s=0;s<n.length;s++)r=n[s],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=s.createContext({}),l=function(e){var t=s.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=l(e.components);return s.createElement(i.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},p=s.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(r),d=a,m=p["".concat(i,".").concat(d)]||p[d]||h[d]||n;return r?s.createElement(m,o(o({ref:t},u),{},{components:r})):s.createElement(m,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,o=new Array(n);o[0]=p;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:a,o[1]=c;for(var l=2;l<n;l++)o[l]=r[l];return s.createElement.apply(null,o)}return s.createElement.apply(null,r)}p.displayName="MDXCreateElement"},8814:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>c,toc:()=>l});var s=r(87462),a=(r(67294),r(3905));const n={hide_table_of_contents:!1,title:"Access Analyzer Improvements",description:"The Access Analyzer additionally supports a number of improvements to make it even easier to debug issues with authorization checks.",date:"2023-07-06T10:00"},o=void 0,c={permalink:"/knowledge-base/release-notes/access-analyzer-debugging",source:"@site/release-notes/access-analyzer-debugging/index.md",title:"Access Analyzer Improvements",description:"The Access Analyzer additionally supports a number of improvements to make it even easier to debug issues with authorization checks.",date:"2023-07-06T10:00:00.000Z",formattedDate:"July 6, 2023",tags:[],hasTruncateMarker:!1,authors:[],frontMatter:{hide_table_of_contents:!1,title:"Access Analyzer Improvements",description:"The Access Analyzer additionally supports a number of improvements to make it even easier to debug issues with authorization checks.",date:"2023-07-06T10:00"},prevItem:{title:"Python SDK v3.0 Release",permalink:"/knowledge-base/release-notes/2023/08/08/python-3.0-release"},nextItem:{title:"Fetch all the users in a customer tenant",permalink:"/knowledge-base/release-notes/list-users-tenant-filter"}},i={authorsImageUrls:[]},l=[{value:"Access Record Source",id:"access-record-source",level:3},{value:"Access Check History",id:"access-check-history",level:3},{value:"Related resources",id:"related-resources",level:3}],u={toc:l};function h(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,s.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The ",(0,a.kt)("a",{parentName:"p",href:"https://authress.io/app/#/settings?focus=analyzer"},"Authress Access Analyzer")," is our way of giving you the advanced tools you need to answer the complex authorization question you might have."),(0,a.kt)("p",null,"Questions such as:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Does that user really have the correct permission to the resource?"),(0,a.kt)("li",{parentName:"ul"},"What's that user's access right now?"),(0,a.kt)("li",{parentName:"ul"},"What are all the resources the user has access to with this permission?")),(0,a.kt)("p",null,"While these actions are at the forefront of Authress authorization checks and done usually via one of the ",(0,a.kt)("a",{parentName:"p",href:"https://authress.io/app/#/api"},"Authress SDKs"),", getting answers to these questions directly in the Authress Management Portal, makes it so much easier."),(0,a.kt)("p",null,"This release includes two new features for the Access Analyzer."),(0,a.kt)("h3",{id:"access-record-source"}
1,"Access Record Source"),(0,a.kt)("p",null,"When a user has access to a resource via an access record, the Access Analyzer now shows that linked access access record as well as the role that granted the access."),(0,a.kt)("div",{className:"image-md"},(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Linked Access Record information",src:r(39071).Z,width:"576",height:"471"}))),(0,a.kt)("h3",{id:"access-check-history"},"Access Check History"),(0,a.kt)("p",null,"After each access check the Authress UI will now save and display these checks to make it easier to see what was just validated. This makes it possible to compare a list of authorization checks for anything that might not be working correctly."),(0,a.kt)("div",{className:"image-md"},(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Authorization check history",src:r(28297).Z,width:"950",height:"342"}))),(0,a.kt)("h3",{id:"related-resources"},"Related resources"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://authress.io/app/#/settings?focus=analyzer"},"Access Analyzer")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://authress.io/app/#/api"},"Authress SDKs"))))}h.isMDXComponent=!0},28297:(e,t,r)=>{r.d(t,{Z:()=>s});const s=r.p+"assets/images/access-check-history-f74a7598558e78ba74fe03923e99be84.png"},39071:(e,t,r)=>{r.d(t,{Z:()=>s});const s=r.p+"assets/images/linked-access-record-ba9ee76d5c9388ccff89053a27195720.png"}}]);
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.