[{"data":1,"prerenderedAt":768},["ShallowReactive",2],{"navigation_docs_en":3,"-en-panduan-konfigurasi":52,"-en-panduan-konfigurasi-surround":763},[4,18,35],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Get started","\u002Fen\u002Fmulai","en\u002F1.mulai",[9,13],{"title":10,"path":11,"stem":12},"Installation & quick start","\u002Fen\u002Fmulai\u002Finstalasi","en\u002F1.mulai\u002F1.instalasi",{"title":14,"path":15,"stem":16},"Login & sessions","\u002Fen\u002Fmulai\u002Flogin","en\u002F1.mulai\u002F2.login",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Guides","\u002Fen\u002Fpanduan","en\u002F2.panduan",[23,27,31],{"title":24,"path":25,"stem":26},"Project configuration","\u002Fen\u002Fpanduan\u002Fkonfigurasi","en\u002F2.panduan\u002F1.konfigurasi",{"title":28,"path":29,"stem":30},"Multiple profiles","\u002Fen\u002Fpanduan\u002Fmulti-profile","en\u002F2.panduan\u002F2.multi-profile",{"title":32,"path":33,"stem":34},"Pull & push","\u002Fen\u002Fpanduan\u002Fpull-push","en\u002F2.panduan\u002F3.pull-push",{"title":36,"path":37,"stem":38,"children":39,"page":17},"Reference","\u002Fen\u002Freferensi","en\u002F3.referensi",[40,44,48],{"title":41,"path":42,"stem":43},"Command reference","\u002Fen\u002Freferensi\u002Fcommands","en\u002F3.referensi\u002F1.commands",{"title":45,"path":46,"stem":47},"Troubleshooting","\u002Fen\u002Freferensi\u002Ftroubleshooting","en\u002F3.referensi\u002F2.troubleshooting",{"title":49,"path":50,"stem":51},"Release notes","\u002Fen\u002Freferensi\u002Fcatatan-rilis","en\u002F3.referensi\u002F3.catatan-rilis",{"id":53,"title":24,"body":54,"description":756,"extension":757,"links":758,"meta":759,"navigation":760,"path":25,"seo":761,"stem":26,"__hash__":762},"docs_en\u002Fen\u002F2.panduan\u002F1.konfigurasi.md",{"type":55,"value":56,"toc":749},"minimark",[57,62,75,85,112,119,125,129,281,382,385,431,440,480,483,487,514,546,566,573,577,586,653,683,690,694,708,717,720,727,734,745],[58,59,61],"h2",{"id":60},"getting-started","Getting started",[63,64,65,66,70,71,74],"p",{},"Run ",[67,68,69],"code",{},"l init"," from your project folder. It asks for configuration first, shows a JSON summary, and saves ",[67,72,73],{},"l.config.json"," after confirmation.",[76,77,83],"pre",{"className":78,"code":80,"language":81,"meta":82},[79],"language-text","AWS profile (default): production\nProject name (billing-service):\nAWS resource region (ap-southeast-1):\n\nLambda configuration\n  1. Select existing function from AWS\n  2. Enter function name manually\n  3. Use a function name prefix\n  4. Skip Lambda configuration\nChoose [1-4] (2): 2\nLambda function name: billing-api\n...\nSave l.config.json? [Y\u002Fn]:\n","text","",[67,84,80],{"__ignoreMap":82},[63,86,87,88,91,92,95,96,99,100,103,104,107,108,111],{},"Choose a menu number and press Enter. The project name comes from the existing config, ",[67,89,90],{},"package.json",", or folder name. The default region comes from the existing config, ",[67,93,94],{},"AWS_REGION",", ",[67,97,98],{},"AWS_DEFAULT_REGION",", the selected profile's session, then ",[67,101,102],{},"ap-southeast-1",". The wizard's default profile comes from the existing config or ",[67,105,106],{},"default",". ",[67,109,110],{},"l init --profile production"," uses that profile without asking for its name again.",[63,113,114,115,118],{},"Selecting a function from AWS requires login and ",[67,116,117],{},"lambda:ListFunctions",". All result pages are fetched, then names are sorted and displayed. Back returns to the configuration mode menu. If the list is empty or AWS fails, you can choose manual entry, a prefix, or skip.",[63,120,121,122,124],{},"Manual mode only validates the name format; it does not verify that the function exists. ",[67,123,69],{}," does not create or change AWS resources.",[58,126,128],{"id":127},"schema-version-1","Schema version 1",[76,130,134],{"className":131,"code":132,"language":133,"meta":82,"style":82},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"version\": 1,\n  \"name\": \"billing-service\",\n  \"region\": \"ap-southeast-1\",\n  \"profile\": \"production\",\n  \"lambda\": {\n    \"functionName\": \"billing-api\"\n  }\n}\n","json",[67,135,136,145,168,191,211,232,247,269,275],{"__ignoreMap":82},[137,138,141],"span",{"class":139,"line":140},"line",1,[137,142,144],{"class":143},"sMK4o","{\n",[137,146,148,151,155,158,161,165],{"class":139,"line":147},2,[137,149,150],{"class":143},"  \"",[137,152,154],{"class":153},"spNyl","version",[137,156,157],{"class":143},"\"",[137,159,160],{"class":143},":",[137,162,164],{"class":163},"sbssI"," 1",[137,166,167],{"class":143},",\n",[137,169,171,173,176,178,180,183,187,189],{"class":139,"line":170},3,[137,172,150],{"class":143},[137,174,175],{"class":153},"name",[137,177,157],{"class":143},[137,179,160],{"class":143},[137,181,182],{"class":143}," \"",[137,184,186],{"class":185},"sfazB","billing-service",[137,188,157],{"class":143},[137,190,167],{"class":143},[137,192,194,196,199,201,203,205,207,209],{"class":139,"line":193},4,[137,195,150],{"class":143},[137,197,198],{"class":153},"region",[137,200,157],{"class":143},[137,202,160],{"class":143},[137,204,182],{"class":143},[137,206,102],{"class":185},[137,208,157],{"class":143},[137,210,167],{"class":143},[137,212,214,216,219,221,223,225,228,230],{"class":139,"line":213},5,[137,215,150],{"class":143},[137,217,218],{"class":153},"profile",[137,220,157],{"class":143},[137,222,160],{"class":143},[137,224,182],{"class":143},[137,226,227],{"class":185},"production",[137,229,157],{"class":143},[137,231,167],{"class":143},[137,233,235,237,240,242,244],{"class":139,"line":234},6,[137,236,150],{"class":143},[137,238,239],{"class":153},"lambda",[137,241,157],{"class":143},[137,243,160],{"class":143},[137,245,246],{"class":143}," {\n",[137,248,250,253,257,259,261,263,266],{"class":139,"line":249},7,[137,251,252],{"class":143},"    \"",[137,254,256],{"class":255},"sBMFI","functionName",[137,258,157],{"class":143},[137,260,160],{"class":143},[137,262,182],{"class":143},[137,264,265],{"class":185},"billing-api",[137,267,268],{"class":143},"\"\n",[137,270,272],{"class":139,"line":271},8,[137,273,274],{"class":143},"  }\n",[137,276,278],{"class":139,"line":277},9,[137,279,280],{"class":143},"}\n",[282,283,284,297],"table",{},[285,286,287],"thead",{},[288,289,290,294],"tr",{},[291,292,293],"th",{},"Field",[291,295,296],{},"Rules",[298,299,300,313,322,337,349,363,373],"tbody",{},[288,301,302,307],{},[303,304,305],"td",{},[67,306,154],{},[303,308,309,310],{},"Required; currently only ",[67,311,312],{},"1",[288,314,315,319],{},[303,316,317],{},[67,318,175],{},[303,320,321],{},"Required; a nonempty string",[288,323,324,328],{},[303,325,326],{},[67,327,198],{},[303,329,330,331,333,334],{},"Required; a region format such as ",[67,332,102],{}," or ",[67,335,336],{},"us-gov-west-1",[288,338,339,343],{},[303,340,341],{},[67,342,218],{},[303,344,345,346,348],{},"Optional; defaults to ",[67,347,106],{},". 1–64 lowercase letters, digits, underscores, or hyphens; starts with a letter or digit",[288,350,351,355],{},[303,352,353],{},[67,354,239],{},[303,356,357,358,333,360],{},"Optional; exactly one of ",[67,359,256],{},[67,361,362],{},"prefix",[288,364,365,370],{},[303,366,367],{},[67,368,369],{},"lambda.functionName",[303,371,372],{},"1–64 letters, digits, underscores, or hyphens",[288,374,375,380],{},[303,376,377],{},[67,378,379],{},"lambda.prefix",[303,381,372],{},[63,383,384],{},"If you choose a prefix, the Lambda section becomes:",[76,386,388],{"className":131,"code":387,"language":133,"meta":82,"style":82},"{\n  \"lambda\": {\n    \"prefix\": \"billing-\"\n  }\n}\n",[67,389,390,394,406,423,427],{"__ignoreMap":82},[137,391,392],{"class":139,"line":140},[137,393,144],{"class":143},[137,395,396,398,400,402,404],{"class":139,"line":147},[137,397,150],{"class":143},[137,399,239],{"class":153},[137,401,157],{"class":143},[137,403,160],{"class":143},[137,405,246],{"class":143},[137,407,408,410,412,414,416,418,421],{"class":139,"line":170},[137,409,252],{"class":143},[137,411,362],{"class":255},[137,413,157],{"class":143},[137,415,160],{"class":143},[137,417,182],{"class":143},[137,419,420],{"class":185},"billing-",[137,422,268],{"class":143},[137,424,425],{"class":139,"line":193},[137,426,274],{"class":143},[137,428,429],{"class":139,"line":213},[137,430,280],{"class":143},[63,432,433,434,436,437,439],{},"The second example is only a ",[67,435,239],{}," snippet; required fields must still be included. Skipping omits the ",[67,438,239],{}," field. Fields outside the schema are rejected. Region validation checks the format, not availability in your AWS account.",[441,442,443,447,448,95,451,95,454,95,457,95,460,463,464,467,468,463,471,474,475,479],"note",{},[444,445,446],"strong",{},"Upcoming release — not available in v2.0.0."," Windows device names such as ",[67,449,450],{},"con",[67,452,453],{},"prn",[67,455,456],{},"aux",[67,458,459],{},"nul",[67,461,462],{},"com1","–",[67,465,466],{},"com9",", and ",[67,469,470],{},"lpt1",[67,472,473],{},"lpt9"," are rejected on every OS to keep profiles portable. See the ",[476,477,478],"a",{"href":50},"release notes",".",[63,481,482],{},"Valid AWS function names that cannot be used as local folder names are rejected during pull\u002Fpush.",[58,484,486],{"id":485},"global-authentication","Global authentication",[63,488,489,490,492,493,496,497,500,501,503,504,506,507,510,511,479],{},"You can keep this config with your project source; it only records the profile name. The ",[67,491,106],{}," session uses ",[67,494,495],{},"~\u002F.l\u002Fsession.json",", while other profiles use ",[67,498,499],{},"~\u002F.l\u002Fprofiles\u002F\u003Cprofile>\u002Fsession.json",". Logging in to one profile only replaces that profile's session. Older configs without ",[67,502,218],{}," still use ",[67,505,106],{},", without session migration. See ",[476,508,509],{"href":15},"login and sessions",". For a complete multi-account setup, see ",[476,512,513],{"href":29},"multiple profiles",[76,515,519],{"className":516,"code":517,"language":518,"meta":82,"style":82},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","l login --profile production\nl login --profile staging\nl init --profile production\nl whoami\nl lambda list --profile staging\n","sh",[67,520,521,526,531,536,541],{"__ignoreMap":82},[137,522,523],{"class":139,"line":140},[137,524,525],{},"l login --profile production\n",[137,527,528],{"class":139,"line":147},[137,529,530],{},"l login --profile staging\n",[137,532,533],{"class":139,"line":170},[137,534,535],{},"l init --profile production\n",[137,537,538],{"class":139,"line":193},[137,539,540],{},"l whoami\n",[137,542,543],{"class":139,"line":213},[137,544,545],{},"l lambda list --profile staging\n",[63,547,548,549,552,553,107,556,559,560,562,563,565],{},"A profile name is a local ",[67,550,551],{},"l"," login label, not an AWS CLI profile from ",[67,554,555],{},"~\u002F.aws\u002Fconfig",[67,557,558],{},"AWS_PROFILE"," does not select an ",[67,561,551],{}," profile. A missing or invalid session stops the command; there is no fallback to ",[67,564,106],{},". The CLI only validates the profile name format in the config, so manual init can run offline.",[63,567,568,569,572],{},"The config region is the Lambda resource region. The session region is the auth region for AWS Sign-In, refresh, and ",[67,570,571],{},"whoami","; they may differ.",[58,574,576],{"id":575},"command-defaults","Command defaults",[63,578,579,580,582,583,585],{},"Lambda commands search for ",[67,581,73],{}," from the current directory upwards, using the nearest file. An invalid file stops the search instead of being silently skipped. ",[67,584,69],{}," always creates or updates the config in the current directory.",[282,587,588,598],{},[285,589,590],{},[288,591,592,595],{},[291,593,594],{},"Value",[291,596,597],{},"Priority",[298,599,600,616,629,642],{},[288,601,602,605],{},[303,603,604],{},"Auth profile",[303,606,607,610,611,613,614],{},[67,608,609],{},"--profile"," → project ",[67,612,218],{}," → ",[67,615,106],{},[288,617,618,621],{},[303,619,620],{},"Lambda region",[303,622,623,610,626,628],{},[67,624,625],{},"--region",[67,627,198],{}," → profile session region",[288,630,631,634],{},[303,632,633],{},"List prefix",[303,635,636,613,639,641],{},[67,637,638],{},"--prefix",[67,640,379],{}," → no filter",[288,643,644,647],{},[303,645,646],{},"Info name",[303,648,649,650,652],{},"name argument → ",[67,651,369],{}," → error if unavailable",[76,654,656],{"className":516,"code":655,"language":518,"meta":82,"style":82},"l lambda info\nl lambda info another-function --region us-east-1\nl lambda list\nl lambda list --prefix other-\nl lambda list --prefix \"\"\n",[67,657,658,663,668,673,678],{"__ignoreMap":82},[137,659,660],{"class":139,"line":140},[137,661,662],{},"l lambda info\n",[137,664,665],{"class":139,"line":147},[137,666,667],{},"l lambda info another-function --region us-east-1\n",[137,669,670],{"class":139,"line":170},[137,671,672],{},"l lambda list\n",[137,674,675],{"class":139,"line":193},[137,676,677],{},"l lambda list --prefix other-\n",[137,679,680],{"class":139,"line":213},[137,681,682],{},"l lambda list --prefix \"\"\n",[63,684,685,686,689],{},"A configured function name does not filter ",[67,687,688],{},"lambda list","; only a prefix supplies a default filter. Lambda commands also work without a config, using the session region and an explicit name for info.",[58,691,693],{"id":692},"updates-and-cancellation","Updates and cancellation",[63,695,696,699,700,703,704,707],{},[476,697,698],{"href":33},"Pull and push"," use the same config, store code in ",[67,701,702],{},"lambda\u002F\u003Cfunction-name>\u002F",", and record ARNs and revisions in ",[67,705,706],{},".l\u002Fstate.json",". This version has no additional config field for the code folder. Changing profiles does not remove ARN\u002Faccount checks on sync history. Use separate project folders for different accounts or regions; profiles with the same account identity and region can use the same baseline.",[63,709,65,710,712,713,716],{},[67,711,69],{}," again to change the project. The wizard asks for update approval and uses old values as defaults. There is no ",[67,714,715],{},"--force"," or noninteractive mode. Invalid JSON or unsupported config versions must be fixed first.",[63,718,719],{},"Answering no does not write a file. Ctrl+C\u002FEOF cancels input. In v2.0.0, writes use a temporary file followed by atomic publication. For a new config, publication fails if another process has already created the destination. For updates, the wizard checks the file contents again before replacing it; this is not an interprocess locking mechanism. Avoid concurrent edits while confirming a save.",[441,721,722,724,725,479],{},[444,723,446],{}," Saving a new config will use an exclusive copy if the system rejects hard links, for example in Termux. See the ",[476,726,478],{"href":50},[63,728,729,730,479],{},"The copy still rejects an existing destination, but it is not atomic: another process may read incomplete JSON, and forced termination may leave a partial config. Inspect and fix the JSON if saving is interrupted. A v2.0.0 workaround is available in ",[476,731,733],{"href":732},"\u002Fen\u002Freferensi\u002Ftroubleshooting#termux-eacces-permission-denied-link","Termux troubleshooting",[63,735,736,737,740,741,744],{},"See the ",[476,738,739],{"href":42},"command reference"," and ",[476,742,743],{"href":46},"troubleshooting"," for commands and errors.",[746,747,748],"style",{},"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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}",{"title":82,"searchDepth":147,"depth":147,"links":750},[751,752,753,754,755],{"id":60,"depth":147,"text":61},{"id":127,"depth":147,"text":128},{"id":485,"depth":147,"text":486},{"id":575,"depth":147,"text":576},{"id":692,"depth":147,"text":693},"Create l.config.json and set your default profile, region, and Lambda target.","md",null,{},true,{"title":24,"description":756},"14AShTsMitbKSAr0hxh64_6DJAfbdBPKfbVPyPV3DKY",[764,766],{"title":14,"path":15,"stem":16,"description":765,"children":-1},"Sign in to AWS through your browser, check your identity, and renew expired sessions.",{"title":28,"path":29,"stem":30,"description":767,"children":-1},"Keep multiple AWS logins and select a profile for each project.",1790260505883]