[{"data":1,"prerenderedAt":2937},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-reference-configuration":442,"-hu-reference-configuration-surround":2932},[4,45,60,81,112,129,146,173,197,213,242,280,357,373,385,404,430],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F1.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F1.getting-started\u002F2.coming-from-laravel","i-lucide-arrow-right-left",{"title":21,"path":22,"stem":23,"icon":19},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F1.getting-started\u002F3.coming-from-symfony",{"title":25,"path":26,"stem":27,"icon":28},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F1.getting-started\u002F4.installation","i-lucide-download",{"title":30,"path":31,"stem":32,"icon":33},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F1.getting-started\u002F5.first-module","i-lucide-package-plus",{"title":35,"path":36,"stem":37,"icon":38},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F1.getting-started\u002F6.project-structure","i-lucide-folder-tree",{"title":40,"path":41,"stem":42,"icon":43},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F1.getting-started\u002F7.sample-app","i-lucide-shopping-cart",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"queue","i-lucide-layers","\u002Fhu\u002Fqueue","hu\u002F10.queue",[51,56],{"title":52,"path":53,"stem":54,"icon":55},"Áttekintés","\u002Fhu\u002Fqueue\u002Foverview","hu\u002F10.queue\u002F1.overview","i-lucide-list-ordered",{"title":57,"path":58,"stem":59,"icon":47},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F10.queue\u002F2.tasks",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F11.events",[66,71,76],{"title":67,"path":68,"stem":69,"icon":70},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F11.events\u002F1.overview","i-lucide-radio",{"title":72,"path":73,"stem":74,"icon":75},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F11.events\u002F2.outbox","i-lucide-inbox",{"title":77,"path":78,"stem":79,"icon":80},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F11.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F12.auth",[87,92,97,102,107],{"title":88,"path":89,"stem":90,"icon":91},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F12.auth\u002F1.overview","i-lucide-key-round",{"title":93,"path":94,"stem":95,"icon":96},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F12.auth\u002F2.rbac","i-lucide-users",{"title":98,"path":99,"stem":100,"icon":101},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F12.auth\u002F3.policy","i-lucide-gavel",{"title":103,"path":104,"stem":105,"icon":106},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F12.auth\u002F4.standalone","i-lucide-plug",{"title":108,"path":109,"stem":110,"icon":111},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F12.auth\u002F5.social-standalone","i-lucide-log-in",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[118,121,125],{"title":52,"path":119,"stem":120,"icon":114},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":122,"path":123,"stem":124,"icon":114},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":126,"path":127,"stem":128,"icon":114},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[135,138,142],{"title":52,"path":136,"stem":137,"icon":131},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":139,"path":140,"stem":141,"icon":131},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":143,"path":144,"stem":145,"icon":131},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":147,"icon":148,"path":149,"stem":150,"children":151,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F15.storage",[152,155,159,163,168],{"title":52,"path":153,"stem":154,"icon":148},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F15.storage\u002F1.overview",{"title":156,"path":157,"stem":158},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F15.storage\u002F2.disk-api",{"title":160,"path":161,"stem":162,"icon":148},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F15.storage\u002F3.local",{"title":164,"path":165,"stem":166,"icon":167},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F15.storage\u002F4.s3","i-lucide-cloud",{"title":169,"path":170,"stem":171,"icon":172},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F15.storage\u002F5.testing","i-lucide-flask-conical",{"title":174,"icon":175,"path":176,"stem":177,"children":178,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F16.telemetry",[179,182,187,192],{"title":52,"path":180,"stem":181,"icon":175},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F16.telemetry\u002F1.overview",{"title":183,"path":184,"stem":185,"icon":186},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F16.telemetry\u002F2.logging","i-lucide-scroll-text",{"title":188,"path":189,"stem":190,"icon":191},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F16.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":193,"path":194,"stem":195,"icon":196},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F16.telemetry\u002F4.sentry","i-lucide-bug",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F17.reference",[203,208],{"title":204,"path":205,"stem":206,"icon":207},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F17.reference\u002F1.configuration","i-lucide-settings",{"title":209,"path":210,"stem":211,"icon":212},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F17.reference\u002F2.dependencies","i-lucide-package",{"title":214,"icon":215,"path":216,"stem":217,"children":218,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F2.concepts",[219,223,228,232,237],{"title":220,"path":221,"stem":222,"icon":47},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F2.concepts\u002F1.architecture",{"title":224,"path":225,"stem":226,"icon":227},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F2.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":204,"path":229,"stem":230,"icon":231},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F2.concepts\u002F3.configuration","i-lucide-settings-2",{"title":233,"path":234,"stem":235,"icon":236},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F2.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":238,"path":239,"stem":240,"icon":241},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F2.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":243,"icon":244,"path":245,"stem":246,"children":247,"page":44},"A kit","i-lucide-box","\u002Fhu\u002Fkit","hu\u002F3.kit",[248,252,257,262,267,271,276],{"title":249,"path":250,"stem":251,"icon":244},"A kit áttekintése","\u002Fhu\u002Fkit\u002Foverview","hu\u002F3.kit\u002F1.overview",{"title":253,"path":254,"stem":255,"icon":256},"Alkalmazás-életciklus","\u002Fhu\u002Fkit\u002Fapp","hu\u002F3.kit\u002F2.app","i-lucide-power",{"title":258,"path":259,"stem":260,"icon":261},"Szerver","\u002Fhu\u002Fkit\u002Fserver","hu\u002F3.kit\u002F3.server","i-lucide-server",{"title":263,"path":264,"stem":265,"icon":266},"Worker","\u002Fhu\u002Fkit\u002Fworker","hu\u002F3.kit\u002F4.worker","i-lucide-cog",{"title":268,"path":269,"stem":270,"icon":70},"Realtime","\u002Fhu\u002Fkit\u002Frealtime","hu\u002F3.kit\u002F5.realtime",{"title":272,"path":273,"stem":274,"icon":275},"Migrációk","\u002Fhu\u002Fkit\u002Fmigrations","hu\u002F3.kit\u002F6.migrations","i-lucide-file-stack",{"title":277,"path":278,"stem":279,"icon":111},"Social login","\u002Fhu\u002Fkit\u002Fsocial-login","hu\u002F3.kit\u002F7.social-login",{"title":281,"icon":282,"path":283,"stem":284,"children":285,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F4.cli",[286,289,294,299,304,309,314,319,324,329,334,338,343,348,352],{"title":52,"path":287,"stem":288,"icon":282},"\u002Fhu\u002Fcli\u002Foverview","hu\u002F4.cli\u002F1.overview",{"title":290,"path":291,"stem":292,"icon":293},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F4.cli\u002F10.add-db","i-lucide-database-zap",{"title":295,"path":296,"stem":297,"icon":298},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F4.cli\u002F11.add-compose","i-lucide-container",{"title":300,"path":301,"stem":302,"icon":303},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F4.cli\u002F12.add-mail","i-lucide-mail-plus",{"title":305,"path":306,"stem":307,"icon":308},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F4.cli\u002F13.add-notification","i-lucide-bell-plus",{"title":310,"path":311,"stem":312,"icon":313},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F4.cli\u002F14.add-realtime","i-lucide-radio-tower",{"title":315,"path":316,"stem":317,"icon":318},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F4.cli\u002F15.add-seeder","i-lucide-sprout",{"title":320,"path":321,"stem":322,"icon":323},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F4.cli\u002F2.new-project","i-lucide-folder-plus",{"title":325,"path":326,"stem":327,"icon":328},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F4.cli\u002F3.new-module","i-lucide-blocks",{"title":330,"path":331,"stem":332,"icon":333},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F4.cli\u002F4.add-surface","i-lucide-layers-2",{"title":335,"path":336,"stem":337,"icon":244},"add core","\u002Fhu\u002Fcli\u002Fadd-core","hu\u002F4.cli\u002F5.add-core",{"title":339,"path":340,"stem":341,"icon":342},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F4.cli\u002F6.add-handler","i-lucide-webhook",{"title":344,"path":345,"stem":346,"icon":347},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F4.cli\u002F7.new-migration","i-lucide-file-plus",{"title":349,"path":350,"stem":351,"icon":266},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F4.cli\u002F8.worker-generators",{"title":353,"path":354,"stem":355,"icon":356},"upgrade templates","\u002Fhu\u002Fcli\u002Fupgrade-templates","hu\u002F4.cli\u002F9.upgrade-templates","i-lucide-refresh-cw",{"title":358,"icon":227,"path":359,"stem":360,"children":361,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F5.errs",[362,365,369],{"title":52,"path":363,"stem":364,"icon":227},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F5.errs\u002F1.overview",{"title":366,"path":367,"stem":368},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F5.errs\u002F2.api",{"title":370,"path":371,"stem":372,"icon":227},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F5.errs\u002F3.integration",{"title":374,"icon":231,"path":375,"stem":376,"children":377,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F6.envconf",[378,381],{"title":52,"path":379,"stem":380,"icon":231},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F6.envconf\u002F1.overview",{"title":382,"path":383,"stem":384},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F6.envconf\u002F2.recipes",{"title":386,"icon":387,"path":388,"stem":389,"children":390,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F7.httperr",[391,394,399],{"title":52,"path":392,"stem":393,"icon":387},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F7.httperr\u002F1.overview",{"title":395,"path":396,"stem":397,"icon":398},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F7.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":400,"path":401,"stem":402,"icon":403},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F7.httperr\u002F3.validation","i-lucide-badge-check",{"title":405,"icon":406,"path":407,"stem":408,"children":409,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F8.dbx",[410,413,417,421,426],{"title":52,"path":411,"stem":412,"icon":406},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F8.dbx\u002F1.overview",{"title":414,"path":415,"stem":416,"icon":106},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F8.dbx\u002F2.pg",{"title":418,"path":419,"stem":420,"icon":47},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F8.dbx\u002F3.bunx",{"title":422,"path":423,"stem":424,"icon":425},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F8.dbx\u002F4.transactions","i-lucide-git-merge",{"title":427,"path":428,"stem":429,"icon":318},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F8.dbx\u002F5.seed",{"title":431,"icon":55,"path":432,"stem":433,"children":434,"page":44},"paginate","\u002Fhu\u002Fpaginate","hu\u002F9.paginate",[435,438],{"title":52,"path":436,"stem":437,"icon":55},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F9.paginate\u002F1.overview",{"title":439,"path":440,"stem":441,"icon":19},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F9.paginate\u002F2.cursor",{"id":443,"title":204,"body":444,"description":2925,"extension":2926,"links":2927,"meta":2928,"navigation":2929,"path":205,"seo":2930,"stem":206,"__hash__":2931},"docs_hu\u002Fhu\u002F17.reference\u002F1.configuration.md",{"type":445,"value":446,"toc":2880},"minimark",[447,476,507,510,689,697,702,710,718,884,894,902,997,1043,1052,1060,1151,1189,1196,1205,1316,1357,1361,1383,1489,1529,1537,1546,1600,1604,1613,1621,1626,1718,1727,1732,1798,1805,1813,1907,1917,1930,1938,1947,2103,2118,2122,2153,2162,2168,2196,2228,2232,2279,2287,2299,2405,2411,2435,2442,2446,2511,2529,2536,2540,2621,2628,2632,2713,2720,2742,2845,2876],[448,449,450,451,455,456,459,460,463,464,467,468,471,472,475],"p",{},"Sem a kit, sem egyetlen önálló modul nem olvas env-változót magától: mindegyik exportál egy ",[452,453,454],"code",{},"Config"," structot, amit a projekted ",[452,457,458],{},"internal\u002Fplatform\u002Fconfig\u002Fconfig.go","-jában komponálsz össze, és ",[452,461,462],{},"envconf.MustLoad[config.Config]()","-fel töltesz be. Lásd az ",[465,466,374],"a",{"href":379}," oldalt és a ",[465,469,470],{"href":229},"konfiguráció-koncepciót",". Fejlesztésben a ",[452,473,474],{},".env"," fájl beolvasásra kerül; a valódi környezeti változók mindig nyernek.",[477,478,479,487,488,491,492,495,496,495,499,502,503,506],"note",{},[480,481,482,483,486],"strong",{},"Nincs ",[452,484,485],{},"GPSYSTEM_*"," namespace."," A változónevek prefixét nem a kit vagy egy modul határozza meg, hanem a komponáló struct ",[452,489,490],{},"envPrefix"," tagje: a lenti ",[452,493,494],{},"DB_",", ",[452,497,498],{},"S3_",[452,500,501],{},"MAIL_"," stb. prefixek a generált projekt konvenciói. Ugyanaz a struct más prefixszel is felcsatolható: az ",[452,504,505],{},"envconf.LoadPrefixed[dbx.Config](\"ANALYTICS_DB_\")"," ugyanazt a structot másik változókészletre képezi.",[448,508,509],{},"Egy generált projekt configja így áll össze:",[511,512,517],"pre",{"className":513,"code":514,"filename":458,"language":515,"meta":516,"style":516},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","type Config struct {\n    Server server.Config                 \u002F\u002F prefix nélkül: LISTEN_ADDR, ...\n    DB     dbx.Config    `envPrefix:\"DB_\"`\n    Worker worker.Config                 \u002F\u002F WORKER_* + beágyazott VALKEY_\u002FSCHEDULER_\n    Outbox outbox.Config `envPrefix:\"OUTBOX_\"`\n    \u002F\u002F kézzel hozzáadva, ha kell:\n    Storage s3.Config     `envPrefix:\"S3_\"`\n    Mail    smtp.Config   `envPrefix:\"MAIL_\"`\n    JWT     auth.Config   `envPrefix:\"JWT_\"`\n}\n","go","",[452,518,519,538,557,579,595,616,622,643,664,683],{"__ignoreMap":516},[520,521,524,528,532,535],"span",{"class":522,"line":523},"line",1,[520,525,527],{"class":526},"sMK4o","type",[520,529,531],{"class":530},"sBMFI"," Config",[520,533,534],{"class":526}," struct",[520,536,537],{"class":526}," {\n",[520,539,541,545,548,551,553],{"class":522,"line":540},2,[520,542,544],{"class":543},"sTEyZ","    Server ",[520,546,547],{"class":530},"server",[520,549,550],{"class":526},".",[520,552,454],{"class":530},[520,554,556],{"class":555},"sHwdD","                 \u002F\u002F prefix nélkül: LISTEN_ADDR, ...\n",[520,558,560,563,565,567,569,572,576],{"class":522,"line":559},3,[520,561,562],{"class":543},"    DB     ",[520,564,405],{"class":530},[520,566,550],{"class":526},[520,568,454],{"class":530},[520,570,571],{"class":526},"    `",[520,573,575],{"class":574},"sfazB","envPrefix:\"DB_\"",[520,577,578],{"class":526},"`\n",[520,580,582,585,588,590,592],{"class":522,"line":581},4,[520,583,584],{"class":543},"    Worker ",[520,586,587],{"class":530},"worker",[520,589,550],{"class":526},[520,591,454],{"class":530},[520,593,594],{"class":555},"                 \u002F\u002F WORKER_* + beágyazott VALKEY_\u002FSCHEDULER_\n",[520,596,598,601,604,606,608,611,614],{"class":522,"line":597},5,[520,599,600],{"class":543},"    Outbox ",[520,602,603],{"class":530},"outbox",[520,605,550],{"class":526},[520,607,454],{"class":530},[520,609,610],{"class":526}," `",[520,612,613],{"class":574},"envPrefix:\"OUTBOX_\"",[520,615,578],{"class":526},[520,617,619],{"class":522,"line":618},6,[520,620,621],{"class":555},"    \u002F\u002F kézzel hozzáadva, ha kell:\n",[520,623,625,628,631,633,635,638,641],{"class":522,"line":624},7,[520,626,627],{"class":543},"    Storage ",[520,629,630],{"class":530},"s3",[520,632,550],{"class":526},[520,634,454],{"class":530},[520,636,637],{"class":526},"     `",[520,639,640],{"class":574},"envPrefix:\"S3_\"",[520,642,578],{"class":526},[520,644,646,649,652,654,656,659,662],{"class":522,"line":645},8,[520,647,648],{"class":543},"    Mail    ",[520,650,651],{"class":530},"smtp",[520,653,550],{"class":526},[520,655,454],{"class":530},[520,657,658],{"class":526},"   `",[520,660,661],{"class":574},"envPrefix:\"MAIL_\"",[520,663,578],{"class":526},[520,665,667,670,672,674,676,678,681],{"class":522,"line":666},9,[520,668,669],{"class":543},"    JWT     ",[520,671,82],{"class":530},[520,673,550],{"class":526},[520,675,454],{"class":530},[520,677,658],{"class":526},[520,679,680],{"class":574},"envPrefix:\"JWT_\"",[520,682,578],{"class":526},[520,684,686],{"class":522,"line":685},10,[520,687,688],{"class":526},"}\n",[448,690,691,692,696],{},"A lenti szakaszok a ",[465,693,695],{"href":694},"\u002Fhu\u002Fconcepts\u002Farchitecture#modult%C3%A9rk%C3%A9p","modultérkép"," sorrendjét követik: elöl a kit saját chassis-configjai, utána modulonként egy szakasz (kihagyva azt a maroknyit, aminek egyáltalán nincs env-konfigurálható állapota).",[698,699,701],"h2",{"id":700},"a-kit-chassisa","A kit chassisa",[703,704,706,709],"h3",{"id":705},"serverconfig-prefix-nélkül",[452,707,708],{},"server.Config",": prefix nélkül",[448,711,712,715,716,550],{},[452,713,714],{},"github.com\u002Fgp-system\u002Fgpsystem\u002Fserver",". A HTTP-szerver életciklusa és limitjei. Lásd ",[465,717,258],{"href":259},[719,720,721,737],"table",{},[722,723,724],"thead",{},[725,726,727,731,734],"tr",{},[728,729,730],"th",{},"Változó",[728,732,733],{},"Default",[728,735,736],{},"Jelentés",[738,739,740,756,771,786,801,816,831,846,861],"tbody",{},[725,741,742,748,753],{},[743,744,745],"td",{},[452,746,747],{},"LISTEN_ADDR",[743,749,750],{},[452,751,752],{},":3000",[743,754,755],{},"a cím, amin a chi hallgat",[725,757,758,763,768],{},[743,759,760],{},[452,761,762],{},"SHUTDOWN_TIMEOUT",[743,764,765],{},[452,766,767],{},"10s",[743,769,770],{},"graceful shutdown kerete: SIGINT\u002FSIGTERM után ennyit kapnak az in-flight kérések",[725,772,773,778,783],{},[743,774,775],{},[452,776,777],{},"READ_HEADER_TIMEOUT",[743,779,780],{},[452,781,782],{},"5s",[743,784,785],{},"a kérés-fejlécek beérkezésének limitje, ez az elsődleges Slowloris-védelem",[725,787,788,793,798],{},[743,789,790],{},[452,791,792],{},"READ_TIMEOUT",[743,794,795],{},[452,796,797],{},"30s",[743,799,800],{},"a teljes kérés (fejléc + body) beolvasásának limitje",[725,802,803,808,813],{},[743,804,805],{},[452,806,807],{},"WRITE_TIMEOUT",[743,809,810],{},[452,811,812],{},"0s",[743,814,815],{},"a válasz kiírásának limitje; alapból kikapcsolva, mert a streaminget\u002Fnagy letöltéseket is elvágná. Kapcsold be, ha minden endpointod rövid életű",[725,817,818,823,828],{},[743,819,820],{},[452,821,822],{},"IDLE_TIMEOUT",[743,824,825],{},[452,826,827],{},"120s",[743,829,830],{},"meddig marad nyitva egy tétlen keep-alive kapcsolat",[725,832,833,838,843],{},[743,834,835],{},[452,836,837],{},"CORS_ORIGINS",[743,839,840],{},[452,841,842],{},"*",[743,844,845],{},"engedélyezett originek, vesszővel elválasztva",[725,847,848,853,858],{},[743,849,850],{},[452,851,852],{},"BODY_LIMIT",[743,854,855],{},[452,856,857],{},"4194304",[743,859,860],{},"max kérés-body méret bájtban (4 MiB); a ≤ 0 érték is a defaultot jelenti, a limit nem kapcsolható ki véletlenül",[725,862,863,868,873],{},[743,864,865],{},[452,866,867],{},"HTTP_EXPOSE_INTERNAL_ERRORS",[743,869,870],{},[452,871,872],{},"false",[743,874,875,876,879,880,883],{},"az 5xx válaszokba bekerül a mögöttes hibaüzenet, stack és wrap-lánc (",[480,877,878],{},"kizárólag fejlesztésben","); szándékosan független az ",[452,881,882],{},"OTEL_DEV_MODE","-tól",[703,885,887,890,891],{"id":886},"workerconfig-worker_",[452,888,889],{},"worker.Config",": ",[452,892,893],{},"WORKER_*",[448,895,896,899,900,550],{},[452,897,898],{},"github.com\u002Fgp-system\u002Fgpsystem\u002Fworker",". A háttérfeldolgozó chassis: asynq szerver + outbox relay + ütemező egy binárisban. Lásd ",[465,901,263],{"href":264},[719,903,904,914],{},[722,905,906],{},[725,907,908,910,912],{},[728,909,730],{},[728,911,733],{},[728,913,736],{},[738,915,916,931,950,964,978],{},[725,917,918,923,928],{},[743,919,920],{},[452,921,922],{},"WORKER_CONCURRENCY",[743,924,925],{},[452,926,927],{},"10",[743,929,930],{},"egyszerre feldolgozott taskok száma",[725,932,933,938,943],{},[743,934,935],{},[452,936,937],{},"WORKER_QUEUES",[743,939,940],{},[452,941,942],{},"default:1",[743,944,945,946,949],{},"sor→súly leképezés, pl. ",[452,947,948],{},"critical:6,default:3,low:1"," (a nagyobb súlyú sor gyakrabban kap kiszolgálást)",[725,951,952,957,961],{},[743,953,954],{},[452,955,956],{},"WORKER_STRICT_PRIORITY",[743,958,959],{},[452,960,872],{},[743,962,963],{},"a nagyobb súlyú sorok kiürítése az alacsonyabbak előtt",[725,965,966,971,975],{},[743,967,968],{},[452,969,970],{},"WORKER_SHUTDOWN_TIMEOUT",[743,972,973],{},[452,974,797],{},[743,976,977],{},"graceful drain; a be nem fejezett taskokat az asynq visszasorolja és újrakézbesíti (at-least-once)",[725,979,980,985,990],{},[743,981,982],{},[452,983,984],{},"WORKER_DEFAULT_MAX_RETRY",[743,986,987],{},[452,988,989],{},"25",[743,991,992,993,996],{},"retry-keret azokhoz a listener\u002Fjob taskokhoz, amik nem állítanak sajátot (",[452,994,995],{},"queue.MaxRetry",")",[448,998,999,1000,1002,1003,1009,1010,1013,1014,1020,1021,1024,1025,1031,1032,1035,1036,1035,1039,1042],{},"A ",[452,1001,889],{}," emellett beágyazza a ",[465,1004,1006],{"href":1005},"#queueconfig-envprefixvalkey_",[452,1007,1008],{},"queue.Config","-ot (",[452,1011,1012],{},"VALKEY_*","), a ",[465,1015,1017],{"href":1016},"#eventsscheduler-config-envprefixscheduler_",[452,1018,1019],{},"scheduler.Config","-t (",[452,1022,1023],{},"SCHEDULER_*",") és a ",[465,1026,1028],{"href":1027},"#telemetryconfig-be%C3%A1gyazva-prefix-n%C3%A9lk%C3%BCl",[452,1029,1030],{},"telemetry.Config","-ot (standard ",[452,1033,1034],{},"OTEL_*","\u002F",[452,1037,1038],{},"LOG_*",[452,1040,1041],{},"SENTRY_*"," nevekkel).",[703,1044,1046,890,1049],{"id":1045},"realtimeconfig-realtime_",[452,1047,1048],{},"realtime.Config",[452,1050,1051],{},"REALTIME_*",[448,1053,1054,1057,1058,550],{},[452,1055,1056],{},"github.com\u002Fgp-system\u002Fgpsystem\u002Frealtime",". A WebSocket\u002FSSE gateway. Lásd ",[465,1059,268],{"href":269},[719,1061,1062,1072],{},[722,1063,1064],{},[725,1065,1066,1068,1070],{},[728,1067,730],{},[728,1069,733],{},[728,1071,736],{},[738,1073,1074,1088,1103,1117,1135],{},[725,1075,1076,1081,1085],{},[743,1077,1078],{},[452,1079,1080],{},"REALTIME_LISTEN_ADDR",[743,1082,1083],{},[452,1084,752],{},[743,1086,1087],{},"a gateway konténeren belüli listen-címe",[725,1089,1090,1095,1100],{},[743,1091,1092],{},[452,1093,1094],{},"REALTIME_DRAIN_TIMEOUT",[743,1096,1097],{},[452,1098,1099],{},"20s",[743,1101,1102],{},"graceful shutdown: minden tartott kapcsolat egy reconnect-eligible kóddal szakad le, utána futnak a closerek",[725,1104,1105,1110,1114],{},[743,1106,1107],{},[452,1108,1109],{},"REALTIME_READ_HEADER_TIMEOUT",[743,1111,1112],{},[452,1113,782],{},[743,1115,1116],{},"Slowloris-védelem a connect-handshake-en",[725,1118,1119,1124,1129],{},[743,1120,1121],{},[452,1122,1123],{},"REALTIME_MAX_CONNECTIONS",[743,1125,1126],{},[452,1127,1128],{},"0",[743,1130,1131,1132,1134],{},"limitálja az adott példány által tartott egyidejű streameket; ",[452,1133,1128],{}," = korlátlan",[725,1136,1137,1141,1145],{},[743,1138,1139],{},[452,1140,837],{},[743,1142,1143],{},[452,1144,842],{},[743,1146,1147,1148,1150],{},"közös a ",[452,1149,708],{},"-gal, így a gateway igazodik az API-modulok beállításához",[448,1152,999,1153,1002,1155,1009,1161,1164,1165,1168,1169,1009,1173,1175,1176,1009,1182,1185,1186,1188],{},[452,1154,1048],{},[465,1156,1158],{"href":1157},"#notifybroadcast-config-channel_prefix",[452,1159,1160],{},"broadcast.Config",[452,1162,1163],{},"envPrefix:\"REALTIME_\"",", így az egyetlen változója ",[452,1166,1167],{},"REALTIME_CHANNEL_PREFIX","-ként jelenik meg), a ",[465,1170,1171],{"href":1005},[452,1172,1008],{},[452,1174,1012],{},", ugyanaz a Valkey, amit a centrifuge broker használ), az ",[465,1177,1179],{"href":1178},"#authconfig-envprefixjwt_",[452,1180,1181],{},"auth.Config",[452,1183,1184],{},"JWT_*",", ez authentikálja a connect-handshake-et) és a ",[452,1187,1030],{},"-ot (standard nevek, prefix nélkül).",[698,1190,1192,890,1194],{"id":1191},"dbx-envprefixdb_",[452,1193,405],{},[452,1195,575],{},[448,1197,1198,1201,1202,550],{},[452,1199,1200],{},"github.com\u002Fgp-system\u002Fdbx",". PostgreSQL-kapcsolat, lásd ",[465,1203,1204],{"href":411},"dbx: Áttekintés",[719,1206,1207,1217],{},[722,1208,1209],{},[725,1210,1211,1213,1215],{},[728,1212,730],{},[728,1214,733],{},[728,1216,736],{},[738,1218,1219,1233,1247,1261,1274,1288,1302],{},[725,1220,1221,1226,1231],{},[743,1222,1223],{},[452,1224,1225],{},"DB_HOST",[743,1227,1228],{},[452,1229,1230],{},"localhost",[743,1232],{},[725,1234,1235,1240,1245],{},[743,1236,1237],{},[452,1238,1239],{},"DB_PORT",[743,1241,1242],{},[452,1243,1244],{},"5432",[743,1246],{},[725,1248,1249,1254,1259],{},[743,1250,1251],{},[452,1252,1253],{},"DB_USER",[743,1255,1256],{},[480,1257,1258],{},"kötelező",[743,1260],{},[725,1262,1263,1268,1272],{},[743,1264,1265],{},[452,1266,1267],{},"DB_PASSWORD",[743,1269,1270],{},[480,1271,1258],{},[743,1273],{},[725,1275,1276,1281,1285],{},[743,1277,1278],{},[452,1279,1280],{},"DB_NAME",[743,1282,1283],{},[480,1284,1258],{},[743,1286,1287],{},"adatbázisnév",[725,1289,1290,1295,1300],{},[743,1291,1292],{},[452,1293,1294],{},"DB_SSLMODE",[743,1296,1297],{},[452,1298,1299],{},"disable",[743,1301],{},[725,1303,1304,1309,1313],{},[743,1305,1306],{},[452,1307,1308],{},"DB_MAX_CONNS",[743,1310,1311],{},[452,1312,927],{},[743,1314,1315],{},"a pgx pool maximális kapcsolatszáma",[477,1317,999,1318,1321,1322,1325,1326,1329,1330,1335,1336,1339,1340,1342,1343,1346,1347,1350,1351,1353,1354,550],{},[452,1319,1320],{},"dbx.Config"," csomagszintű defaultja ",[452,1323,1324],{},"DB_HOST=localhost",", de a generált projekt ",[452,1327,1328],{},".env.example","-je ",[480,1331,1332],{},[452,1333,1334],{},"DB_HOST=postgres","-t ír: az app a compose dev-stackben fut, a ",[452,1337,1338],{},"postgres"," a compose-service DNS-neve. Ugyanígy a ",[452,1341,1008],{}," ",[452,1344,1345],{},"VALKEY_ADDR"," defaultja ",[452,1348,1349],{},"localhost:6379",", a generált ",[452,1352,1328],{},"-ben viszont ",[452,1355,1356],{},"valkey:6379",[703,1358,1360],{"id":1359},"nevesített-kapcsolatok","Nevesített kapcsolatok",[448,1362,1363,1364,1367,1368,1371,1372,1374,1375,1378,1379,1382],{},"Minden ",[465,1365,1366],{"href":291},"nevesített kapcsolat"," (",[452,1369,1370],{},"add db \u003Cmodul> \u003Cnév>",") egy másik ",[452,1373,1320],{},"-ot ad hozzá ",[452,1376,1377],{},"DB_\u003CNÉV>_*"," alatt, ugyanazokkal a változókkal és defaultokkal mint fent, a kapcsolat (nagybetűs) nevével a prefixbe illesztve. Az ",[452,1380,1381],{},"add db news analytics"," a következőket adja:",[719,1384,1385,1395],{},[722,1386,1387],{},[725,1388,1389,1391,1393],{},[728,1390,730],{},[728,1392,733],{},[728,1394,736],{},[738,1396,1397,1410,1423,1436,1449,1462,1475],{},[725,1398,1399,1404,1408],{},[743,1400,1401],{},[452,1402,1403],{},"DB_ANALYTICS_HOST",[743,1405,1406],{},[452,1407,1230],{},[743,1409],{},[725,1411,1412,1417,1421],{},[743,1413,1414],{},[452,1415,1416],{},"DB_ANALYTICS_PORT",[743,1418,1419],{},[452,1420,1244],{},[743,1422],{},[725,1424,1425,1430,1434],{},[743,1426,1427],{},[452,1428,1429],{},"DB_ANALYTICS_USER",[743,1431,1432],{},[480,1433,1258],{},[743,1435],{},[725,1437,1438,1443,1447],{},[743,1439,1440],{},[452,1441,1442],{},"DB_ANALYTICS_PASSWORD",[743,1444,1445],{},[480,1446,1258],{},[743,1448],{},[725,1450,1451,1456,1460],{},[743,1452,1453],{},[452,1454,1455],{},"DB_ANALYTICS_NAME",[743,1457,1458],{},[480,1459,1258],{},[743,1461,1287],{},[725,1463,1464,1469,1473],{},[743,1465,1466],{},[452,1467,1468],{},"DB_ANALYTICS_SSLMODE",[743,1470,1471],{},[452,1472,1299],{},[743,1474],{},[725,1476,1477,1482,1486],{},[743,1478,1479],{},[452,1480,1481],{},"DB_ANALYTICS_MAX_CONNS",[743,1483,1484],{},[452,1485,927],{},[743,1487,1488],{},"e kapcsolat saját pgx poolja maximális kapcsolatszáma",[448,1490,1491,1492,1494,1495,1497,1498,1500,1501,1503,1504,1506,1507,1509,1510,1512,1513,1515,1516,1518,1519,1521,1522,1524,1525,1528],{},"Az ",[452,1493,358],{},"-nek, a ",[452,1496,386],{},"-nek és a ",[452,1499,431],{},"-nek nincs ",[452,1502,454],{}," structja: az ",[452,1505,358],{}," és a ",[452,1508,431],{}," egyáltalán nem hordoz konfigurálható állapotot, a ",[452,1511,386],{}," pedig szintén nem olvas semmit a környezetből (a ",[452,1514,867],{}," viselkedése a fenti ",[452,1517,708],{},"-ban él). Az ",[452,1520,374],{}," maga a loader, nem valami, amit betöltenek; a saját ",[452,1523,474],{},"-fájl- és tag-konvencióiért lásd az ",[465,1526,1527],{"href":379},"envconf: Áttekintés"," oldalt.",[698,1530,1532,890,1534],{"id":1531},"queueconfig-envprefixvalkey_",[452,1533,1008],{},[452,1535,1536],{},"envPrefix:\"VALKEY_\"",[448,1538,1539,1542,1543,550],{},[452,1540,1541],{},"github.com\u002Fgp-system\u002Fqueue",". A Valkey-kapcsolat, amin az asynq és minden rá épülő modul osztozik. Lásd ",[465,1544,1545],{"href":53},"Queue",[719,1547,1548,1558],{},[722,1549,1550],{},[725,1551,1552,1554,1556],{},[728,1553,730],{},[728,1555,733],{},[728,1557,736],{},[738,1559,1560,1573,1586],{},[725,1561,1562,1566,1570],{},[743,1563,1564],{},[452,1565,1345],{},[743,1567,1568],{},[452,1569,1349],{},[743,1571,1572],{},"Valkey host:port",[725,1574,1575,1580,1583],{},[743,1576,1577],{},[452,1578,1579],{},"VALKEY_PASSWORD",[743,1581,1582],{},"üres",[743,1584,1585],{},"üres → nincs auth",[725,1587,1588,1593,1597],{},[743,1589,1590],{},[452,1591,1592],{},"VALKEY_DB",[743,1594,1595],{},[452,1596,1128],{},[743,1598,1599],{},"Valkey logikai adatbázis",[698,1601,1602],{"id":61},[452,1603,61],{},[448,1605,1606,1609,1610,1612],{},[452,1607,1608],{},"github.com\u002Fgp-system\u002Fevents",". Az event\u002Flistener magnak önmagában nincs ",[452,1611,454],{},"-ja; a két alcsomagjának viszont van.",[703,1614,1616,890,1619],{"id":1615},"eventsoutboxconfig-envprefixoutbox_",[452,1617,1618],{},"events\u002Foutbox.Config",[452,1620,613],{},[448,1622,1623,1624,550],{},"A relay viselkedése, lásd ",[465,1625,72],{"href":73},[719,1627,1628,1638],{},[722,1629,1630],{},[725,1631,1632,1634,1636],{},[728,1633,730],{},[728,1635,733],{},[728,1637,736],{},[738,1639,1640,1655,1673,1688,1703],{},[725,1641,1642,1647,1652],{},[743,1643,1644],{},[452,1645,1646],{},"OUTBOX_POLL_INTERVAL",[743,1648,1649],{},[452,1650,1651],{},"1s",[743,1653,1654],{},"várakozás a pollok közt, ha a batch nem telt meg",[725,1656,1657,1662,1667],{},[743,1658,1659],{},[452,1660,1661],{},"OUTBOX_BATCH_SIZE",[743,1663,1664],{},[452,1665,1666],{},"100",[743,1668,1669,1670,996],{},"pollonként lefoglalt sorok (",[452,1671,1672],{},"FOR UPDATE SKIP LOCKED",[725,1674,1675,1680,1685],{},[743,1676,1677],{},[452,1678,1679],{},"OUTBOX_RETENTION",[743,1681,1682],{},[452,1683,1684],{},"168h",[743,1686,1687],{},"meddig maradnak meg a publikált sorok a takarítás előtt",[725,1689,1690,1695,1700],{},[743,1691,1692],{},[452,1693,1694],{},"OUTBOX_CLEANUP_INTERVAL",[743,1696,1697],{},[452,1698,1699],{},"1h",[743,1701,1702],{},"milyen gyakran törlődnek a retention utáni publikált sorok",[725,1704,1705,1710,1715],{},[743,1706,1707],{},[452,1708,1709],{},"OUTBOX_TASK_RETENTION",[743,1711,1712],{},[452,1713,1714],{},"24h",[743,1716,1717],{},"asynq-retention \u002F TaskID-dedup ablak a publikált taskokon",[703,1719,1721,890,1724],{"id":1720},"eventsschedulerconfig-envprefixscheduler_",[452,1722,1723],{},"events\u002Fscheduler.Config",[452,1725,1726],{},"envPrefix:\"SCHEDULER_\"",[448,1728,1729,1730,550],{},"Az ütemezett jobok futtatója, lásd ",[465,1731,77],{"href":78},[719,1733,1734,1744],{},[722,1735,1736],{},[725,1737,1738,1740,1742],{},[728,1739,730],{},[728,1741,733],{},[728,1743,736],{},[738,1745,1746,1764,1779],{},[725,1747,1748,1753,1758],{},[743,1749,1750],{},[452,1751,1752],{},"SCHEDULER_TIMEZONE",[743,1754,1755],{},[452,1756,1757],{},"UTC",[743,1759,1760,1761,996],{},"IANA időzóna, amelyben a cron-kifejezések kiértékelődnek (pl. ",[452,1762,1763],{},"Europe\u002FBudapest",[725,1765,1766,1771,1776],{},[743,1767,1768],{},[452,1769,1770],{},"SCHEDULER_LEASE_TTL",[743,1772,1773],{},[452,1774,1775],{},"15s",[743,1777,1778],{},"a leader-lease TTL-je; a leader TTL\u002F3-onként újítja, ennyi ideig tüzelhet még egy elveszett leader, mielőtt másik replika átveszi",[725,1780,1781,1786,1791],{},[743,1782,1783],{},[452,1784,1785],{},"SCHEDULER_NAMESPACE",[743,1787,1788],{},[452,1789,1790],{},"gpsystem",[743,1792,1793,1794,1797],{},"a Valkey-beli leader-election kulcs namespace-e; ez a default a szó szerinti ",[452,1795,1796],{},"\"gpsystem\""," string, ezért állíts be appra egyedi nevet, ha több alkalmazás\u002Fkörnyezet osztozik egy Valkeyen",[698,1799,1801,890,1803],{"id":1800},"authconfig-envprefixjwt_",[452,1802,1181],{},[452,1804,680],{},[448,1806,1807,1810,1811,550],{},[452,1808,1809],{},"github.com\u002Fgp-system\u002Fauth",". JWT-kibocsátás és -ellenőrzés, lásd ",[465,1812,88],{"href":89},[719,1814,1815,1825],{},[722,1816,1817],{},[725,1818,1819,1821,1823],{},[728,1820,730],{},[728,1822,733],{},[728,1824,736],{},[738,1826,1827,1841,1856,1870,1889],{},[725,1828,1829,1834,1838],{},[743,1830,1831],{},[452,1832,1833],{},"JWT_SECRET",[743,1835,1836],{},[480,1837,1258],{},[743,1839,1840],{},"aláíró kulcs, service-enként\u002Fkörnyezetenként külön",[725,1842,1843,1848,1853],{},[743,1844,1845],{},[452,1846,1847],{},"JWT_ACCESS_TOKEN_TTL",[743,1849,1850],{},[452,1851,1852],{},"15m",[743,1854,1855],{},"access token élettartam",[725,1857,1858,1863,1867],{},[743,1859,1860],{},[452,1861,1862],{},"JWT_REFRESH_TOKEN_TTL",[743,1864,1865],{},[452,1866,1684],{},[743,1868,1869],{},"refresh token élettartam",[725,1871,1872,1877,1879],{},[743,1873,1874],{},[452,1875,1876],{},"JWT_ISSUER",[743,1878,1582],{},[743,1880,1881,1882,1885,1886,1888],{},"üres → az ",[452,1883,1884],{},"iss","-ellenőrzés kikapcsolva; beállítva a Parse egyező ",[452,1887,1884],{},"-t követel",[725,1890,1891,1896,1898],{},[743,1892,1893],{},[452,1894,1895],{},"JWT_AUDIENCE",[743,1897,1582],{},[743,1899,1881,1900,1903,1904,1906],{},[452,1901,1902],{},"aud","-ellenőrzés kikapcsolva; beállítva a Parse megköveteli, hogy a token ",[452,1905,1902],{}," claimje tartalmazza",[1908,1909,1910,1911,1913,1914,1916],"tip",{},"Állítsd be a ",[452,1912,1876],{},"-t és a ",[452,1915,1895],{},"-t (és használj service-enként külön secretet), hogy egy másik service-nek vagy környezetnek kibocsátott token ne legyen visszajátszható.",[448,1918,1491,1919,1922,1923,1926,1927,1929],{},[452,1920,1921],{},"auth\u002Frbac","-nak és az ",[452,1924,1925],{},"auth\u002Fpolicy","-nak nincs saját ",[452,1928,454],{},"-ja: a szerep-\u002Fpermission-ellenőrzés és a kérésenkénti policy-k teljes egészében a tokenben vagy a kérésben már meglévő adatokon futnak, nincs mit tovább konfigurálni.",[698,1931,1933,890,1936],{"id":1932},"mailsmtpconfig-envprefixmail_",[452,1934,1935],{},"mail\u002Fsmtp.Config",[452,1937,661],{},[448,1939,1940,1943,1944,550],{},[452,1941,1942],{},"github.com\u002Fgp-system\u002Fmail\u002Fsmtp",". SMTP-küldés és default feladó, lásd ",[465,1945,1946],{"href":119},"Mail: Áttekintés",[719,1948,1949,1959],{},[722,1950,1951],{},[725,1952,1953,1955,1957],{},[728,1954,730],{},[728,1956,733],{},[728,1958,736],{},[738,1960,1961,1975,1989,2005,2036,2063,2077,2089],{},[725,1962,1963,1968,1972],{},[743,1964,1965],{},[452,1966,1967],{},"MAIL_HOST",[743,1969,1970],{},[480,1971,1258],{},[743,1973,1974],{},"SMTP szerver címe",[725,1976,1977,1982,1987],{},[743,1978,1979],{},[452,1980,1981],{},"MAIL_PORT",[743,1983,1984],{},[452,1985,1986],{},"587",[743,1988],{},[725,1990,1991,2000,2002],{},[743,1992,1993,1996,1997],{},[452,1994,1995],{},"MAIL_USERNAME"," \u002F ",[452,1998,1999],{},"MAIL_PASSWORD",[743,2001,1582],{},[743,2003,2004],{},"mindkettő üresen → nincs auth (Mailpit, belső relay)",[725,2006,2007,2012,2017],{},[743,2008,2009],{},[452,2010,2011],{},"MAIL_AUTH",[743,2013,2014],{},[452,2015,2016],{},"auto",[743,2018,2019,2020,2022,2023,2026,2027,2026,2030,2026,2033],{},"auth-mechanizmus: ",[452,2021,2016],{}," (felderítés) | ",[452,2024,2025],{},"plain"," | ",[452,2028,2029],{},"login",[452,2031,2032],{},"cram-md5",[452,2034,2035],{},"none",[725,2037,2038,2043,2048],{},[743,2039,2040],{},[452,2041,2042],{},"MAIL_TLS",[743,2044,2045],{},[452,2046,2047],{},"starttls",[743,2049,2050,2052,2053,2056,2057,2060,2061],{},[452,2051,2047],{}," (kötelező STARTTLS) | ",[452,2054,2055],{},"starttls-opportunistic"," (dev, TLS nélküli szerver) | ",[452,2058,2059],{},"tls"," (implicit TLS, 465-ös port) | ",[452,2062,2035],{},[725,2064,2065,2070,2074],{},[743,2066,2067],{},[452,2068,2069],{},"MAIL_FROM_ADDRESS",[743,2071,2072],{},[480,2073,1258],{},[743,2075,2076],{},"default feladó cím",[725,2078,2079,2084,2086],{},[743,2080,2081],{},[452,2082,2083],{},"MAIL_FROM_NAME",[743,2085,1582],{},[743,2087,2088],{},"default feladó megjelenített neve",[725,2090,2091,2096,2100],{},[743,2092,2093],{},[452,2094,2095],{},"MAIL_TIMEOUT",[743,2097,2098],{},[452,2099,1775],{},[743,2101,2102],{},"dial\u002Fsend limit küldésenként",[448,2104,999,2105,2107,2108,1500,2111,2113,2114,2117],{},[452,2106,113],{},"-nek magának és a ",[452,2109,2110],{},"mail\u002Fmjml",[452,2112,454],{},"-ja: a ",[452,2115,2116],{},"Mailer"," interfész és az MJML-renderelés nem vesz fel környezetből beállítást.",[698,2119,2120],{"id":130},[452,2121,130],{},[448,2123,2124,2127,2128,1035,2131,2134,2135,2137,2138,2141,2142,1035,2145,2148,2149,2152],{},[452,2125,2126],{},"github.com\u002Fgp-system\u002Fnotify",". A ",[452,2129,2130],{},"Hub",[452,2132,2133],{},"Sender"," magnak nincs ",[452,2136,454],{},"-ja; a ",[452,2139,2140],{},"notify\u002Fdatabase","-nek sincs (közvetlenül ",[452,2143,2144],{},"*pg.DB",[452,2146,2147],{},"*bun.DB","-t kap, saját változó nélkül). A ",[452,2150,2151],{},"notify\u002Fbroadcast","-nak viszont van:",[703,2154,2156,890,2159],{"id":2155},"notifybroadcastconfig-channel_prefix",[452,2157,2158],{},"notify\u002Fbroadcast.Config",[452,2160,2161],{},"CHANNEL_PREFIX",[448,2163,2164,2165,550],{},"Lásd ",[465,2166,2167],{"href":144},"Broadcast",[719,2169,2170,2180],{},[722,2171,2172],{},[725,2173,2174,2176,2178],{},[728,2175,730],{},[728,2177,733],{},[728,2179,736],{},[738,2181,2182],{},[725,2183,2184,2188,2193],{},[743,2185,2186],{},[452,2187,2161],{},[743,2189,2190],{},[452,2191,2192],{},"rt",[743,2194,2195],{},"prefix, amiből minden centrifuge csatornanév épül",[448,2197,999,2198,2200,2201,2203,2204,2207,2208,2210,2211,2213,2214,1342,2217,2220,2221,2225,2226,550],{},[452,2199,1160],{},"-nak nincs fix saját env-prefixe (a ",[452,2202,1320],{},"-gal vagy az ",[452,2205,2206],{},"smtp.Config","-gal ellentétben): a beágyazó struct ",[452,2209,490],{}," tagje dönti el a valódi változónevet. A kit saját ",[452,2212,1048],{},"-ja ",[452,2215,2216],{},"Broadcast broadcast.Config",[452,2218,2219],{},"`envPrefix:\"REALTIME_\"`"," alakban ágyazza be, így egy generált projektben ez a változó valójában ",[480,2222,2223],{},[452,2224,1167],{},", nem a fent látott csupasz ",[452,2227,2161],{},[698,2229,2230],{"id":147},[452,2231,147],{},[448,2233,2234,2127,2237,1035,2240,1035,2243,2246,2247,2250,2251,2256,2257,2260,2261,2264,2265,2268,2269,2272,2273,2275,2276,2278],{},[452,2235,2236],{},"github.com\u002Fgp-system\u002Fstorage",[452,2238,2239],{},"Driver",[452,2241,2242],{},"Disk",[452,2244,2245],{},"Manager"," magnak és a ",[452,2248,2249],{},"storage\u002Flocal","-nak sincs fix env-prefixe: a ",[465,2252,2253],{"href":161},[452,2254,2255],{},"storage\u002Flocal.Config","-nak van ",[452,2258,2259],{},"ROOT","-ja (kötelező, a lokális gyökérmappa), ",[452,2262,2263],{},"PUBLIC_BASE_URL","-je, ",[452,2266,2267],{},"BASE_URL","-je és ",[452,2270,2271],{},"SECRET","-je (signed URL-ekhez), és a hívó ",[452,2274,490],{},"-választása dönti el a valódi változóneveket egy projektben, ugyanúgy, mint a fenti ",[452,2277,1160],{},"-nál.",[703,2280,2282,890,2285],{"id":2281},"storagedrivers3config-envprefixs3_",[452,2283,2284],{},"storage\u002Fdriver\u002Fs3.Config",[452,2286,640],{},[448,2288,2289,2292,2293,2296,2297,550],{},[452,2290,2291],{},"github.com\u002Fgp-system\u002Fstorage\u002Fdriver\u002Fs3",", a lista egyetlen beágyazott Go modulja (saját ",[452,2294,2295],{},"go.mod","-dal, ami behúzza az AWS-SDK-alakú minio-go klienst). Lásd ",[465,2298,164],{"href":165},[719,2300,2301,2311],{},[722,2302,2303],{},[725,2304,2305,2307,2309],{},[728,2306,730],{},[728,2308,733],{},[728,2310,736],{},[738,2312,2313,2327,2341,2354,2369,2389],{},[725,2314,2315,2320,2324],{},[743,2316,2317],{},[452,2318,2319],{},"S3_ENDPOINT",[743,2321,2322],{},[480,2323,1258],{},[743,2325,2326],{},"az S3-kompatibilis service címe (MinIO, RustFS, AWS S3, ...)",[725,2328,2329,2334,2339],{},[743,2330,2331],{},[452,2332,2333],{},"S3_REGION",[743,2335,2336],{},[452,2337,2338],{},"us-east-1",[743,2340],{},[725,2342,2343,2348,2352],{},[743,2344,2345],{},[452,2346,2347],{},"S3_BUCKET",[743,2349,2350],{},[480,2351,1258],{},[743,2353],{},[725,2355,2356,2364,2366],{},[743,2357,2358,1996,2361],{},[452,2359,2360],{},"S3_ACCESS_KEY",[452,2362,2363],{},"S3_SECRET_KEY",[743,2365,1582],{},[743,2367,2368],{},"hitelesítő adatok az endponthoz",[725,2370,2371,2376,2380],{},[743,2372,2373],{},[452,2374,2375],{},"S3_USE_PATH_STYLE",[743,2377,2378],{},[452,2379,872],{},[743,2381,2382,2385,2386],{},[452,2383,2384],{},"\u002Fbucket\u002Fkey"," címzés virtual-host helyett, a legtöbb self-hosted S3-hoz ",[452,2387,2388],{},"true",[725,2390,2391,2396,2398],{},[743,2392,2393],{},[452,2394,2395],{},"S3_PUBLIC_BASE_URL",[743,2397,1582],{},[743,2399,2400,2401,2404],{},"a ",[452,2402,2403],{},"URL()"," alapja (CDN vagy publikus bucket-endpoint)",[698,2406,2408,2410],{"id":2407},"telemetryconfig-beágyazva-prefix-nélkül",[452,2409,1030],{},": beágyazva, prefix nélkül",[448,2412,2413,2127,2416,1506,2419,2422,2423,2426,2427,2430,2431,2434],{},[452,2414,2415],{},"github.com\u002Fgp-system\u002Ftelemetry",[452,2417,2418],{},"server.Config.Telemetry",[452,2420,2421],{},"worker.Config.Telemetry"," egyaránt a ",[452,2424,2425],{},"telemetry.Config{Otel, Log, Sentry}"," hármast hordozza; a ",[452,2428,2429],{},"telemetry.Setup"," egy hívásban komponálja a három alrendszert. Lásd ",[465,2432,2433],{"href":180},"Telemetry: Áttekintés",". Minden változó standard néven, a legfelső szinten olvasódik, a beágyazás mélységétől függetlenül.",[703,2436,2438,2441],{"id":2437},"telemetryotelxconfig-otel-bootstrap",[452,2439,2440],{},"telemetry\u002Fotelx.Config",": OTel bootstrap",[448,2443,2164,2444,550],{},[465,2445,188],{"href":189},[719,2447,2448,2458],{},[722,2449,2450],{},[725,2451,2452,2454,2456],{},[728,2453,730],{},[728,2455,733],{},[728,2457,736],{},[738,2459,2460,2478,2496],{},[725,2461,2462,2467,2469],{},[743,2463,2464],{},[452,2465,2466],{},"OTEL_SERVICE_NAME",[743,2468,1258],{},[743,2470,2471,890,2474,2477],{},[480,2472,2473],{},"kötelező, kivéve dev módban",[452,2475,2476],{},"service.name"," minden telemetrián",[725,2479,2480,2485,2490],{},[743,2481,2482],{},[452,2483,2484],{},"OTEL_SERVICE_VERSION",[743,2486,2487],{},[452,2488,2489],{},"dev",[743,2491,2492,2495],{},[452,2493,2494],{},"service.version"," resource-attribútum",[725,2497,2498,2502,2506],{},[743,2499,2500],{},[452,2501,882],{},[743,2503,2504],{},[452,2505,872],{},[743,2507,2508,2510],{},[452,2509,2388],{}," → nem jön létre OTel exporter (kivéve, ha a Sentry-tracing ad egyet)",[477,2512,2513,2514,2517,2518,495,2521,2524,2525,2528],{},"Az exporter-végpontok szándékosan ",[480,2515,2516],{},"nem"," ebben a configban élnek: a standard ",[452,2519,2520],{},"OTEL_EXPORTER_OTLP_ENDPOINT",[452,2522,2523],{},"OTEL_TRACES_EXPORTER"," stb. változók érvényesülnek (az OTel ",[452,2526,2527],{},"autoexport"," csomagján keresztül); a deployment ugyanúgy konfigurálja a gpsystemet, mint bármely más OTel-instrumentált alkalmazást.",[703,2530,2532,2535],{"id":2531},"telemetrylogxconfig-a-default-slog-logger",[452,2533,2534],{},"telemetry\u002Flogx.Config",": a default slog logger",[448,2537,2164,2538,550],{},[465,2539,183],{"href":184},[719,2541,2542,2552],{},[722,2543,2544],{},[725,2545,2546,2548,2550],{},[728,2547,730],{},[728,2549,733],{},[728,2551,736],{},[738,2553,2554,2580,2598],{},[725,2555,2556,2561,2566],{},[743,2557,2558],{},[452,2559,2560],{},"LOG_LEVEL",[743,2562,2563],{},[452,2564,2565],{},"INFO",[743,2567,2568,2569,1035,2572,1035,2574,1035,2577,996],{},"minimális slog szint (",[452,2570,2571],{},"DEBUG",[452,2573,2565],{},[452,2575,2576],{},"WARN",[452,2578,2579],{},"ERROR",[725,2581,2582,2587,2591],{},[743,2583,2584],{},[452,2585,2586],{},"LOG_STDOUT",[743,2588,2589],{},[452,2590,872],{},[743,2592,2593,2594,2597],{},"prod módban a logok stdout-ra ",[480,2595,2596],{},"is"," kiíródnak (az OTLP-bridge mellett); hagyd kikapcsolva, ha egy collector a konténer-kimenetet is gyűjti, különben duplán érkeznek",[725,2599,2600,2605,2607],{},[743,2601,2602],{},[452,2603,2604],{},"LOG_FORMAT",[743,2606,1582],{},[743,2608,2609,2610,2612,2613,2616,2617,2620],{},"konzol-formátum: üres\u002F",[452,2611,2016],{}," → szöveg (dev) vagy JSON (prod); ",[452,2614,2615],{},"monolog"," → PHP\u002FMonolog-stílusú sorok teljes útvonalú stack trace-szel (",[452,2618,2619],{},"logx\u002Fmonolog","); más érték induláskor hibázik",[703,2622,2624,2627],{"id":2623},"telemetrysentryxconfig-az-opcionális-sentry-integráció",[452,2625,2626],{},"telemetry\u002Fsentryx.Config",": az opcionális Sentry-integráció",[448,2629,2164,2630,550],{},[465,2631,193],{"href":194},[719,2633,2634,2644],{},[722,2635,2636],{},[725,2637,2638,2640,2642],{},[728,2639,730],{},[728,2641,733],{},[728,2643,736],{},[738,2645,2646,2658,2678,2699],{},[725,2647,2648,2653,2655],{},[743,2649,2650],{},[452,2651,2652],{},"SENTRY_DSN",[743,2654,1582],{},[743,2656,2657],{},"üres → az integráció teljesen kikapcsolva, minden hook no-op",[725,2659,2660,2665,2675],{},[743,2661,2662],{},[452,2663,2664],{},"SENTRY_ENVIRONMENT",[743,2666,2667,2668,2671,2672],{},"dev módban ",[452,2669,2670],{},"development",", egyébként ",[452,2673,2674],{},"production",[743,2676,2677],{},"environment tag a Sentry-eventeken",[725,2679,2680,2685,2689],{},[743,2681,2682],{},[452,2683,2684],{},"SENTRY_TRACES",[743,2686,2687],{},[452,2688,2388],{},[743,2690,2691,2692,2694,2695,2698],{},"az OTel spanek Sentrybe is kiszállítódnak (kiegészítő exporterként); ",[452,2693,872],{},", ha egy collector továbbítja őket, a mintavételt az ",[452,2696,2697],{},"OTEL_TRACES_SAMPLER"," vezérli, nem külön Sentry-ráta",[725,2700,2701,2706,2710],{},[743,2702,2703],{},[452,2704,2705],{},"SENTRY_DEBUG",[743,2707,2708],{},[452,2709,872],{},[743,2711,2712],{},"a Sentry SDK saját debug-logolása stderr-re",[698,2714,2716,2717,2719],{"id":2715},"a-compose-dev-stack-env-változói-nem-egy-config-mező","A compose dev-stack env-változói (nem egy ",[452,2718,454],{}," mező)",[448,2721,2722,2723,2728,2729,2731,2732,2734,2735,1035,2738,2741],{},"Ezeket a ",[465,2724,2726],{"href":2725},"\u002Fhu\u002Fcli\u002Fnew-project#a-compose-dev-stack",[452,2727,320],{}," generálja a ",[452,2730,1328],{},"-be; egyik package ",[452,2733,454],{}," structjához sem tartoznak, a ",[452,2736,2737],{},"compose.yml",[452,2739,2740],{},"Dockerfile"," szubsztitúcióját és a Traefik routingot hajtják.",[719,2743,2744,2754],{},[722,2745,2746],{},[725,2747,2748,2750,2752],{},[728,2749,730],{},[728,2751,733],{},[728,2753,736],{},[738,2755,2756,2781,2800,2815,2830],{},[725,2757,2758,2766,2771],{},[743,2759,2760,1996,2763],{},[452,2761,2762],{},"USER_ID",[452,2764,2765],{},"GROUP_ID",[743,2767,2768],{},[452,2769,2770],{},"1000",[743,2772,2773,2774,1035,2777,2780],{},"a dev-konténerek ezzel a host UID\u002FGID-vel futnak (",[452,2775,2776],{},"id -u",[452,2778,2779],{},"id -g","), hogy a bind-mountolt forrásba írt fájlok a sajátod maradjanak, ne rootéi",[725,2782,2783,2788,2793],{},[743,2784,2785],{},[452,2786,2787],{},"APP_HOST",[743,2789,2790],{},[452,2791,2792],{},"\u003Cprojekt>.localhost",[743,2794,2795,2796,2799],{},"a modul-service-ek Traefik ",[452,2797,2798],{},"Host()"," rule-ja",[725,2801,2802,2807,2812],{},[743,2803,2804],{},[452,2805,2806],{},"MAILPIT_HOST",[743,2808,2809],{},[452,2810,2811],{},"mailpit.\u003Cprojekt>.localhost",[743,2813,2814],{},"a mailpit UI Traefik hostja",[725,2816,2817,2822,2827],{},[743,2818,2819],{},[452,2820,2821],{},"RUSTFS_S3_HOST",[743,2823,2824],{},[452,2825,2826],{},"rustfs.\u003Cprojekt>.localhost",[743,2828,2829],{},"a rustfs S3 API Traefik hostja",[725,2831,2832,2837,2842],{},[743,2833,2834],{},[452,2835,2836],{},"RUSTFS_CONSOLE_HOST",[743,2838,2839],{},[452,2840,2841],{},"rustfs-console.\u003Cprojekt>.localhost",[743,2843,2844],{},"a rustfs webkonzol Traefik hostja",[448,2846,2847,2848,1035,2851,2854,2855,495,2858,2861,2862,1035,2866,2871,2872,2875],{},"A leszállított ",[452,2849,2850],{},"MAIL_*",[452,2852,2853],{},"S3_*"," sorok (",[452,2856,2857],{},"MAIL_HOST=mailpit",[452,2859,2860],{},"S3_ENDPOINT=http:\u002F\u002Frustfs:9000",", ...) a fenti ",[465,2863,2864],{"href":119},[452,2865,2206],{},[465,2867,2868],{"href":165},[452,2869,2870],{},"s3.Config"," prefixekkel egyeznek: a mailpit\u002Frustfs compose-service ezekkel indul, de a bekötésük (a mezők felvétele a projekt ",[452,2873,2874],{},"config.go","-jába) opt-in marad.",[2877,2878,2879],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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":516,"searchDepth":540,"depth":540,"links":2881},[2882,2890,2894,2896,2902,2904,2906,2910,2914,2923],{"id":700,"depth":540,"text":701,"children":2883},[2884,2886,2888],{"id":705,"depth":559,"text":2885},"server.Config: prefix nélkül",{"id":886,"depth":559,"text":2887},"worker.Config: WORKER_*",{"id":1045,"depth":559,"text":2889},"realtime.Config: REALTIME_*",{"id":1191,"depth":540,"text":2891,"children":2892},"dbx: envPrefix:\"DB_\"",[2893],{"id":1359,"depth":559,"text":1360},{"id":1531,"depth":540,"text":2895},"queue.Config: envPrefix:\"VALKEY_\"",{"id":61,"depth":540,"text":61,"children":2897},[2898,2900],{"id":1615,"depth":559,"text":2899},"events\u002Foutbox.Config: envPrefix:\"OUTBOX_\"",{"id":1720,"depth":559,"text":2901},"events\u002Fscheduler.Config: envPrefix:\"SCHEDULER_\"",{"id":1800,"depth":540,"text":2903},"auth.Config: envPrefix:\"JWT_\"",{"id":1932,"depth":540,"text":2905},"mail\u002Fsmtp.Config: envPrefix:\"MAIL_\"",{"id":130,"depth":540,"text":130,"children":2907},[2908],{"id":2155,"depth":559,"text":2909},"notify\u002Fbroadcast.Config: CHANNEL_PREFIX",{"id":147,"depth":540,"text":147,"children":2911},[2912],{"id":2281,"depth":559,"text":2913},"storage\u002Fdriver\u002Fs3.Config: envPrefix:\"S3_\"",{"id":2407,"depth":540,"text":2915,"children":2916},"telemetry.Config: beágyazva, prefix nélkül",[2917,2919,2921],{"id":2437,"depth":559,"text":2918},"telemetry\u002Fotelx.Config: OTel bootstrap",{"id":2531,"depth":559,"text":2920},"telemetry\u002Flogx.Config: a default slog logger",{"id":2623,"depth":559,"text":2922},"telemetry\u002Fsentryx.Config: az opcionális Sentry-integráció",{"id":2715,"depth":540,"text":2924},"A compose dev-stack env-változói (nem egy Config mező)","Minden modul Config structjának minden környezeti változója, modulonként csoportosítva.","md",null,{},{"icon":207},{"title":204,"description":2925},"Pw9l-Fxi69pg1_83v2d2B-D-SqlhKqcf06mJWC0fjCg",[2933,2935],{"title":193,"path":194,"stem":195,"description":2934,"icon":196,"children":-1},"Env-kapcsolós hibariportolás az OTel tetején: errs-kód szerinti issue-csoportosítással és teljes trace-linkeléssel.",{"title":209,"path":210,"stem":211,"description":2936,"icon":212,"children":-1},"Minden mögöttes library verzióval, szereppel és hivatalos dokumentációval, modulonként csoportosítva.",1785445882120]