{"id":89143,"date":"2020-07-19T07:42:22","date_gmt":"2020-07-19T05:42:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm"},"modified":"2020-07-19T07:42:22","modified_gmt":"2020-07-19T05:42:22","slug":"avtogeneracziya-sekretov-v-helm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm","title":{"rendered":"Shk\u00ebmbimi automatik i sekreteve n\u00eb Helm","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Shk\u00ebmbimi automatik i sekreteve n\u00eb Helm\" src=\"\/wp-content\/uploads\/2020\/07\/e2ba6ab1bf5b50c7cfcbf62d56ff15da.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ekipa <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/containers\/\">Kubernetes aaS nga Mail.ru<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/workfloplus\/reusing-auto-generated-helm-secrets-a7426403d4bb\">p\u00ebrktheu nj\u00eb sh\u00ebnim t\u00eb shkurt\u00ebr<\/a><\/noindex> rreth se si t\u00eb gjeneroni automatikisht sekrete Helm gjat\u00eb p\u00ebrdit\u00ebsimeve. M\u00eb posht\u00eb \u00ebsht\u00eb teksti nga autori i artikullit \u2014 drejtori teknik i Intoware, kompanis\u00eb zhvilluse t\u00eb zgjidhjeve SaaS. <\/p>\n<p>Kontejner\u00ebt jan\u00eb t\u00eb mrekulluesh\u00ebm. Fillimisht isha nj\u00eb kund\u00ebrshtar i kontejnereve (m\u00eb vjen turp ta pranoj), por tani e mb\u00ebshtes plot\u00ebsisht p\u00ebrdorimin e k\u00ebsaj teknologjie. N\u00ebse po e lexoni k\u00ebt\u00eb, shpresoj q\u00eb keni kaluar me sukses n\u00ebp\u00ebr detet Docker, e keni kuptuar p\u00ebrpar\u00ebsit\u00eb e Kubernetes dhe e keni b\u00ebr\u00eb jet\u00ebn tuaj shum\u00eb m\u00eb t\u00eb leht\u00eb me Helm.<\/p>\n<p>Megjithat\u00eb, disa gj\u00ebra jan\u00eb duksh\u00ebm m\u00eb t\u00eb komplikuara se sa duhen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nSi t\u00eb gjeneroni automatikisht sekrete gjat\u00eb p\u00ebrdit\u00ebsimeve?<\/p>\n<p>Sekreti i Kubernetes \u00ebsht\u00eb nj\u00eb burim q\u00eb p\u00ebrmban \u00e7ifte \u00e7el\u00ebs\/vler\u00eb q\u00eb d\u00ebshironi t\u00eb p\u00ebrdorni n\u00eb kodin tuaj. K\u00ebto mund t\u00eb jen\u00eb lidhje n\u00eb baza t\u00eb dh\u00ebnash, fjal\u00ebkalime t\u00eb postave elektronike dhe k\u00ebshtu me radh\u00eb. Duke p\u00ebrdorur sekrete, krijoni nj\u00eb ndarje t\u00eb qart\u00eb midis kodit dhe konfigurimeve, \u00e7ka lejon q\u00eb t\u00eb konfiguroheni leht\u00ebsisht p\u00ebr shp\u00ebrndarje t\u00eb ndryshme pa ndryshuar baz\u00ebn e kodit.<\/p>\n<p>Nj\u00eb situat\u00eb e zakonshme \u00ebsht\u00eb kur dy module duhet t\u00eb bashk\u00ebveprojn\u00eb p\u00ebrmes nj\u00eb \u00e7el\u00ebsi t\u00eb p\u00ebrbashk\u00ebt. Askush jasht\u00eb klasterit nuk duhet ta dij\u00eb k\u00ebt\u00eb \u00e7el\u00ebs, pasi ai \u00ebsht\u00eb i destinuar p\u00ebr lidhjen \"nga nj\u00ebri te tjetri\" brenda klasterit.<\/p>\n<h2>Krijimi i sekreteve<\/h2>\n<p>\nNormalisht, p\u00ebr t\u00eb krijuar nj\u00eb sekret n\u00eb Helm, duhet:<\/p>\n<ul>\n<li>t\u00eb p\u00ebrshkruani sekretin n\u00eb skedarin e vlerave;<\/li>\n<li>t\u00eb rishkruani at\u00eb gjat\u00eb procesit t\u00eb shp\u00ebrndarjes;<\/li>\n<li>t\u00eb referoheni te ai brenda shp\u00ebrndarjes\/podit;<\/li>\n<li>\u2026 fitimi !<\/li>\n<\/ul>\n<p>\nNormalisht, duket disi k\u00ebshtu:<\/p>\n<pre><code class=\"plaintext\">apiVersion: v1\nkind: Secret\nmetadata:\n  name: my-super-awesome-api-key\ntype: Opaque\nstringData:\n  apiKey: {{ .Values.MyApiKeySecret | quote }}\n<\/code><\/pre>\n<p>\n<i>Nj\u00eb sekret i thjesht\u00eb i Kubernetes, duke p\u00ebrdorur vlerat nga values.yml<\/i><\/p>\n<p>Por, le t\u00eb themi se nuk d\u00ebshironi ta specifikoni sekretin tuaj n\u00eb skedarin e vlerave.<\/p>\n<p>Ka shum\u00eb variante kur nj\u00eb \u00e7el\u00ebs i p\u00ebrbashk\u00ebt k\u00ebrkohet p\u00ebr shp\u00ebrndarje q\u00eb duhet t\u00eb gjenerohet gjat\u00eb instalimit.<\/p>\n<p>N\u00eb shembullin e m\u00ebsip\u00ebrm me lidhjen midis moduleve, ndarja e sekretit jasht\u00eb shp\u00ebrndarjes nuk \u00ebsht\u00eb e d\u00ebshirueshme. Prandaj, \u00ebsht\u00eb shum\u00eb e d\u00ebshirueshme q\u00eb Helm t\u00eb ket\u00eb mekanizma p\u00ebr krijimin automatik t\u00eb sekreteve pa nevoj\u00ebn p\u00ebr ta specifikuar at\u00eb drejtp\u00ebrdrejt.<\/p>\n<h2>Hukodat<\/h2>\n<p>\nHuk\u00ebt lejojn\u00eb ekzekutimin e kodit n\u00eb vende t\u00eb caktuara gjat\u00eb procesit t\u00eb instalimit. Mund t\u00eb ket\u00eb nj\u00eb detyr\u00eb konfigurimi q\u00eb duhet t\u00eb ekzekutohet pas instalimit t\u00eb par\u00eb, ose ndoshta \u00ebsht\u00eb e nevojshme t\u00eb b\u00ebhet nj\u00eb pastrim para se t\u00eb kryhet ndonj\u00eb p\u00ebrdit\u00ebsim.<\/p>\n<p>P\u00ebr zgjidhjen e problemit ton\u00eb t\u00eb shtimit t\u00eb \u00e7el\u00ebsit, i gjeneruar gjat\u00eb instalimit, huk\u00ebt e parainstaluara jan\u00eb nj\u00eb zgjidhje ideale. Por ka nj\u00eb kap\u00ebse: nuk mund t\u00eb gjeneroni automatikisht nj\u00eb sekret nj\u00eb her\u00eb gjat\u00eb p\u00ebrdit\u00ebsimit. Huk\u00ebt do t\u00eb funksionojn\u00eb me \u00e7do p\u00ebrdit\u00ebsim.<\/p>\n<p>N\u00ebse keni gjeneruar sekretin tuaj dhe instalimi i par\u00eb ende nuk ka ndodhur, at\u00ebher\u00eb ndaloni s\u00eb lexuari, huka e parainstaluar \u00ebsht\u00eb e shk\u00eblqyer p\u00ebr ju.<\/p>\n<p>Por n\u00ebse sekreti \u00ebsht\u00eb pjes\u00eb e p\u00ebrdit\u00ebsimit (ndoshta nj\u00eb ve\u00e7ori e re q\u00eb nuk ishte gjat\u00eb instalimit), at\u00ebher\u00eb \u00ebsht\u00eb e bezdisshme q\u00eb nuk \u00ebsht\u00eb e mundur t\u00eb krijoni nj\u00eb huka parainstaluar q\u00eb t\u00eb funksionoj\u00eb vet\u00ebm nj\u00eb her\u00eb.<\/p>\n<h2>Funksionet<\/h2>\n<p>\nFunksionet Helm lejojn\u00eb shtimin e elementeve t\u00eb ndryshme t\u00eb skripteve n\u00eb skenaret e shp\u00ebrndarjes.<\/p>\n<pre><code class=\"plaintext\">apiVersion: v1\nkind: Secret\nmetadata:\n  name: my-super-awesome-api-key\ntype: Opaque\nstringData:\n  apiKey: {{ uuidv4 | quote }} #Gjeneroni nj\u00eb UUID t\u00eb ri dhe citojeni at\u00eb\n<\/code><\/pre>\n<p>\nN\u00eb k\u00ebt\u00eb shembull, vlera e sekretit apiKey do t\u00eb jet\u00eb nj\u00eb UUID i ri, i gjeneruar gjat\u00eb instalimit.<\/p>\n<p>Helm p\u00ebrfshin nj\u00eb bibliotek\u00eb t\u00eb gjer\u00eb funksionesh, q\u00eb p\u00ebrdor funksione mahnit\u00ebse t\u00eb shabllonit GO dhe bibliotek\u00ebn e funksioneve Sprig p\u00ebr t\u00eb krijuar shp\u00ebrndarje t\u00eb personalizuara.<\/p>\n<h3>Funksioni Lookup<\/h3>\n<p>\nDeri n\u00eb Helm 3.1 \u00ebsht\u00eb shtuar <noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/docs\/chart_template_guide\/functions_and_pipelines\/\">funksioni Lookup<\/a><\/noindex>, i cili lejon t\u00eb k\u00ebrkoni nj\u00eb shp\u00ebrndarje ekzistuese dhe:<\/p>\n<ul>\n<li>t\u00eb kontrolloni ekzistenc\u00ebn e burimeve;<\/li>\n<li>t\u00eb ktheni vler\u00ebn e burimit ekzistues p\u00ebr p\u00ebrdorim t\u00eb m\u00ebtejsh\u00ebm.<\/li>\n<\/ul>\n<p>\nDuke p\u00ebrdorur t\u00eb dyja k\u00ebto mund\u00ebsi, mund t\u00eb krijojm\u00eb nj\u00eb sekret dinamik t\u00eb gjeneruar nj\u00eb her\u00eb!<\/p>\n<pre><code class=\"plaintext\"># 1. \u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u0430 \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 $secret\n{{- $secret := (lookup &quot;v1&quot; &quot;Secret&quot; .Release.Namespace &quot;some-awesome-secret&quot; -}}\napiVersion: v1\nkind: Secret\nmetadata:\n  name: some-awesome-secret\ntype: Opaque\n\n# 2. \u0415\u0441\u043b\u0438 \u0441\u0435\u043a\u0440\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0432\u0437\u044f\u0442\u044c \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043a apiKey (\u0441\u0435\u043a\u0440\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Base64, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043b\u044e\u0447 &quot;data&quot;)\n{{ if $secret -}}\ndata:\n  apiKey: {{ $secret.data.apiKey }}\n\n# 3. \u0415\u0441\u043b\u0438 \u0441\u0435\u043a\u0440\u0435\u0442 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0433\u043e (\u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 &quot;stringData&quot;, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435)!\n{{ else -}}\nstringData:\n  apiKey: {{ uuidv4 | quote }}\n{{ end }}\n<\/code><\/pre>\n<p>\nSa her\u00eb q\u00eb nj\u00eb p\u00ebrdit\u00ebsim i ri aplikohet n\u00eb server, Helm do t\u00eb gjeneroj\u00eb ose nj\u00eb vler\u00eb t\u00eb re t\u00eb sekretit (n\u00ebse sekreti nuk ekziston tashm\u00eb), ose do t\u00eb ribashk\u00ebngjis\u00eb vler\u00ebn ekzistuese.<\/p>\n<p>Suksese!<\/p>\n<p><strong>\u00c7far\u00eb tjet\u00ebr t\u00eb lexoni mbi k\u00ebt\u00eb tem\u00eb<\/strong>:<\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/tri-urovnya-avtomasshtabirovaniya-v-kubernetes-kak-ikh-effektivno-ispolzovat\">Tre nivele auto-skalimi n\u00eb Kubernetes dhe si t'i p\u00ebrdorni ato n\u00eb m\u00ebnyr\u00eb efektive<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/490362\/\">Kubernetes n\u00eb stilin e pirateris\u00eb me nj\u00eb model zbatimi<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tele.click\/k8s_mail\">Kanalin ton\u00eb Rreth Kubernetes n\u00eb Telegram<\/a><\/noindex>.<\/li>\n<\/ol>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/507376\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 Kubernetes aaS \u043e\u0442 Mail.ru \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0443\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u043a\u0440\u0435\u0442\u044b Helm \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438. \u0414\u0430\u043b\u0435\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 Intoware, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 SaaS-\u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u2014 \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0431\u044b\u043b \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 (\u0441\u0442\u044b\u0434\u043d\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c\u0441\u044f), \u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u044d\u0442\u043e, \u0442\u043e, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043b\u0430\u0432\u0430\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":89144,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-89143","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u0430\u043d\u0434\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u0432\u0442\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u0432 Helm | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u0430\u043d\u0434\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-19T05:42:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-19T05:42:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Autogjenerimi i sekreteve n\u00eb Helm | ProHoster","description":"Ekipa","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u0432\u0442\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u0432 Helm | ProHoster","og:description":"\u041a\u043e\u043c\u0430\u043d\u0434\u0430","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-19T05:42:22+00:00","article:modified_time":"2020-07-19T05:42:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"89143","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:15:24","updated":"2022-10-05 12:06:33","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/89143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=89143"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/89143\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/89144"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=89143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=89143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=89143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}