[{"data":1,"prerenderedAt":3619},["ShallowReactive",2],{"navigation":3,"\u002Fdigging-deeper\u002Fdetails":307,"\u002Fdigging-deeper\u002Fdetails-surround":3614},{"3.x":4,"2.x":203},[5,32,61,99,121,147,165],{"title":6,"icon":7,"path":8,"stem":9,"children":10,"page":31},"Getting Started","i-heroicons-star","\u002Fgetting-started","1.getting-started",[11,15,19,23,27],{"title":12,"path":13,"stem":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":16,"path":17,"stem":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":20,"path":21,"stem":22},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":24,"path":25,"stem":26},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration",{"title":28,"path":29,"stem":30},"Upgrade guide","\u002Fgetting-started\u002Fupgrade-guide","1.getting-started\u002F5.upgrade-guide",false,{"title":33,"icon":34,"path":35,"stem":36,"children":37,"page":31},"Resources","i-heroicons-document-text","\u002Fresources","2.resources",[38,41,45,49,53,57],{"title":33,"path":39,"stem":40},"\u002Fresources\u002Fresources","2.resources\u002F1.resources",{"title":42,"path":43,"stem":44},"Fields","\u002Fresources\u002Ffields","2.resources\u002F2.fields",{"title":46,"path":47,"stem":48},"Relationships","\u002Fresources\u002Frelations","2.resources\u002F3.relations",{"title":50,"path":51,"stem":52},"Validation","\u002Fresources\u002Fvalidation","2.resources\u002F4.validation",{"title":54,"path":55,"stem":56},"Perimeter","\u002Fresources\u002Fperimeter","2.resources\u002F5.perimeter",{"title":58,"path":59,"stem":60},"Limits","\u002Fresources\u002Flimits","2.resources\u002F6.limits",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":31},"Search","i-heroicons-magnifying-glass","\u002Fsearch","3.search",[67,71,75,79,83,87,91,95],{"title":68,"path":69,"stem":70},"Search overview","\u002Fsearch\u002Foverview","3.search\u002F1.overview",{"title":72,"path":73,"stem":74},"Search filters","\u002Fsearch\u002Ffilters","3.search\u002F2.filters",{"title":76,"path":77,"stem":78},"Sorts and selects","\u002Fsearch\u002Fsorts-and-selects","3.search\u002F3.sorts-and-selects",{"title":80,"path":81,"stem":82},"Includes and aggregates","\u002Fsearch\u002Fincludes-and-aggregates","3.search\u002F4.includes-and-aggregates",{"title":84,"path":85,"stem":86},"Scopes and instructions","\u002Fsearch\u002Fscopes-and-instructions","3.search\u002F5.scopes-and-instructions",{"title":88,"path":89,"stem":90},"Text search","\u002Fsearch\u002Ftext-search","3.search\u002F6.text-search",{"title":92,"path":93,"stem":94},"Search engines","\u002Fsearch\u002Fsearch-engines","3.search\u002F7.search-engines",{"title":96,"path":97,"stem":98},"Searching outside HTTP","\u002Fsearch\u002Foutside-http","3.search\u002F8.outside-http",{"title":100,"icon":101,"path":102,"stem":103,"children":104,"page":31},"Writing","i-heroicons-pencil-square","\u002Fwriting","4.writing",[105,109,113,117],{"title":106,"path":107,"stem":108},"Mutate","\u002Fwriting\u002Fmutate","4.writing\u002F1.mutate",{"title":110,"path":111,"stem":112},"Writing relations","\u002Fwriting\u002Frelations","4.writing\u002F2.relations",{"title":114,"path":115,"stem":116},"Versioned rows","\u002Fwriting\u002Fversioned-rows","4.writing\u002F3.versioned-rows",{"title":118,"path":119,"stem":120},"Deleting and restoring","\u002Fwriting\u002Fdeleting","4.writing\u002F4.deleting",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":31},"Actions and Metrics","i-heroicons-bolt","\u002Factions-and-metrics","5.actions-and-metrics",[127,131,135,139,143],{"title":128,"path":129,"stem":130},"Actions","\u002Factions-and-metrics\u002Factions","5.actions-and-metrics\u002F1.actions",{"title":132,"path":133,"stem":134},"Queued Actions","\u002Factions-and-metrics\u002Fqueued-actions","5.actions-and-metrics\u002F2.queued-actions",{"title":136,"path":137,"stem":138},"Confirmation","\u002Factions-and-metrics\u002Fconfirmation","5.actions-and-metrics\u002F3.confirmation",{"title":140,"path":141,"stem":142},"Metrics","\u002Factions-and-metrics\u002Fmetrics","5.actions-and-metrics\u002F4.metrics",{"title":144,"path":145,"stem":146},"Exports","\u002Factions-and-metrics\u002Fexports","5.actions-and-metrics\u002F5.exports",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":31},"Authorization","i-heroicons-lock-closed","\u002Fauthorization","6.authorization",[153,157,161],{"title":154,"path":155,"stem":156},"Policies","\u002Fauthorization\u002Fpolicies","6.authorization\u002F1.policies",{"title":158,"path":159,"stem":160},"Gates","\u002Fauthorization\u002Fgates","6.authorization\u002F2.gates",{"title":162,"path":163,"stem":164},"Decision Cache","\u002Fauthorization\u002Fdecision-cache","6.authorization\u002F3.decision-cache",{"title":166,"icon":167,"path":168,"stem":169,"children":170,"page":31},"Digging Deeper","i-heroicons-list-bullet","\u002Fdigging-deeper","7.digging-deeper",[171,175,179,183,187,191,195,199],{"title":172,"path":173,"stem":174},"Details","\u002Fdigging-deeper\u002Fdetails","7.digging-deeper\u002F1.details",{"title":176,"path":177,"stem":178},"Events and Hooks","\u002Fdigging-deeper\u002Fevents-and-hooks","7.digging-deeper\u002F2.events-and-hooks",{"title":180,"path":181,"stem":182},"Custom Responses","\u002Fdigging-deeper\u002Fresponses","7.digging-deeper\u002F3.responses",{"title":184,"path":185,"stem":186},"OpenAPI Documentation","\u002Fdigging-deeper\u002Fopenapi","7.digging-deeper\u002F4.openapi",{"title":188,"path":189,"stem":190},"Precognition","\u002Fdigging-deeper\u002Fprecognition","7.digging-deeper\u002F5.precognition",{"title":192,"path":193,"stem":194},"Artisan Commands","\u002Fdigging-deeper\u002Fartisan","7.digging-deeper\u002F6.artisan",{"title":196,"path":197,"stem":198},"Laravel Boost Skill","\u002Fdigging-deeper\u002Fai-skill","7.digging-deeper\u002F7.ai-skill",{"title":200,"path":201,"stem":202},"Translations","\u002Fdigging-deeper\u002Ftranslations","7.digging-deeper\u002F8.translations",[204,215,237,260,297],{"title":6,"icon":7,"path":205,"stem":206,"children":207,"page":31},"\u002F2.x\u002Fgetting-started","2.x\u002F1.getting-started",[208,211],{"title":16,"path":209,"stem":210},"\u002F2.x\u002Fgetting-started\u002Finstallation","2.x\u002F1.getting-started\u002F1.installation",{"title":212,"path":213,"stem":214},"Upgrade Guide","\u002F2.x\u002Fgetting-started\u002Fupgrade-guide","2.x\u002F1.getting-started\u002F2.upgrade-guide",{"title":216,"icon":217,"path":218,"stem":219,"children":220,"page":31},"Endpoints","i-heroicons-arrow-uturn-left","\u002F2.x\u002Fendpoints","2.x\u002F2.endpoints",[221,224,227,230,233],{"title":172,"path":222,"stem":223},"\u002F2.x\u002Fendpoints\u002Fdetails","2.x\u002F2.endpoints\u002F1.details",{"title":62,"path":225,"stem":226},"\u002F2.x\u002Fendpoints\u002Fsearch","2.x\u002F2.endpoints\u002F2.search",{"title":106,"path":228,"stem":229},"\u002F2.x\u002Fendpoints\u002Fmutate","2.x\u002F2.endpoints\u002F3.mutate",{"title":128,"path":231,"stem":232},"\u002F2.x\u002Fendpoints\u002Factions","2.x\u002F2.endpoints\u002F4.actions",{"title":234,"path":235,"stem":236},"Delete","\u002F2.x\u002Fendpoints\u002Fdelete","2.x\u002F2.endpoints\u002F5.delete",{"title":33,"icon":34,"path":238,"stem":239,"children":240,"page":31},"\u002F2.x\u002Fresources","2.x\u002F3.resources",[241,245,249,252,256],{"title":242,"path":243,"stem":244},"Basics","\u002F2.x\u002Fresources\u002Fbasics","2.x\u002F3.resources\u002F1.basics",{"title":246,"path":247,"stem":248},"Exposed Data","\u002F2.x\u002Fresources\u002Fexposed-data","2.x\u002F3.resources\u002F2.exposed-data",{"title":46,"path":250,"stem":251},"\u002F2.x\u002Fresources\u002Frelationships","2.x\u002F3.resources\u002F3.relationships",{"title":253,"path":254,"stem":255},"Validations","\u002F2.x\u002Fresources\u002Fvalidations","2.x\u002F3.resources\u002F4.validations",{"title":257,"path":258,"stem":259},"Interactions","\u002F2.x\u002Fresources\u002Finteractions","2.x\u002F3.resources\u002F5.interactions",{"title":166,"icon":167,"path":261,"stem":262,"children":263,"page":31},"\u002F2.x\u002Fdigging-deeper","2.x\u002F4.digging-deeper",[264,267,271,274,278,282,286,290,294],{"title":128,"path":265,"stem":266},"\u002F2.x\u002Fdigging-deeper\u002Factions","2.x\u002F4.digging-deeper\u002F1.actions",{"title":268,"path":269,"stem":270},"Hooks","\u002F2.x\u002Fdigging-deeper\u002Fhooks","2.x\u002F4.digging-deeper\u002F2.hooks",{"title":158,"path":272,"stem":273},"\u002F2.x\u002Fdigging-deeper\u002Fgates","2.x\u002F4.digging-deeper\u002F3.gates",{"title":275,"path":276,"stem":277},"Authorizations","\u002F2.x\u002Fdigging-deeper\u002Fauthorizations","2.x\u002F4.digging-deeper\u002F4.authorizations",{"title":279,"path":280,"stem":281},"Full Text Search","\u002F2.x\u002Fdigging-deeper\u002Ffull-text-search","2.x\u002F4.digging-deeper\u002F5.full-text-search",{"title":283,"path":284,"stem":285},"Instructions","\u002F2.x\u002Fdigging-deeper\u002Finstructions","2.x\u002F4.digging-deeper\u002F6.instructions",{"title":287,"path":288,"stem":289},"Responses","\u002F2.x\u002Fdigging-deeper\u002Fresponses","2.x\u002F4.digging-deeper\u002F7.responses",{"title":291,"path":292,"stem":293},"Documentation","\u002F2.x\u002Fdigging-deeper\u002Fdocumentation","2.x\u002F4.digging-deeper\u002F8.documentation",{"title":188,"path":295,"stem":296},"\u002F2.x\u002Fdigging-deeper\u002Fprecognition","2.x\u002F4.digging-deeper\u002F9.precognition",{"title":298,"icon":299,"path":300,"stem":301,"children":302,"page":31},"Integrations","i-lucide-puzzle","\u002F2.x\u002Fintegrations","2.x\u002F5.integrations",[303],{"title":304,"path":305,"stem":306},"Flutter","\u002F2.x\u002Fintegrations\u002Fflutter","2.x\u002F5.integrations\u002F1.flutter",{"id":308,"title":172,"body":309,"description":3606,"extension":3607,"links":3608,"meta":3609,"navigation":3610,"path":173,"seo":3611,"sitemap":3612,"stem":174,"__hash__":3613},"docs3x\u002F7.digging-deeper\u002F1.details.md",{"type":310,"value":311,"toc":3590},"minimark",[312,321,328,333,349,686,734,860,906,912,923,932,938,1322,1332,1400,1403,1445,1450,1453,1473,1476,1478,1487,1777,1844,1849,1852,1861,2054,2119,2134,2138,2147,2512,2590,2594,2603,2695,2711,2715,2724,2962,3021,3024,3033,3095,3120,3122,3131,3220,3256,3266,3269,3277,3424,3519,3523,3586],[313,314,315,316,320],"p",{},"The details endpoint, ",[317,318,319],"code",{},"GET \u002F{resource}",", describes a resource for the current user: its fields, relations, scopes, actions, metrics, rules, text search, gates and authorizations. A frontend reads it once to build a list, a form or the dialog of an action.",[313,322,323,324,327],{},"The endpoint answers a thin base. Ask for the rest with the ",[317,325,326],{},"with"," query parameter: what is not asked for is not computed.",[329,330,332],"h2",{"id":331},"the-base","The base",[334,335,340],"pre",{"className":336,"code":337,"language":338,"meta":339,"style":339},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","GET \u002Fapi\u002Fartworks\n","http","",[317,341,342],{"__ignoreMap":339},[343,344,347],"span",{"class":345,"line":346},"line",1,[343,348,337],{},[334,350,354],{"className":351,"code":352,"language":353,"meta":339,"style":339},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\"data\": {\n  \"fields\": [\n    {\"name\": \"id\", \"label\": null, \"type\": \"id\", \"nullable\": false},\n    {\"name\": \"title\", \"label\": \"Title\", \"type\": \"text\", \"nullable\": false},\n    {\"name\": \"medium\", \"label\": null, \"type\": \"enum\", \"nullable\": false, \"values\": [\"oil\", \"ink\", \"watercolor\"]}\n  ],\n  \"limits\": [10, 25, 50],\n  \"meta\": {}\n}}\n","json",[317,355,356,377,394,463,529,629,635,665,680],{"__ignoreMap":339},[343,357,358,362,365,369,371,374],{"class":345,"line":346},[343,359,361],{"class":360},"sMK4o","{",[343,363,364],{"class":360},"\"",[343,366,368],{"class":367},"spNyl","data",[343,370,364],{"class":360},[343,372,373],{"class":360},":",[343,375,376],{"class":360}," {\n",[343,378,380,383,387,389,391],{"class":345,"line":379},2,[343,381,382],{"class":360},"  \"",[343,384,386],{"class":385},"sBMFI","fields",[343,388,364],{"class":360},[343,390,373],{"class":360},[343,392,393],{"class":360}," [\n",[343,395,397,400,402,406,408,410,413,417,419,422,424,427,429,431,434,436,439,441,443,445,447,449,451,453,456,458,460],{"class":345,"line":396},3,[343,398,399],{"class":360},"    {",[343,401,364],{"class":360},[343,403,405],{"class":404},"sbssI","name",[343,407,364],{"class":360},[343,409,373],{"class":360},[343,411,412],{"class":360}," \"",[343,414,416],{"class":415},"sfazB","id",[343,418,364],{"class":360},[343,420,421],{"class":360},",",[343,423,412],{"class":360},[343,425,426],{"class":404},"label",[343,428,364],{"class":360},[343,430,373],{"class":360},[343,432,433],{"class":360}," null,",[343,435,412],{"class":360},[343,437,438],{"class":404},"type",[343,440,364],{"class":360},[343,442,373],{"class":360},[343,444,412],{"class":360},[343,446,416],{"class":415},[343,448,364],{"class":360},[343,450,421],{"class":360},[343,452,412],{"class":360},[343,454,455],{"class":404},"nullable",[343,457,364],{"class":360},[343,459,373],{"class":360},[343,461,462],{"class":360}," false},\n",[343,464,466,468,470,472,474,476,478,481,483,485,487,489,491,493,495,498,500,502,504,506,508,510,512,515,517,519,521,523,525,527],{"class":345,"line":465},4,[343,467,399],{"class":360},[343,469,364],{"class":360},[343,471,405],{"class":404},[343,473,364],{"class":360},[343,475,373],{"class":360},[343,477,412],{"class":360},[343,479,480],{"class":415},"title",[343,482,364],{"class":360},[343,484,421],{"class":360},[343,486,412],{"class":360},[343,488,426],{"class":404},[343,490,364],{"class":360},[343,492,373],{"class":360},[343,494,412],{"class":360},[343,496,497],{"class":415},"Title",[343,499,364],{"class":360},[343,501,421],{"class":360},[343,503,412],{"class":360},[343,505,438],{"class":404},[343,507,364],{"class":360},[343,509,373],{"class":360},[343,511,412],{"class":360},[343,513,514],{"class":415},"text",[343,516,364],{"class":360},[343,518,421],{"class":360},[343,520,412],{"class":360},[343,522,455],{"class":404},[343,524,364],{"class":360},[343,526,373],{"class":360},[343,528,462],{"class":360},[343,530,532,534,536,538,540,542,544,547,549,551,553,555,557,559,561,563,565,567,569,571,574,576,578,580,582,584,586,589,591,594,596,598,601,603,606,608,610,612,615,617,619,621,624,626],{"class":345,"line":531},5,[343,533,399],{"class":360},[343,535,364],{"class":360},[343,537,405],{"class":404},[343,539,364],{"class":360},[343,541,373],{"class":360},[343,543,412],{"class":360},[343,545,546],{"class":415},"medium",[343,548,364],{"class":360},[343,550,421],{"class":360},[343,552,412],{"class":360},[343,554,426],{"class":404},[343,556,364],{"class":360},[343,558,373],{"class":360},[343,560,433],{"class":360},[343,562,412],{"class":360},[343,564,438],{"class":404},[343,566,364],{"class":360},[343,568,373],{"class":360},[343,570,412],{"class":360},[343,572,573],{"class":415},"enum",[343,575,364],{"class":360},[343,577,421],{"class":360},[343,579,412],{"class":360},[343,581,455],{"class":404},[343,583,364],{"class":360},[343,585,373],{"class":360},[343,587,588],{"class":360}," false,",[343,590,412],{"class":360},[343,592,593],{"class":404},"values",[343,595,364],{"class":360},[343,597,373],{"class":360},[343,599,600],{"class":360}," [",[343,602,364],{"class":360},[343,604,605],{"class":415},"oil",[343,607,364],{"class":360},[343,609,421],{"class":360},[343,611,412],{"class":360},[343,613,614],{"class":415},"ink",[343,616,364],{"class":360},[343,618,421],{"class":360},[343,620,412],{"class":360},[343,622,623],{"class":415},"watercolor",[343,625,364],{"class":360},[343,627,628],{"class":360},"]}\n",[343,630,632],{"class":345,"line":631},6,[343,633,634],{"class":360},"  ],\n",[343,636,638,640,643,645,647,649,652,654,657,659,662],{"class":345,"line":637},7,[343,639,382],{"class":360},[343,641,642],{"class":385},"limits",[343,644,364],{"class":360},[343,646,373],{"class":360},[343,648,600],{"class":360},[343,650,651],{"class":404},"10",[343,653,421],{"class":360},[343,655,656],{"class":404}," 25",[343,658,421],{"class":360},[343,660,661],{"class":404}," 50",[343,663,664],{"class":360},"],\n",[343,666,668,670,673,675,677],{"class":345,"line":667},8,[343,669,382],{"class":360},[343,671,672],{"class":385},"meta",[343,674,364],{"class":360},[343,676,373],{"class":360},[343,678,679],{"class":360}," {}\n",[343,681,683],{"class":345,"line":682},9,[343,684,685],{"class":360},"}}\n",[687,688,689],"ul",{},[690,691,692,694,695,697,698,700,701,704,705,708,709,711,712,714,715,718,719,721,722,725,726,733],"li",{},[317,693,386],{}," has one entry per field, in declared order: ",[317,696,405],{},", ",[317,699,426],{}," (the field's ",[317,702,703],{},"label()",", or ",[317,706,707],{},"null","), ",[317,710,438],{}," and ",[317,713,455],{},". An ",[317,716,717],{},"Enum"," field adds ",[317,720,593],{},", the backing values of the enum, and ",[317,723,724],{},"offered",", the values that writes accept, when its ",[727,728,730],"a",{"href":729},"\u002Fresources\u002Ffields#offered-cases",[317,731,732],{},"offered()"," leaves cases out:",[334,735,737],{"className":351,"code":736,"language":353,"meta":339,"style":339},"{\"name\": \"status\", \"label\": null, \"type\": \"enum\", \"nullable\": false, \"values\": [\"planned\", \"on_sale\", \"sold_out\"], \"offered\": [\"planned\", \"on_sale\"]}\n",[317,738,739],{"__ignoreMap":339},[343,740,741,743,745,747,749,751,753,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,811,813,815,817,820,822,824,826,829,831,834,836,838,840,842,844,846,848,850,852,854,856,858],{"class":345,"line":346},[343,742,361],{"class":360},[343,744,364],{"class":360},[343,746,405],{"class":367},[343,748,364],{"class":360},[343,750,373],{"class":360},[343,752,412],{"class":360},[343,754,755],{"class":415},"status",[343,757,364],{"class":360},[343,759,421],{"class":360},[343,761,412],{"class":360},[343,763,426],{"class":367},[343,765,364],{"class":360},[343,767,373],{"class":360},[343,769,433],{"class":360},[343,771,412],{"class":360},[343,773,438],{"class":367},[343,775,364],{"class":360},[343,777,373],{"class":360},[343,779,412],{"class":360},[343,781,573],{"class":415},[343,783,364],{"class":360},[343,785,421],{"class":360},[343,787,412],{"class":360},[343,789,455],{"class":367},[343,791,364],{"class":360},[343,793,373],{"class":360},[343,795,588],{"class":360},[343,797,412],{"class":360},[343,799,593],{"class":367},[343,801,364],{"class":360},[343,803,373],{"class":360},[343,805,600],{"class":360},[343,807,364],{"class":360},[343,809,810],{"class":415},"planned",[343,812,364],{"class":360},[343,814,421],{"class":360},[343,816,412],{"class":360},[343,818,819],{"class":415},"on_sale",[343,821,364],{"class":360},[343,823,421],{"class":360},[343,825,412],{"class":360},[343,827,828],{"class":415},"sold_out",[343,830,364],{"class":360},[343,832,833],{"class":360},"],",[343,835,412],{"class":360},[343,837,724],{"class":367},[343,839,364],{"class":360},[343,841,373],{"class":360},[343,843,600],{"class":360},[343,845,364],{"class":360},[343,847,810],{"class":415},[343,849,364],{"class":360},[343,851,421],{"class":360},[343,853,412],{"class":360},[343,855,819],{"class":415},[343,857,364],{"class":360},[343,859,628],{"class":360},[687,861,862,871,885],{},[690,863,864,866,867,870],{},[317,865,642],{}," lists the page sizes that ",[317,868,869],{},"search.limit"," accepts.",[690,872,873,875,876,879,880,884],{},[317,874,672],{}," holds what the resource's ",[317,877,878],{},"detailsMeta()"," returns, see ",[727,881,883],{"href":882},"#meta","below",".",[690,886,887,888,891,892,697,895,898,899,902,903,905],{},"The endpoint checks ",[317,889,890],{},"viewAny"," on the resource. Without ",[317,893,894],{},"authorizations",[317,896,897],{},"actions.authorized"," or ",[317,900,901],{},"metrics.authorized"," in ",[317,904,326],{},", it calls no other policy.",[329,907,909,910],{"id":908},"asking-for-more-with-with","Asking for more with ",[317,911,326],{},[313,913,914,916,917,920,921,373],{},[317,915,326],{}," is a comma-separated list of sections, such as ",[317,918,919],{},"actions",", and parts of a section, such as ",[317,922,897],{},[334,924,926],{"className":336,"code":925,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Fartworks?with=fields.capabilities,actions.authorized\n",[317,927,928],{"__ignoreMap":339},[343,929,930],{"class":345,"line":346},[343,931,925],{},[313,933,934,935,937],{},"A part adds its section with the base keys of that section. A repeated value counts once, and an empty ",[317,936,326],{}," answers the base.",[939,940,941,955],"table",{},[942,943,944],"thead",{},[945,946,947,952],"tr",{},[948,949,950],"th",{},[317,951,326],{},[948,953,954],{},"Adds",[956,957,958,981,993,1013,1024,1053,1066,1078,1091,1117,1127,1139,1151,1170,1181,1193,1209,1219,1231,1243,1253,1265,1274,1286,1300,1313],"tbody",{},[945,959,960,966],{},[961,962,963],"td",{},[317,964,965],{},"fields.capabilities",[961,967,968,697,971,697,974,711,977,980],{},[317,969,970],{},"select",[317,972,973],{},"sort",[317,975,976],{},"create",[317,978,979],{},"update"," on each field",[945,982,983,988],{},[961,984,985],{},[317,986,987],{},"fields.filter",[961,989,990,980],{},[317,991,992],{},"filter.operators",[945,994,995,1000],{},[961,996,997],{},[317,998,999],{},"fields.rules",[961,1001,1002,1005,1006,697,1009,711,1011],{},[317,1003,1004],{},"rules"," on each field: ",[317,1007,1008],{},"all",[317,1010,976],{},[317,1012,979],{},[945,1014,1015,1020],{},[961,1016,1017],{},[317,1018,1019],{},"fields.meta",[961,1021,1022,980],{},[317,1023,672],{},[945,1025,1026,1031],{},[961,1027,1028],{},[317,1029,1030],{},"relations",[961,1032,1033,1034,697,1037,711,1040,1042,1043,711,1046,1049,1050],{},"each relation: ",[317,1035,1036],{},"resource",[317,1038,1039],{},"relation",[317,1041,405],{},", plus ",[317,1044,1045],{},"types",[317,1047,1048],{},"morph"," on a ",[317,1051,1052],{},"MorphTo",[945,1054,1055,1060],{},[961,1056,1057],{},[317,1058,1059],{},"relations.constraints",[961,1061,1062,1065],{},[317,1063,1064],{},"constraints"," on each relation",[945,1067,1068,1073],{},[961,1069,1070],{},[317,1071,1072],{},"relations.operations",[961,1074,1075,1065],{},[317,1076,1077],{},"operations",[945,1079,1080,1085],{},[961,1081,1082],{},[317,1083,1084],{},"relations.pivot_fields",[961,1086,1087,1090],{},[317,1088,1089],{},"pivot_fields"," on each many-to-many relation",[945,1092,1093,1097],{},[961,1094,1095],{},[317,1096,919],{},[961,1098,1099,1100,697,1102,697,1105,697,1108,697,1111,711,1114],{},"each action: ",[317,1101,405],{},[317,1103,1104],{},"uriKey",[317,1106,1107],{},"target",[317,1109,1110],{},"destructive",[317,1112,1113],{},"confirm",[317,1115,1116],{},"confirmation",[945,1118,1119,1124],{},[961,1120,1121],{},[317,1122,1123],{},"actions.fields",[961,1125,1126],{},"the input entries of each action",[945,1128,1129,1133],{},[961,1130,1131],{},[317,1132,897],{},[961,1134,1135,1138],{},[317,1136,1137],{},"authorized"," on each action (policy calls)",[945,1140,1141,1146],{},[961,1142,1143],{},[317,1144,1145],{},"actions.meta",[961,1147,1148,1150],{},[317,1149,672],{}," on each action",[945,1152,1153,1158],{},[961,1154,1155],{},[317,1156,1157],{},"metrics",[961,1159,1160,1161,697,1163,697,1165,711,1167],{},"each metric: ",[317,1162,405],{},[317,1164,1104],{},[317,1166,438],{},[317,1168,1169],{},"ranges",[945,1171,1172,1176],{},[961,1173,1174],{},[317,1175,901],{},[961,1177,1178,1180],{},[317,1179,1137],{}," on each metric (policy calls)",[945,1182,1183,1188],{},[961,1184,1185],{},[317,1186,1187],{},"metrics.meta",[961,1189,1190,1192],{},[317,1191,672],{}," on each metric",[945,1194,1195,1200],{},[961,1196,1197],{},[317,1198,1199],{},"instructions",[961,1201,1202,1203,697,1205,711,1207],{},"each instruction: ",[317,1204,405],{},[317,1206,1104],{},[317,1208,514],{},[945,1210,1211,1216],{},[961,1212,1213],{},[317,1214,1215],{},"instructions.fields",[961,1217,1218],{},"the input entries of each instruction",[945,1220,1221,1226],{},[961,1222,1223],{},[317,1224,1225],{},"instructions.meta",[961,1227,1228,1230],{},[317,1229,672],{}," on each instruction",[945,1232,1233,1238],{},[961,1234,1235],{},[317,1236,1237],{},"scopes",[961,1239,1240,1241],{},"each scope: ",[317,1242,405],{},[945,1244,1245,1250],{},[961,1246,1247],{},[317,1248,1249],{},"scopes.fields",[961,1251,1252],{},"the input entries of each scope",[945,1254,1255,1260],{},[961,1256,1257],{},[317,1258,1259],{},"scopes.meta",[961,1261,1262,1264],{},[317,1263,672],{}," on each scope",[945,1266,1267,1271],{},[961,1268,1269],{},[317,1270,1004],{},[961,1272,1273],{},"the rules of the resource",[945,1275,1276,1280],{},[961,1277,1278],{},[317,1279,514],{},[961,1281,1282,1283,1285],{},"the text search, ",[317,1284,707],{}," without one",[945,1287,1288,1293],{},[961,1289,1290],{},[317,1291,1292],{},"gates",[961,1294,1295,1296,1299],{},"the names that ",[317,1297,1298],{},"search.gates"," accepts",[945,1301,1302,1307],{},[961,1303,1304],{},[317,1305,1306],{},"confirmations",[961,1308,1309,1310],{},"the writes that ask for a ",[727,1311,1116],{"href":1312},"\u002Factions-and-metrics\u002Fconfirmation#confirming-writes",[945,1314,1315,1319],{},[961,1316,1317],{},[317,1318,894],{},[961,1320,1321],{},"the class-level abilities for the user (policy calls)",[313,1323,1324,1325,1328,1329,1331],{},"Any other value is a ",[317,1326,1327],{},"422"," on ",[317,1330,326],{}," that lists the accepted values:",[334,1333,1335],{"className":351,"code":1334,"language":353,"meta":339,"style":339},"{\n  \"message\": \"The with field accepts these values, separated by commas: fields.capabilities, fields.filter, fields.rules, fields.meta, relations, relations.constraints, relations.operations, relations.pivot_fields, actions, actions.fields, actions.authorized, actions.meta, metrics, metrics.authorized, metrics.meta, instructions, instructions.fields, instructions.meta, scopes, scopes.fields, scopes.meta, rules, text, gates, confirmations, authorizations.\",\n  \"errors\": {\"with\": [\"The with field accepts these values, separated by commas: fields.capabilities, fields.filter, fields.rules, fields.meta, relations, relations.constraints, relations.operations, relations.pivot_fields, actions, actions.fields, actions.authorized, actions.meta, metrics, metrics.authorized, metrics.meta, instructions, instructions.fields, instructions.meta, scopes, scopes.fields, scopes.meta, rules, text, gates, confirmations, authorizations.\"]}\n}\n",[317,1336,1337,1342,1363,1395],{"__ignoreMap":339},[343,1338,1339],{"class":345,"line":346},[343,1340,1341],{"class":360},"{\n",[343,1343,1344,1346,1349,1351,1353,1355,1358,1360],{"class":345,"line":379},[343,1345,382],{"class":360},[343,1347,1348],{"class":367},"message",[343,1350,364],{"class":360},[343,1352,373],{"class":360},[343,1354,412],{"class":360},[343,1356,1357],{"class":415},"The with field accepts these values, separated by commas: fields.capabilities, fields.filter, fields.rules, fields.meta, relations, relations.constraints, relations.operations, relations.pivot_fields, actions, actions.fields, actions.authorized, actions.meta, metrics, metrics.authorized, metrics.meta, instructions, instructions.fields, instructions.meta, scopes, scopes.fields, scopes.meta, rules, text, gates, confirmations, authorizations.",[343,1359,364],{"class":360},[343,1361,1362],{"class":360},",\n",[343,1364,1365,1367,1370,1372,1374,1377,1379,1381,1383,1385,1387,1389,1391,1393],{"class":345,"line":396},[343,1366,382],{"class":360},[343,1368,1369],{"class":367},"errors",[343,1371,364],{"class":360},[343,1373,373],{"class":360},[343,1375,1376],{"class":360}," {",[343,1378,364],{"class":360},[343,1380,326],{"class":385},[343,1382,364],{"class":360},[343,1384,373],{"class":360},[343,1386,600],{"class":360},[343,1388,364],{"class":360},[343,1390,1357],{"class":415},[343,1392,364],{"class":360},[343,1394,628],{"class":360},[343,1396,1397],{"class":345,"line":465},[343,1398,1399],{"class":360},"}\n",[313,1401,1402],{},"The parsing is strict:",[687,1404,1405,1418,1429,1432],{},[690,1406,1407,711,1409,1411,1412,1415,1416,884],{},[317,1408,386],{},[317,1410,642],{}," are always in the base: ",[317,1413,1414],{},"with=fields"," is a ",[317,1417,1327],{},[690,1419,1420,1421,1424,1425,1428],{},"There is no third level (",[317,1422,1423],{},"actions.fields.rules",") and no wildcard (",[317,1426,1427],{},"*",").",[690,1430,1431],{},"Values are case sensitive, take no space after a comma, and no empty value between two commas.",[690,1433,1434,1435,1438,1439,1441,1442],{},"A list, ",[317,1436,1437],{},"with[]=gates",", is a ",[317,1440,1327],{},": ",[317,1443,1444],{},"The with field must be a string.",[1446,1447,1449],"h3",{"id":1448},"one-request-per-screen","One request per screen",[313,1451,1452],{},"Ask each screen for what it shows:",[334,1454,1456],{"className":336,"code":1455,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Forders?with=fields.capabilities,fields.filter,scopes.fields,actions.authorized\nGET \u002Fapi\u002Forders?with=fields.capabilities,fields.rules,relations.operations,relations.constraints,authorizations\nGET \u002Fapi\u002Forders?with=actions.fields,actions.authorized\n",[317,1457,1458,1463,1468],{"__ignoreMap":339},[343,1459,1460],{"class":345,"line":346},[343,1461,1462],{},"GET \u002Fapi\u002Forders?with=fields.capabilities,fields.filter,scopes.fields,actions.authorized\n",[343,1464,1465],{"class":345,"line":379},[343,1466,1467],{},"GET \u002Fapi\u002Forders?with=fields.capabilities,fields.rules,relations.operations,relations.constraints,authorizations\n",[343,1469,1470],{"class":345,"line":396},[343,1471,1472],{},"GET \u002Fapi\u002Forders?with=actions.fields,actions.authorized\n",[313,1474,1475],{},"The first one serves a list (sortable and filterable columns, scopes, bulk action buttons), the second a create or edit form, the third the dialog of an action.",[329,1477,42],{"id":386},[334,1479,1481],{"className":336,"code":1480,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Fartworks?with=fields.capabilities,fields.filter,fields.rules,fields.meta\n",[317,1482,1483],{"__ignoreMap":339},[343,1484,1485],{"class":345,"line":346},[343,1486,1480],{},[334,1488,1490],{"className":351,"code":1489,"language":353,"meta":339,"style":339},"{\"name\": \"title\", \"label\": \"Title\", \"type\": \"text\", \"nullable\": false, \"select\": true, \"sort\": true, \"filter\": {\"operators\": [\"=\", \"!=\", \"like\", \"not like\", \"ilike\", \"not ilike\", \"in\", \"not in\"]}, \"create\": true, \"update\": true, \"rules\": {\"all\": [\"string\", \"max:120\"], \"create\": [\"required\"], \"update\": [\"filled\"]}, \"meta\": {}}\n",[317,1491,1492],{"__ignoreMap":339},[343,1493,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1565,1567,1569,1571,1573,1575,1577,1580,1582,1584,1586,1588,1591,1593,1595,1597,1599,1602,1604,1606,1608,1611,1613,1615,1617,1620,1622,1624,1626,1629,1631,1633,1635,1638,1640,1642,1644,1647,1649,1651,1653,1656,1658,1660,1662,1665,1667,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1715,1717,1719,1721,1724,1726,1728,1730,1732,1734,1736,1738,1740,1743,1745,1747,1749,1751,1753,1755,1757,1759,1762,1764,1766,1768,1770,1772,1774],{"class":345,"line":346},[343,1495,361],{"class":360},[343,1497,364],{"class":360},[343,1499,405],{"class":367},[343,1501,364],{"class":360},[343,1503,373],{"class":360},[343,1505,412],{"class":360},[343,1507,480],{"class":415},[343,1509,364],{"class":360},[343,1511,421],{"class":360},[343,1513,412],{"class":360},[343,1515,426],{"class":367},[343,1517,364],{"class":360},[343,1519,373],{"class":360},[343,1521,412],{"class":360},[343,1523,497],{"class":415},[343,1525,364],{"class":360},[343,1527,421],{"class":360},[343,1529,412],{"class":360},[343,1531,438],{"class":367},[343,1533,364],{"class":360},[343,1535,373],{"class":360},[343,1537,412],{"class":360},[343,1539,514],{"class":415},[343,1541,364],{"class":360},[343,1543,421],{"class":360},[343,1545,412],{"class":360},[343,1547,455],{"class":367},[343,1549,364],{"class":360},[343,1551,373],{"class":360},[343,1553,588],{"class":360},[343,1555,412],{"class":360},[343,1557,970],{"class":367},[343,1559,364],{"class":360},[343,1561,373],{"class":360},[343,1563,1564],{"class":360}," true,",[343,1566,412],{"class":360},[343,1568,973],{"class":367},[343,1570,364],{"class":360},[343,1572,373],{"class":360},[343,1574,1564],{"class":360},[343,1576,412],{"class":360},[343,1578,1579],{"class":367},"filter",[343,1581,364],{"class":360},[343,1583,373],{"class":360},[343,1585,1376],{"class":360},[343,1587,364],{"class":360},[343,1589,1590],{"class":385},"operators",[343,1592,364],{"class":360},[343,1594,373],{"class":360},[343,1596,600],{"class":360},[343,1598,364],{"class":360},[343,1600,1601],{"class":415},"=",[343,1603,364],{"class":360},[343,1605,421],{"class":360},[343,1607,412],{"class":360},[343,1609,1610],{"class":415},"!=",[343,1612,364],{"class":360},[343,1614,421],{"class":360},[343,1616,412],{"class":360},[343,1618,1619],{"class":415},"like",[343,1621,364],{"class":360},[343,1623,421],{"class":360},[343,1625,412],{"class":360},[343,1627,1628],{"class":415},"not like",[343,1630,364],{"class":360},[343,1632,421],{"class":360},[343,1634,412],{"class":360},[343,1636,1637],{"class":415},"ilike",[343,1639,364],{"class":360},[343,1641,421],{"class":360},[343,1643,412],{"class":360},[343,1645,1646],{"class":415},"not ilike",[343,1648,364],{"class":360},[343,1650,421],{"class":360},[343,1652,412],{"class":360},[343,1654,1655],{"class":415},"in",[343,1657,364],{"class":360},[343,1659,421],{"class":360},[343,1661,412],{"class":360},[343,1663,1664],{"class":415},"not in",[343,1666,364],{"class":360},[343,1668,1669],{"class":360},"]},",[343,1671,412],{"class":360},[343,1673,976],{"class":367},[343,1675,364],{"class":360},[343,1677,373],{"class":360},[343,1679,1564],{"class":360},[343,1681,412],{"class":360},[343,1683,979],{"class":367},[343,1685,364],{"class":360},[343,1687,373],{"class":360},[343,1689,1564],{"class":360},[343,1691,412],{"class":360},[343,1693,1004],{"class":367},[343,1695,364],{"class":360},[343,1697,373],{"class":360},[343,1699,1376],{"class":360},[343,1701,364],{"class":360},[343,1703,1008],{"class":385},[343,1705,364],{"class":360},[343,1707,373],{"class":360},[343,1709,600],{"class":360},[343,1711,364],{"class":360},[343,1713,1714],{"class":415},"string",[343,1716,364],{"class":360},[343,1718,421],{"class":360},[343,1720,412],{"class":360},[343,1722,1723],{"class":415},"max:120",[343,1725,364],{"class":360},[343,1727,833],{"class":360},[343,1729,412],{"class":360},[343,1731,976],{"class":385},[343,1733,364],{"class":360},[343,1735,373],{"class":360},[343,1737,600],{"class":360},[343,1739,364],{"class":360},[343,1741,1742],{"class":415},"required",[343,1744,364],{"class":360},[343,1746,833],{"class":360},[343,1748,412],{"class":360},[343,1750,979],{"class":385},[343,1752,364],{"class":360},[343,1754,373],{"class":360},[343,1756,600],{"class":360},[343,1758,364],{"class":360},[343,1760,1761],{"class":415},"filled",[343,1763,364],{"class":360},[343,1765,1669],{"class":360},[343,1767,412],{"class":360},[343,1769,672],{"class":367},[343,1771,364],{"class":360},[343,1773,373],{"class":360},[343,1775,1776],{"class":360}," {}}\n",[687,1778,1779,1793,1806,1813,1838],{},[690,1780,1781,1783,1784,1787,1788,1783,1790,884],{},[317,1782,970],{},": accepted in ",[317,1785,1786],{},"search.selects"," and returned. ",[317,1789,973],{},[317,1791,1792],{},"search.sorts",[690,1794,1795,1797,1798,1801,1802,1805],{},[317,1796,992],{},": the operators that ",[317,1799,1800],{},"search.filters"," accept on the field, ",[317,1803,1804],{},"[]"," when it is not filterable.",[690,1807,1808,711,1810,1812],{},[317,1809,976],{},[317,1811,979],{},": writable on that operation.",[690,1814,1815,1818,1819,711,1821,1824,1825,711,1828,1831,1832,711,1835,884],{},[317,1816,1817],{},"rules.all"," holds the type rule, ",[317,1820,455],{},[317,1822,1823],{},"rules()",". ",[317,1826,1827],{},"rules.create",[317,1829,1830],{},"rules.update"," hold ",[317,1833,1834],{},"creationRules()",[317,1836,1837],{},"updateRules()",[690,1839,1840,1841,1843],{},"Rules are strings: a pipe string is split, a rule object that casts to a string gives that string, an enum rule gives ",[317,1842,573],{},", another rule object gives its snake class name, and closures are left out.",[313,1845,1846,1847,884],{},"See ",[727,1848,42],{"href":43},[329,1850,1851],{"id":1030},"Relations",[334,1853,1855],{"className":336,"code":1854,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Fartworks?with=relations.constraints,relations.operations\n",[317,1856,1857],{"__ignoreMap":339},[343,1858,1859],{"class":345,"line":346},[343,1860,1854],{},[334,1862,1864],{"className":351,"code":1863,"language":353,"meta":339,"style":339},"{\"resource\": \"App\\\\Rest\\\\Resources\\\\ExhibitionResource\", \"relation\": \"exhibitions\", \"constraints\": {\"required_on_creation\": false, \"prohibited_on_creation\": false, \"required_on_update\": false, \"prohibited_on_update\": false}, \"operations\": [\"create\", \"update\", \"attach\", \"detach\", \"sync\", \"toggle\"], \"name\": \"BelongsToMany\"}\n",[317,1865,1866],{"__ignoreMap":339},[343,1867,1868,1870,1872,1874,1876,1878,1880,1883,1887,1890,1892,1894,1896,1899,1901,1903,1905,1907,1909,1911,1913,1916,1918,1920,1922,1924,1926,1928,1930,1932,1935,1937,1939,1941,1943,1946,1948,1950,1952,1954,1957,1959,1961,1963,1965,1968,1970,1972,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2006,2008,2010,2012,2015,2017,2019,2021,2024,2026,2028,2030,2033,2035,2037,2039,2041,2043,2045,2047,2050,2052],{"class":345,"line":346},[343,1869,361],{"class":360},[343,1871,364],{"class":360},[343,1873,1036],{"class":367},[343,1875,364],{"class":360},[343,1877,373],{"class":360},[343,1879,412],{"class":360},[343,1881,1882],{"class":415},"App",[343,1884,1886],{"class":1885},"sTEyZ","\\\\",[343,1888,1889],{"class":415},"Rest",[343,1891,1886],{"class":1885},[343,1893,33],{"class":415},[343,1895,1886],{"class":1885},[343,1897,1898],{"class":415},"ExhibitionResource",[343,1900,364],{"class":360},[343,1902,421],{"class":360},[343,1904,412],{"class":360},[343,1906,1039],{"class":367},[343,1908,364],{"class":360},[343,1910,373],{"class":360},[343,1912,412],{"class":360},[343,1914,1915],{"class":415},"exhibitions",[343,1917,364],{"class":360},[343,1919,421],{"class":360},[343,1921,412],{"class":360},[343,1923,1064],{"class":367},[343,1925,364],{"class":360},[343,1927,373],{"class":360},[343,1929,1376],{"class":360},[343,1931,364],{"class":360},[343,1933,1934],{"class":385},"required_on_creation",[343,1936,364],{"class":360},[343,1938,373],{"class":360},[343,1940,588],{"class":360},[343,1942,412],{"class":360},[343,1944,1945],{"class":385},"prohibited_on_creation",[343,1947,364],{"class":360},[343,1949,373],{"class":360},[343,1951,588],{"class":360},[343,1953,412],{"class":360},[343,1955,1956],{"class":385},"required_on_update",[343,1958,364],{"class":360},[343,1960,373],{"class":360},[343,1962,588],{"class":360},[343,1964,412],{"class":360},[343,1966,1967],{"class":385},"prohibited_on_update",[343,1969,364],{"class":360},[343,1971,373],{"class":360},[343,1973,1974],{"class":360}," false},",[343,1976,412],{"class":360},[343,1978,1077],{"class":367},[343,1980,364],{"class":360},[343,1982,373],{"class":360},[343,1984,600],{"class":360},[343,1986,364],{"class":360},[343,1988,976],{"class":415},[343,1990,364],{"class":360},[343,1992,421],{"class":360},[343,1994,412],{"class":360},[343,1996,979],{"class":415},[343,1998,364],{"class":360},[343,2000,421],{"class":360},[343,2002,412],{"class":360},[343,2004,2005],{"class":415},"attach",[343,2007,364],{"class":360},[343,2009,421],{"class":360},[343,2011,412],{"class":360},[343,2013,2014],{"class":415},"detach",[343,2016,364],{"class":360},[343,2018,421],{"class":360},[343,2020,412],{"class":360},[343,2022,2023],{"class":415},"sync",[343,2025,364],{"class":360},[343,2027,421],{"class":360},[343,2029,412],{"class":360},[343,2031,2032],{"class":415},"toggle",[343,2034,364],{"class":360},[343,2036,833],{"class":360},[343,2038,412],{"class":360},[343,2040,405],{"class":367},[343,2042,364],{"class":360},[343,2044,373],{"class":360},[343,2046,412],{"class":360},[343,2048,2049],{"class":415},"BelongsToMany",[343,2051,364],{"class":360},[343,2053,1399],{"class":360},[687,2055,2056,2067,2094,2112],{},[690,2057,2058,2060,2061,2063,2064,2066],{},[317,2059,1036],{}," is the class of the related resource. A ",[317,2062,1052],{}," with several targets has no ",[317,2065,1036],{}," key.",[690,2068,2069,2071,2072,697,2075,2078,2079,2082,2083,1328,2085,711,2088,2091,2092,884],{},[317,2070,1077],{}," lists the operations that the entries of the relation accept in ",[317,2073,2074],{},"mutate",[317,2076,2077],{},"delete"," last on a ",[317,2080,2081],{},"deletable()"," relation, ",[317,2084,1804],{},[317,2086,2087],{},"HasOneThrough",[317,2089,2090],{},"HasManyThrough",". Read the operations from it, not from ",[317,2093,405],{},[690,2095,2096,2097,2099,2100,2102,2103,2105,2106,711,2109,884],{},"A ",[317,2098,1052],{}," adds ",[317,2101,1045],{},", each morph type mapped to its resource class, and ",[317,2104,1048],{},", its ",[317,2107,2108],{},"type_column",[317,2110,2111],{},"key_column",[690,2113,2114,2099,2116,2118],{},[317,2115,1084],{},[317,2117,1089],{}," to each many-to-many relation, with every key of a field entry.",[313,2120,2121,2122,697,2124,711,2126,2128,2129,2131,2132,884],{},"Detect ",[317,2123,1089],{},[317,2125,1045],{},[317,2127,1048],{}," by their presence, not by ",[317,2130,405],{},". See ",[727,2133,1851],{"href":47},[329,2135,2137],{"id":2136},"actions-and-metrics","Actions and metrics",[334,2139,2141],{"className":336,"code":2140,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Fartworks?with=actions.fields,actions.authorized,metrics\n",[317,2142,2143],{"__ignoreMap":339},[343,2144,2145],{"class":345,"line":346},[343,2146,2140],{},[334,2148,2150],{"className":351,"code":2149,"language":353,"meta":339,"style":339},"{\"data\": {\n  \"actions\": [{\"name\": \"Retire Artworks\", \"uriKey\": \"retire-artworks\", \"target\": \"search\",\n    \"fields\": [{\"name\": \"notify\", \"label\": null, \"type\": \"boolean\", \"nullable\": false, \"default\": false, \"rules\": [\"boolean\"], \"meta\": {}}],\n    \"destructive\": false, \"confirm\": null, \"confirmation\": false, \"authorized\": true}],\n  \"metrics\": [{\"name\": \"Artworks By Medium\", \"uriKey\": \"artworks-by-medium\", \"type\": \"partition\", \"ranges\": []}],\n  \"fields\": [...],\n  \"limits\": [10, 25, 50],\n  \"meta\": {}\n}}\n",[317,2151,2152,2166,2230,2338,2381,2455,2472,2496,2508],{"__ignoreMap":339},[343,2153,2154,2156,2158,2160,2162,2164],{"class":345,"line":346},[343,2155,361],{"class":360},[343,2157,364],{"class":360},[343,2159,368],{"class":367},[343,2161,364],{"class":360},[343,2163,373],{"class":360},[343,2165,376],{"class":360},[343,2167,2168,2170,2172,2174,2176,2179,2181,2183,2185,2187,2189,2192,2194,2196,2198,2200,2202,2204,2206,2209,2211,2213,2215,2217,2219,2221,2223,2226,2228],{"class":345,"line":379},[343,2169,382],{"class":360},[343,2171,919],{"class":385},[343,2173,364],{"class":360},[343,2175,373],{"class":360},[343,2177,2178],{"class":360}," [{",[343,2180,364],{"class":360},[343,2182,405],{"class":404},[343,2184,364],{"class":360},[343,2186,373],{"class":360},[343,2188,412],{"class":360},[343,2190,2191],{"class":415},"Retire Artworks",[343,2193,364],{"class":360},[343,2195,421],{"class":360},[343,2197,412],{"class":360},[343,2199,1104],{"class":404},[343,2201,364],{"class":360},[343,2203,373],{"class":360},[343,2205,412],{"class":360},[343,2207,2208],{"class":415},"retire-artworks",[343,2210,364],{"class":360},[343,2212,421],{"class":360},[343,2214,412],{"class":360},[343,2216,1107],{"class":404},[343,2218,364],{"class":360},[343,2220,373],{"class":360},[343,2222,412],{"class":360},[343,2224,2225],{"class":415},"search",[343,2227,364],{"class":360},[343,2229,1362],{"class":360},[343,2231,2232,2235,2237,2239,2241,2243,2245,2248,2250,2252,2254,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2284,2286,2288,2290,2292,2294,2296,2298,2300,2303,2305,2307,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335],{"class":345,"line":396},[343,2233,2234],{"class":360},"    \"",[343,2236,386],{"class":404},[343,2238,364],{"class":360},[343,2240,373],{"class":360},[343,2242,2178],{"class":360},[343,2244,364],{"class":360},[343,2246,405],{"class":2247},"swJcz",[343,2249,364],{"class":360},[343,2251,373],{"class":360},[343,2253,412],{"class":360},[343,2255,2256],{"class":415},"notify",[343,2258,364],{"class":360},[343,2260,421],{"class":360},[343,2262,412],{"class":360},[343,2264,426],{"class":2247},[343,2266,364],{"class":360},[343,2268,373],{"class":360},[343,2270,433],{"class":360},[343,2272,412],{"class":360},[343,2274,438],{"class":2247},[343,2276,364],{"class":360},[343,2278,373],{"class":360},[343,2280,412],{"class":360},[343,2282,2283],{"class":415},"boolean",[343,2285,364],{"class":360},[343,2287,421],{"class":360},[343,2289,412],{"class":360},[343,2291,455],{"class":2247},[343,2293,364],{"class":360},[343,2295,373],{"class":360},[343,2297,588],{"class":360},[343,2299,412],{"class":360},[343,2301,2302],{"class":2247},"default",[343,2304,364],{"class":360},[343,2306,373],{"class":360},[343,2308,588],{"class":360},[343,2310,412],{"class":360},[343,2312,1004],{"class":2247},[343,2314,364],{"class":360},[343,2316,373],{"class":360},[343,2318,600],{"class":360},[343,2320,364],{"class":360},[343,2322,2283],{"class":415},[343,2324,364],{"class":360},[343,2326,833],{"class":360},[343,2328,412],{"class":360},[343,2330,672],{"class":2247},[343,2332,364],{"class":360},[343,2334,373],{"class":360},[343,2336,2337],{"class":360}," {}}],\n",[343,2339,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378],{"class":345,"line":465},[343,2341,2234],{"class":360},[343,2343,1110],{"class":404},[343,2345,364],{"class":360},[343,2347,373],{"class":360},[343,2349,588],{"class":360},[343,2351,412],{"class":360},[343,2353,1113],{"class":404},[343,2355,364],{"class":360},[343,2357,373],{"class":360},[343,2359,433],{"class":360},[343,2361,412],{"class":360},[343,2363,1116],{"class":404},[343,2365,364],{"class":360},[343,2367,373],{"class":360},[343,2369,588],{"class":360},[343,2371,412],{"class":360},[343,2373,1137],{"class":404},[343,2375,364],{"class":360},[343,2377,373],{"class":360},[343,2379,2380],{"class":360}," true}],\n",[343,2382,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2406,2408,2410,2412,2414,2416,2418,2420,2423,2425,2427,2429,2431,2433,2435,2437,2440,2442,2444,2446,2448,2450,2452],{"class":345,"line":531},[343,2384,382],{"class":360},[343,2386,1157],{"class":385},[343,2388,364],{"class":360},[343,2390,373],{"class":360},[343,2392,2178],{"class":360},[343,2394,364],{"class":360},[343,2396,405],{"class":404},[343,2398,364],{"class":360},[343,2400,373],{"class":360},[343,2402,412],{"class":360},[343,2404,2405],{"class":415},"Artworks By Medium",[343,2407,364],{"class":360},[343,2409,421],{"class":360},[343,2411,412],{"class":360},[343,2413,1104],{"class":404},[343,2415,364],{"class":360},[343,2417,373],{"class":360},[343,2419,412],{"class":360},[343,2421,2422],{"class":415},"artworks-by-medium",[343,2424,364],{"class":360},[343,2426,421],{"class":360},[343,2428,412],{"class":360},[343,2430,438],{"class":404},[343,2432,364],{"class":360},[343,2434,373],{"class":360},[343,2436,412],{"class":360},[343,2438,2439],{"class":415},"partition",[343,2441,364],{"class":360},[343,2443,421],{"class":360},[343,2445,412],{"class":360},[343,2447,1169],{"class":404},[343,2449,364],{"class":360},[343,2451,373],{"class":360},[343,2453,2454],{"class":360}," []}],\n",[343,2456,2457,2459,2461,2463,2465,2467,2470],{"class":345,"line":631},[343,2458,382],{"class":360},[343,2460,386],{"class":385},[343,2462,364],{"class":360},[343,2464,373],{"class":360},[343,2466,600],{"class":360},[343,2468,2469],{"class":1885},"...",[343,2471,664],{"class":360},[343,2473,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494],{"class":345,"line":637},[343,2475,382],{"class":360},[343,2477,642],{"class":385},[343,2479,364],{"class":360},[343,2481,373],{"class":360},[343,2483,600],{"class":360},[343,2485,651],{"class":404},[343,2487,421],{"class":360},[343,2489,656],{"class":404},[343,2491,421],{"class":360},[343,2493,661],{"class":404},[343,2495,664],{"class":360},[343,2497,2498,2500,2502,2504,2506],{"class":345,"line":667},[343,2499,382],{"class":360},[343,2501,672],{"class":385},[343,2503,364],{"class":360},[343,2505,373],{"class":360},[343,2507,679],{"class":360},[343,2509,2510],{"class":345,"line":682},[343,2511,685],{"class":360},[687,2513,2514,2531,2547,2576],{},[690,2515,2516,2518,2519,697,2521,898,2524,2527,2528,884],{},[317,2517,1107],{}," is ",[317,2520,2225],{},[317,2522,2523],{},"resources",[317,2525,2526],{},"none",", see ",[727,2529,128],{"href":2530},"\u002Factions-and-metrics\u002Factions#targets",[690,2532,2533,711,2535,2537,2538,2518,2540,2543,2544,884],{},[317,2534,1110],{},[317,2536,1113],{}," are hints for clients. ",[317,2539,1116],{},[317,2541,2542],{},"true"," when the action declares a ",[727,2545,2546],{"href":137},"server-checked confirmation",[690,2548,2549,2550,697,2552,697,2554,697,2556,697,2558,697,2560,711,2562,1042,2564,2566,2567,2569,2570,2572,2573,2575],{},"An input entry holds ",[317,2551,405],{},[317,2553,426],{},[317,2555,438],{},[317,2557,455],{},[317,2559,2302],{},[317,2561,1004],{},[317,2563,672],{},[317,2565,593],{}," for an ",[317,2568,717],{},", and ",[317,2571,724],{}," when its ",[317,2574,732],{}," leaves cases out. A frontend can render it as a form.",[690,2577,2578,2518,2580,2582,2583,2586,2587,884],{},[317,2579,1137],{},[317,2581,2542],{}," when the user passes every ability that the route of the action or the metric checks before it reads the request. A refused one stays in the list with ",[317,2584,2585],{},"false",", and its route answers ",[317,2588,2589],{},"403",[329,2591,2593],{"id":2592},"instructions-and-scopes","Instructions and scopes",[334,2595,2597],{"className":336,"code":2596,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Fartworks?with=instructions,scopes\n",[317,2598,2599],{"__ignoreMap":339},[343,2600,2601],{"class":345,"line":346},[343,2602,2596],{},[334,2604,2606],{"className":351,"code":2605,"language":353,"meta":339,"style":339},"{\"instructions\": [{\"name\": \"By Medium\", \"uriKey\": \"by-medium\", \"text\": true}], \"scopes\": [{\"name\": \"pricedUnder\"}]}\n",[317,2607,2608],{"__ignoreMap":339},[343,2609,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2635,2637,2639,2641,2643,2645,2647,2649,2652,2654,2656,2658,2660,2662,2664,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2690,2692],{"class":345,"line":346},[343,2611,361],{"class":360},[343,2613,364],{"class":360},[343,2615,1199],{"class":367},[343,2617,364],{"class":360},[343,2619,373],{"class":360},[343,2621,2178],{"class":360},[343,2623,364],{"class":360},[343,2625,405],{"class":385},[343,2627,364],{"class":360},[343,2629,373],{"class":360},[343,2631,412],{"class":360},[343,2633,2634],{"class":415},"By Medium",[343,2636,364],{"class":360},[343,2638,421],{"class":360},[343,2640,412],{"class":360},[343,2642,1104],{"class":385},[343,2644,364],{"class":360},[343,2646,373],{"class":360},[343,2648,412],{"class":360},[343,2650,2651],{"class":415},"by-medium",[343,2653,364],{"class":360},[343,2655,421],{"class":360},[343,2657,412],{"class":360},[343,2659,514],{"class":385},[343,2661,364],{"class":360},[343,2663,373],{"class":360},[343,2665,2666],{"class":360}," true}],",[343,2668,412],{"class":360},[343,2670,1237],{"class":367},[343,2672,364],{"class":360},[343,2674,373],{"class":360},[343,2676,2178],{"class":360},[343,2678,364],{"class":360},[343,2680,405],{"class":385},[343,2682,364],{"class":360},[343,2684,373],{"class":360},[343,2686,412],{"class":360},[343,2688,2689],{"class":415},"pricedUnder",[343,2691,364],{"class":360},[343,2693,2694],{"class":360},"}]}\n",[313,2696,2697,2698,2700,2701,1824,2704,711,2706,2708,2709,884],{},"An instruction's ",[317,2699,514],{}," says whether it can be sent next to a ",[317,2702,2703],{},"search.text",[317,2705,1215],{},[317,2707,1249],{}," add their input entries. See ",[727,2710,84],{"href":85},[329,2712,2714],{"id":2713},"rules-text-and-gates","Rules, text and gates",[334,2716,2718],{"className":336,"code":2717,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Fartworks?with=rules,text,gates\n",[317,2719,2720],{"__ignoreMap":339},[343,2721,2722],{"class":345,"line":346},[343,2723,2717],{},[334,2725,2727],{"className":351,"code":2726,"language":353,"meta":339,"style":339},"{\n  \"rules\": {\"all\": {}, \"create\": {\"price\": [\"required\", \"min:0\"]}, \"update\": {}},\n  \"text\": {\"fields\": [\"title\"], \"modes\": [\"words\", \"phrase\"], \"relevance\": false, \"trashed\": false, \"max_length\": 255, \"engine\": null},\n  \"gates\": [\"view\", \"create\", \"update\", \"delete\"]\n}\n",[317,2728,2729,2733,2805,2912,2958],{"__ignoreMap":339},[343,2730,2731],{"class":345,"line":346},[343,2732,1341],{"class":360},[343,2734,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2756,2758,2760,2762,2764,2766,2768,2771,2773,2775,2777,2779,2781,2783,2785,2787,2790,2792,2794,2796,2798,2800,2802],{"class":345,"line":379},[343,2736,382],{"class":360},[343,2738,1004],{"class":367},[343,2740,364],{"class":360},[343,2742,373],{"class":360},[343,2744,1376],{"class":360},[343,2746,364],{"class":360},[343,2748,1008],{"class":385},[343,2750,364],{"class":360},[343,2752,373],{"class":360},[343,2754,2755],{"class":360}," {},",[343,2757,412],{"class":360},[343,2759,976],{"class":385},[343,2761,364],{"class":360},[343,2763,373],{"class":360},[343,2765,1376],{"class":360},[343,2767,364],{"class":360},[343,2769,2770],{"class":404},"price",[343,2772,364],{"class":360},[343,2774,373],{"class":360},[343,2776,600],{"class":360},[343,2778,364],{"class":360},[343,2780,1742],{"class":415},[343,2782,364],{"class":360},[343,2784,421],{"class":360},[343,2786,412],{"class":360},[343,2788,2789],{"class":415},"min:0",[343,2791,364],{"class":360},[343,2793,1669],{"class":360},[343,2795,412],{"class":360},[343,2797,979],{"class":385},[343,2799,364],{"class":360},[343,2801,373],{"class":360},[343,2803,2804],{"class":360}," {}},\n",[343,2806,2807,2809,2811,2813,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837,2840,2842,2844,2846,2848,2851,2853,2855,2857,2860,2862,2864,2866,2869,2871,2873,2875,2877,2880,2882,2884,2886,2888,2891,2893,2895,2898,2900,2902,2905,2907,2909],{"class":345,"line":396},[343,2808,382],{"class":360},[343,2810,514],{"class":367},[343,2812,364],{"class":360},[343,2814,373],{"class":360},[343,2816,1376],{"class":360},[343,2818,364],{"class":360},[343,2820,386],{"class":385},[343,2822,364],{"class":360},[343,2824,373],{"class":360},[343,2826,600],{"class":360},[343,2828,364],{"class":360},[343,2830,480],{"class":415},[343,2832,364],{"class":360},[343,2834,833],{"class":360},[343,2836,412],{"class":360},[343,2838,2839],{"class":385},"modes",[343,2841,364],{"class":360},[343,2843,373],{"class":360},[343,2845,600],{"class":360},[343,2847,364],{"class":360},[343,2849,2850],{"class":415},"words",[343,2852,364],{"class":360},[343,2854,421],{"class":360},[343,2856,412],{"class":360},[343,2858,2859],{"class":415},"phrase",[343,2861,364],{"class":360},[343,2863,833],{"class":360},[343,2865,412],{"class":360},[343,2867,2868],{"class":385},"relevance",[343,2870,364],{"class":360},[343,2872,373],{"class":360},[343,2874,588],{"class":360},[343,2876,412],{"class":360},[343,2878,2879],{"class":385},"trashed",[343,2881,364],{"class":360},[343,2883,373],{"class":360},[343,2885,588],{"class":360},[343,2887,412],{"class":360},[343,2889,2890],{"class":385},"max_length",[343,2892,364],{"class":360},[343,2894,373],{"class":360},[343,2896,2897],{"class":404}," 255",[343,2899,421],{"class":360},[343,2901,412],{"class":360},[343,2903,2904],{"class":385},"engine",[343,2906,364],{"class":360},[343,2908,373],{"class":360},[343,2910,2911],{"class":360}," null},\n",[343,2913,2914,2916,2918,2920,2922,2924,2926,2929,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2951,2953,2955],{"class":345,"line":465},[343,2915,382],{"class":360},[343,2917,1292],{"class":367},[343,2919,364],{"class":360},[343,2921,373],{"class":360},[343,2923,600],{"class":360},[343,2925,364],{"class":360},[343,2927,2928],{"class":415},"view",[343,2930,364],{"class":360},[343,2932,421],{"class":360},[343,2934,412],{"class":360},[343,2936,976],{"class":415},[343,2938,364],{"class":360},[343,2940,421],{"class":360},[343,2942,412],{"class":360},[343,2944,979],{"class":415},[343,2946,364],{"class":360},[343,2948,421],{"class":360},[343,2950,412],{"class":360},[343,2952,2077],{"class":415},[343,2954,364],{"class":360},[343,2956,2957],{"class":360},"]\n",[343,2959,2960],{"class":345,"line":531},[343,2961,1399],{"class":360},[687,2963,2964,2977,2994],{},[690,2965,2966,2968,2969,697,2971,711,2974,2976],{},[317,2967,1004],{}," holds ",[317,2970,1823],{},[317,2972,2973],{},"createRules()",[317,2975,1837],{}," of the resource, keyed by attribute.",[690,2978,2979,2981,2982,2985,2986,697,2989,2991,2992,884],{},[317,2980,514],{}," describes the ",[727,2983,2984],{"href":89},"text search",". On ",[317,2987,2988],{},"ScoutEngine",[317,2990,2904],{}," describes the filters and sorts of the index, see ",[727,2993,92],{"href":93},[690,2995,2996,2998,2999,3001,3002,711,3005,3008,3009,3011,3012,3015,3016,3018,3019,884],{},[317,2997,1292],{}," lists the abilities that ",[317,3000,1298],{}," accepts, then the gates that the resource declares. ",[317,3003,3004],{},"restore",[317,3006,3007],{},"forceDelete"," come after ",[317,3010,2077],{}," when the model uses ",[317,3013,3014],{},"SoftDeletes",". It is ",[317,3017,1804],{}," when the gates are off. See ",[727,3020,158],{"href":159},[329,3022,3023],{"id":1306},"Confirmations",[334,3025,3027],{"className":336,"code":3026,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Fdocuments?with=confirmations\n",[317,3028,3029],{"__ignoreMap":339},[343,3030,3031],{"class":345,"line":346},[343,3032,3026],{},[334,3034,3036],{"className":351,"code":3035,"language":353,"meta":339,"style":339},"{\"confirmations\": {\"mutate\": false, \"destroy\": true, \"restore\": false, \"forceDestroy\": false}}\n",[317,3037,3038],{"__ignoreMap":339},[343,3039,3040,3042,3044,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064,3067,3069,3071,3073,3075,3077,3079,3081,3083,3085,3088,3090,3092],{"class":345,"line":346},[343,3041,361],{"class":360},[343,3043,364],{"class":360},[343,3045,1306],{"class":367},[343,3047,364],{"class":360},[343,3049,373],{"class":360},[343,3051,1376],{"class":360},[343,3053,364],{"class":360},[343,3055,2074],{"class":385},[343,3057,364],{"class":360},[343,3059,373],{"class":360},[343,3061,588],{"class":360},[343,3063,412],{"class":360},[343,3065,3066],{"class":385},"destroy",[343,3068,364],{"class":360},[343,3070,373],{"class":360},[343,3072,1564],{"class":360},[343,3074,412],{"class":360},[343,3076,3004],{"class":385},[343,3078,364],{"class":360},[343,3080,373],{"class":360},[343,3082,588],{"class":360},[343,3084,412],{"class":360},[343,3086,3087],{"class":385},"forceDestroy",[343,3089,364],{"class":360},[343,3091,373],{"class":360},[343,3093,3094],{"class":360}," false}}\n",[313,3096,3097,3099,3100,1824,3103,711,3105,3107,3108,3110,3111,3113,3114,3117,3118,884],{},[317,3098,1306],{}," says, for each write endpoint, whether the resource declares its confirmation hook, such as ",[317,3101,3102],{},"destroyConfirmation()",[317,3104,3004],{},[317,3106,3087],{}," appear when the model uses ",[317,3109,3014],{},". A ",[317,3112,2542],{}," endpoint can answer ",[317,3115,3116],{},"428",": see ",[727,3119,136],{"href":1312},[329,3121,275],{"id":894},[334,3123,3125],{"className":336,"code":3124,"language":338,"meta":339,"style":339},"GET \u002Fapi\u002Fartworks?with=authorizations\n",[317,3126,3127],{"__ignoreMap":339},[343,3128,3129],{"class":345,"line":346},[343,3130,3124],{},[334,3132,3134],{"className":351,"code":3133,"language":353,"meta":339,"style":339},"{\"authorizations\": {\"viewAny\": {\"allowed\": true, \"message\": null}, \"create\": {\"allowed\": false, \"message\": \"Only curators add artworks.\"}}}\n",[317,3135,3136],{"__ignoreMap":339},[343,3137,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3158,3160,3162,3165,3167,3169,3171,3173,3175,3177,3179,3182,3184,3186,3188,3190,3192,3194,3196,3198,3200,3202,3204,3206,3208,3210,3212,3215,3217],{"class":345,"line":346},[343,3139,361],{"class":360},[343,3141,364],{"class":360},[343,3143,894],{"class":367},[343,3145,364],{"class":360},[343,3147,373],{"class":360},[343,3149,1376],{"class":360},[343,3151,364],{"class":360},[343,3153,890],{"class":385},[343,3155,364],{"class":360},[343,3157,373],{"class":360},[343,3159,1376],{"class":360},[343,3161,364],{"class":360},[343,3163,3164],{"class":404},"allowed",[343,3166,364],{"class":360},[343,3168,373],{"class":360},[343,3170,1564],{"class":360},[343,3172,412],{"class":360},[343,3174,1348],{"class":404},[343,3176,364],{"class":360},[343,3178,373],{"class":360},[343,3180,3181],{"class":360}," null},",[343,3183,412],{"class":360},[343,3185,976],{"class":385},[343,3187,364],{"class":360},[343,3189,373],{"class":360},[343,3191,1376],{"class":360},[343,3193,364],{"class":360},[343,3195,3164],{"class":404},[343,3197,364],{"class":360},[343,3199,373],{"class":360},[343,3201,588],{"class":360},[343,3203,412],{"class":360},[343,3205,1348],{"class":404},[343,3207,364],{"class":360},[343,3209,373],{"class":360},[343,3211,412],{"class":360},[343,3213,3214],{"class":415},"Only curators add artworks.",[343,3216,364],{"class":360},[343,3218,3219],{"class":360},"}}}\n",[313,3221,3222,3224,3225,697,3227,3229,3230,3233,3234,711,3236,3238,3239,3241,3242,3244,3245,3248,3249,3251,3252,3255],{},[317,3223,894],{}," answers each class-level ability that the routes of the resource check: ",[317,3226,890],{},[317,3228,976],{},", the abilities that ",[317,3231,3232],{},"abilities()"," returns for each endpoint (",[317,3235,3004],{},[317,3237,3087],{}," only when the model uses ",[317,3240,3014],{},"), then those of the actions and the metrics. Row abilities are not here: list them in the ",[727,3243,1292],{"href":159}," of a search. A resource whose ",[317,3246,3247],{},"isAuthorizingEnabled()"," returns ",[317,3250,2585],{}," answers ",[317,3253,3254],{},"\"allowed\": true"," to every ability.",[313,3257,3258,3259,3262,3263,884],{},"The answers go through the decisions of the request, and an ability that ",[317,3260,3261],{},"authorizationCache()"," declares is read from the ",[727,3264,3265],{"href":163},"cache",[329,3267,3268],{"id":672},"Meta",[313,3270,3271,3273,3274,3276],{},[317,3272,878],{}," adds keys under ",[317,3275,672],{},". It runs on each details request, for its user:",[334,3278,3282],{"className":3279,"code":3280,"language":3281,"meta":339,"style":339},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","public function detailsMeta(): array\n{\n    return [\n        'label' => 'Artworks',\n        'default_sort' => ['field' => 'title', 'direction' => 'desc'],\n        'curator' => $this->request()->user()?->name,\n    ];\n}\n","php",[317,3283,3284,3302,3306,3314,3337,3385,3415,3420],{"__ignoreMap":339},[343,3285,3286,3289,3292,3296,3299],{"class":345,"line":346},[343,3287,3288],{"class":367},"public",[343,3290,3291],{"class":367}," function",[343,3293,3295],{"class":3294},"s2Zo4"," detailsMeta",[343,3297,3298],{"class":360},"():",[343,3300,3301],{"class":404}," array\n",[343,3303,3304],{"class":345,"line":379},[343,3305,1341],{"class":360},[343,3307,3308,3312],{"class":345,"line":396},[343,3309,3311],{"class":3310},"s7zQu","    return",[343,3313,393],{"class":360},[343,3315,3316,3319,3321,3324,3327,3330,3333,3335],{"class":345,"line":465},[343,3317,3318],{"class":360},"        '",[343,3320,426],{"class":415},[343,3322,3323],{"class":360},"'",[343,3325,3326],{"class":360}," =>",[343,3328,3329],{"class":360}," '",[343,3331,3332],{"class":415},"Artworks",[343,3334,3323],{"class":360},[343,3336,1362],{"class":360},[343,3338,3339,3341,3344,3346,3348,3350,3352,3355,3357,3359,3361,3363,3365,3367,3369,3372,3374,3376,3378,3381,3383],{"class":345,"line":531},[343,3340,3318],{"class":360},[343,3342,3343],{"class":415},"default_sort",[343,3345,3323],{"class":360},[343,3347,3326],{"class":360},[343,3349,600],{"class":360},[343,3351,3323],{"class":360},[343,3353,3354],{"class":415},"field",[343,3356,3323],{"class":360},[343,3358,3326],{"class":360},[343,3360,3329],{"class":360},[343,3362,480],{"class":415},[343,3364,3323],{"class":360},[343,3366,421],{"class":360},[343,3368,3329],{"class":360},[343,3370,3371],{"class":415},"direction",[343,3373,3323],{"class":360},[343,3375,3326],{"class":360},[343,3377,3329],{"class":360},[343,3379,3380],{"class":415},"desc",[343,3382,3323],{"class":360},[343,3384,664],{"class":360},[343,3386,3387,3389,3392,3394,3396,3399,3402,3405,3408,3411,3413],{"class":345,"line":631},[343,3388,3318],{"class":360},[343,3390,3391],{"class":415},"curator",[343,3393,3323],{"class":360},[343,3395,3326],{"class":360},[343,3397,3398],{"class":360}," $this->",[343,3400,3401],{"class":3294},"request",[343,3403,3404],{"class":360},"()->",[343,3406,3407],{"class":3294},"user",[343,3409,3410],{"class":360},"()?->",[343,3412,405],{"class":1885},[343,3414,1362],{"class":360},[343,3416,3417],{"class":345,"line":637},[343,3418,3419],{"class":360},"    ];\n",[343,3421,3422],{"class":345,"line":667},[343,3423,1399],{"class":360},[334,3425,3427],{"className":351,"code":3426,"language":353,"meta":339,"style":339},"{\"meta\": {\"label\": \"Artworks\", \"default_sort\": {\"field\": \"title\", \"direction\": \"desc\"}, \"curator\": \"Ada\"}}\n",[317,3428,3429],{"__ignoreMap":339},[343,3430,3431,3433,3435,3437,3439,3441,3443,3445,3447,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3502,3504,3506,3508,3510,3512,3515,3517],{"class":345,"line":346},[343,3432,361],{"class":360},[343,3434,364],{"class":360},[343,3436,672],{"class":367},[343,3438,364],{"class":360},[343,3440,373],{"class":360},[343,3442,1376],{"class":360},[343,3444,364],{"class":360},[343,3446,426],{"class":385},[343,3448,364],{"class":360},[343,3450,373],{"class":360},[343,3452,412],{"class":360},[343,3454,3332],{"class":415},[343,3456,364],{"class":360},[343,3458,421],{"class":360},[343,3460,412],{"class":360},[343,3462,3343],{"class":385},[343,3464,364],{"class":360},[343,3466,373],{"class":360},[343,3468,1376],{"class":360},[343,3470,364],{"class":360},[343,3472,3354],{"class":404},[343,3474,364],{"class":360},[343,3476,373],{"class":360},[343,3478,412],{"class":360},[343,3480,480],{"class":415},[343,3482,364],{"class":360},[343,3484,421],{"class":360},[343,3486,412],{"class":360},[343,3488,3371],{"class":404},[343,3490,364],{"class":360},[343,3492,373],{"class":360},[343,3494,412],{"class":360},[343,3496,3380],{"class":415},[343,3498,364],{"class":360},[343,3500,3501],{"class":360},"},",[343,3503,412],{"class":360},[343,3505,3391],{"class":385},[343,3507,364],{"class":360},[343,3509,373],{"class":360},[343,3511,412],{"class":360},[343,3513,3514],{"class":415},"Ada",[343,3516,364],{"class":360},[343,3518,685],{"class":360},[329,3520,3522],{"id":3521},"behaviour","Behaviour",[687,3524,3525,3532,3544,3560,3570,3573],{},[690,3526,3527,3528,3531],{},"The details list what the declarations of the resource return for the current request, so a list that depends on ",[317,3529,3530],{},"$this->request()->user()"," changes with the user.",[690,3533,3534,697,3536,711,3538,3540,3541,884],{},[317,3535,919],{},[317,3537,1199],{},[317,3539,1030],{}," are lists. Maps are objects, also when empty: ",[317,3542,3543],{},"\"meta\": {}",[690,3545,3546,3547,3550,3551,2569,3553,3556,3557,884],{},"The ",[317,3548,3549],{},"describing()"," event runs after ",[317,3552,890],{},[317,3554,3555],{},"described()"," receives the details as the request asked for them. See ",[727,3558,3559],{"href":177},"Events and hooks",[690,3561,3562,3563,3566,3567,884],{},"A declaration error throws when the request reads that declaration, for example ",[317,3564,3565],{},"InvalidTextSearchException"," with ",[317,3568,3569],{},"with=text",[690,3571,3572],{},"Clients ignore the keys that they do not know: later releases can add keys.",[690,3574,3575,3576,3579,3580,3582,3583,884],{},"The OpenAPI document gives each resource a ",[317,3577,3578],{},"{Resource}Details"," schema, where the base keys are required and the sections and parts optional, and documents the ",[317,3581,326],{}," parameter. See ",[727,3584,3585],{"href":185},"OpenAPI",[3587,3588,3589],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":339,"searchDepth":346,"depth":379,"links":3591},[3592,3593,3597,3598,3599,3600,3601,3602,3603,3604,3605],{"id":331,"depth":379,"text":332},{"id":908,"depth":379,"text":3594,"children":3595},"Asking for more with with",[3596],{"id":1448,"depth":396,"text":1449},{"id":386,"depth":379,"text":42},{"id":1030,"depth":379,"text":1851},{"id":2136,"depth":379,"text":2137},{"id":2592,"depth":379,"text":2593},{"id":2713,"depth":379,"text":2714},{"id":1306,"depth":379,"text":3023},{"id":894,"depth":379,"text":275},{"id":672,"depth":379,"text":3268},{"id":3521,"depth":379,"text":3522},"Describe a resource to clients with a thin base, then ask for fields, relations, actions, metrics and authorizations with the with parameter.","md",null,{},true,{"title":172,"description":3606},{"loc":173},"b-f0HpB2UChp5C3onWHwBQPIaAHNFvwZU09S1WjUHr4",[3615,3617],{"title":162,"path":163,"stem":164,"description":3616,"children":-1},"Keep the decisions of chosen policy abilities between requests, key them per user and tenant, and forget them when rights change.",{"title":176,"path":177,"stem":178,"description":3618,"children":-1},"Run your code at fixed moments of each endpoint with resource events and row hooks, and listen to the Laravel events of each write.",1794181348570]