Zadatak
📝 **Pitanje:** **Napišite funkciju** \`safe_search(query, filter)\` koja štiti multi-tenant RAG od #1 klase curenja — nedostaje filtar \`tenant_id\`.
Pravila:
- Ako \`filter\` nije dict → podići \`ValueError("filter mora biti dict")\`.
- Ako je \`tenant_id\` odsutan ILI prazan/lažan → podići \`ValueError("SIGURNOST: filtar tenant_id je obavezan i nije prazan")\`.
- U protivnom vraća \`f"OK | {query!r} s opsegom na stanara {filter['tenant_id']!r}"\`.
Zatim ga pokrenite s četiri oblika zahtjeva (dva stvarna, dva nesigurna):
\`\`\`
OK | 'pravila povrata' obuhvaćena zakupcem 'acme'
BLOKIRAN | 'tablica plaća' | SIGURNOST: filter tenant_id je obavezan i nije prazan
OK | 'povijest narudžbi' obuhvaćena zakupcem 'globex'
BLOKIRAN | 'API ključevi' | SIGURNOST: filter tenant_id je obavezan i nije prazan
\`\`\`
Slučaj praznog niza je tajni — \`"tenant_id" u filtru\` bi prošao, ali \`filter.get("tenant_id")\` vraća krivo. **Uvijek provjeravajte istinitost, nikad samo prisutnost ključa.** Pogrešno konfigurirano sučelje koje zadano postavlja \`tenant_id\` na \`""\` uzrokovalo je curenje u stvarnom svijetu među zakupcima.
📋 Odaberite pravi odgovor.
💡 **Savjet:** Ponovno pročitajte gornju teoriju ako niste sigurni.