{"id":170,"date":"2026-01-21T07:21:34","date_gmt":"2026-01-21T06:21:34","guid":{"rendered":"https:\/\/helloblog.io\/lv\/wordfence-wp-cli-abilities-api\/"},"modified":"2026-01-21T07:36:58","modified_gmt":"2026-01-21T06:36:58","slug":"wordfence-wp-cli-abilities-api","status":"publish","type":"post","link":"https:\/\/helloblog.io\/lv\/wordfence-wp-cli-abilities-api\/","title":{"rendered":"Wordfence vad\u012bba no termin\u0101\u013ca: jaunais WP-CLI spraudnis ar WordPress Abilities API atbalstu"},"content":{"rendered":"\n<p>WordPress dro\u0161\u012bbas uztur\u0113\u0161ana parasti noz\u012bm\u0113 regul\u0101ri ieiet admin panel\u012b, palaist sken\u0113\u0161anu, izskat\u012bt atrastos incidentus un ik pa laikam paman\u0101mi \u201cpa\u010dubin\u0101t\u201d WAF. Ja p\u0101rvaldi vair\u0101kas vietnes vai vienk\u0101r\u0161i str\u0101d\u0101 termin\u0101l\u012b, \u0161\u0101ds process \u0101tri k\u013c\u016bst par rut\u012bnu, kuru gribas automatiz\u0113t.<\/p>\n\n\n\n<p>T\u0101p\u0113c uzman\u012bbas v\u0113rts ir jaunais atv\u0113rt\u0101 koda spraudnis, kas pievieno WP-CLI atbalstu Wordfence Security un vienlaikus ir starp pirmajiem, kas ievie\u0161 jauno <strong>WordPress Abilities API<\/strong> (ien\u0101cis ar WordPress 6.9). Rezult\u0101ts: Wordfence funkcijas vari vad\u012bt gan ar klasisku CLI skript\u0113\u0161anu, gan caur standartiz\u0113tu API sl\u0101ni, ko var atkl\u0101t un lietot automatiz\u0101cijas r\u012bki un AI a\u0123enti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kas \u012bsti tiek pievienots: <code>wp wfsec<\/code> komandu telpa<\/h2>\n\n\n\n<p>Spraudnis WP-CLI pus\u0113 iedod jaunu komandu \u201cnamespace\u201d &#8211; <code>wp wfsec<\/code>. Ar to var izsaukt b\u016btisk\u0101k\u0101s Wordfence oper\u0101cijas bez vajadz\u012bbas atv\u0113rt WordPress admin paneli.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dro\u0161\u012bbas sken\u0113\u0161ana (Security Scanning)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Palaist \u0101tro vai pilno malware\/dro\u0161\u012bbas sken\u0113\u0161anu.<\/li>\n\n\n<li>Sekot sken\u0113\u0161anas progresam re\u0101llaik\u0101.<\/li>\n\n\n<li>Apskat\u012bt sken\u0113\u0161anas v\u0113sturi un detaliz\u0113tus \u017eurn\u0101lus (logus).<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ugunsm\u016bra p\u0101rvald\u012bba (Firewall Management)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Blo\u0137\u0113t vai atblo\u0137\u0113t IP adreses.<\/li>\n\n\n<li>Nor\u0101d\u012bt blo\u0137\u0113\u0161anas ilgumu un iemeslu.<\/li>\n\n\n<li>P\u0101rbaud\u012bt, vai konkr\u0113ta IP adrese jau ir blo\u0137\u0113ta.<\/li>\n\n\n<li>Iesl\u0113gt vai izsl\u0113gt WAF aizsardz\u012bbu (Web Application Firewall &#8211; lietotnes ugunsm\u016bris HTTP l\u012bmen\u012b).<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Incidentu un atradumu apstr\u0101de (Issue Tracking)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Uzskait\u012bt visus atrastos dro\u0161\u012bbas incidentus\/atradumus.<\/li>\n\n\n<li>Filtr\u0113t p\u0113c statusa (new, ignored, resolved).<\/li>\n\n\n<li>Dz\u0113st vai p\u0101rvald\u012bt individu\u0101lus draudus\/atradumus.<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Konfigur\u0101cija (Configuration)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Nolas\u012bt un iestat\u012bt Wordfence konfigur\u0101cijas v\u0113rt\u012bbas.<\/li>\n\n\n<li>P\u0101rbaud\u012bt licences statusu.<\/li>\n\n\n<li>Eksport\u0113t un import\u0113t konfigur\u0101ciju.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u0100trie piem\u0113ri ar WP-CLI<\/h2>\n\n\n\n<p>Zem\u0101k ir praktiski piem\u0113ri, kas par\u0101da tipisku ikdienas pl\u016bsmu: p\u0101rbaude \u2192 sken\u0113\u0161ana \u2192 progress \u2192 atradumu apskate \u2192 reakcija (piem., IP blo\u0137\u0113\u0161ana) \u2192 licences p\u0101rbaude.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># P\u0101rbaud\u012bt kop\u0113jo Wordfence statusu\nwp wfsec status\n\n# Palaist pilno dro\u0161\u012bbas sken\u0113\u0161anu\nwp wfsec scan start --type=full\n\n# Sekot sken\u0113\u0161anas progresam\nwp wfsec scan status\n\n# Uzskait\u012bt visus dro\u0161\u012bbas incidentus\/atradumus\nwp wfsec issues ls --status=all\n\n# Blo\u0137\u0113t IP adresi uz 24 stund\u0101m\nwp wfsec firewall block 192.168.1.100 --duration=86400 --reason=&quot;Brute force attempt&quot;\n\n# P\u0101rbaud\u012bt licences statusu\nwp wfsec license status\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#6A737D\"># P\u0101rbaud\u012bt kop\u0113jo Wordfence statusu<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> status<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Palaist pilno dro\u0161\u012bbas sken\u0113\u0161anu<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> scan<\/span><span style=\"color:#9ECBFF\"> start<\/span><span style=\"color:#79B8FF\"> --type=full<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Sekot sken\u0113\u0161anas progresam<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> scan<\/span><span style=\"color:#9ECBFF\"> status<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Uzskait\u012bt visus dro\u0161\u012bbas incidentus\/atradumus<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> issues<\/span><span style=\"color:#9ECBFF\"> ls<\/span><span style=\"color:#79B8FF\"> --status=all<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># Blo\u0137\u0113t IP adresi uz 24 stund\u0101m<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> firewall<\/span><span style=\"color:#9ECBFF\"> block<\/span><span style=\"color:#79B8FF\"> 192.168.1.100<\/span><span style=\"color:#79B8FF\"> --duration=86400<\/span><span style=\"color:#79B8FF\"> --reason=<\/span><span style=\"color:#9ECBFF\">\"Brute force attempt\"<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># P\u0101rbaud\u012bt licences statusu<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> wfsec<\/span><span style=\"color:#9ECBFF\"> license<\/span><span style=\"color:#9ECBFF\"> status<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Automatiz\u0101cijai noder\u012bgi: komandas atbalsta <code>--format=json<\/code>, kas \u013cauj rezult\u0101tu \u0113rti apstr\u0101d\u0101t shell skriptos, CI uzdevumos vai jebkur\u0101 cit\u0101 orchestration r\u012bk\u0101.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Abilities API: k\u0101p\u0113c tas ir svar\u012bg\u0101k par v\u0113l vienu CLI wrapperi<\/h2>\n\n\n\n<p>WP-CLI integr\u0101cija pati par sevi ir \u013coti noder\u012bga, bet interesant\u0101k\u0101 da\u013ca ir <strong>WordPress Abilities API<\/strong> ievie\u0161ana. Abilities API ir WordPress 6.9 ieviests standartiz\u0113ts interfeiss, kas \u013cauj automatiz\u0101cijas r\u012bkiem un AI a\u0123entiem <em>atkl\u0101t<\/em> (discover) un <em>izsaukt<\/em> WordPress iesp\u0113jas caur apraksto\u0161u, sh\u0113mu valid\u0113tu API, bez katram spraudnim rakstur\u012bga \u201ccustom glue code\u201d.<\/p>\n\n\n\n<p>Praks\u0113 tas noz\u012bm\u0113, ka Wordfence oper\u0101cijas var k\u013c\u016bt par da\u013cu no pla\u0161\u0101kas automatiz\u0101cijas: piem\u0113ram, AI asistents var nolas\u012bt sken\u0113\u0161anas statusu, paman\u012bt anom\u0101liju, izvilkt incidentu sarakstu, saskait\u012bt kritiskos atradumus un ierosin\u0101t vai pat izpild\u012bt rut\u012bnas darb\u012bbas &#8211; un tas viss, izmantojot standartiz\u0113tu saskarni.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0160\u012b spraud\u0146a public\u0113t\u0101s \u201cabilities\u201d (7 gab.)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>scan-status<\/strong> &#8211; nolas\u012bt pa\u0161reiz\u0113jo sken\u0113\u0161anas st\u0101vokli un progresu.<\/li>\n\n\n<li><strong>scan-start<\/strong> &#8211; programmiski uzs\u0101kt dro\u0161\u012bbas sken\u0113\u0161anu.<\/li>\n\n\n<li><strong>issues-list<\/strong> &#8211; sa\u0146emt atrasto dro\u0161\u012bbas incidentu\/atradumu sarakstu.<\/li>\n\n\n<li><strong>issues-count<\/strong> &#8211; dab\u016bt atradumu skaitu p\u0113c smaguma (severity).<\/li>\n\n\n<li><strong>firewall-status<\/strong> &#8211; p\u0101rbaud\u012bt WAF st\u0101vokli.<\/li>\n\n\n<li><strong>firewall-block<\/strong> &#8211; blo\u0137\u0113t IP adreses caur API.<\/li>\n\n\n<li><strong>license-status<\/strong> &#8211; nolas\u012bt licences inform\u0101ciju.<\/li>\n\n<\/ul>\n\n\n\n<p>Ar \u0161\u0101du sp\u0113ju komplektu vari b\u016bv\u0113t AI balst\u012btu dro\u0161\u012bbas monitoringu, integr\u0113t Wordfence savos iek\u0161\u0113jos dashboardos vai vienk\u0101r\u0161i uztic\u0113t autom\u0101tikai regul\u0101r\u0101s p\u0101rbaudes (piem., katru nakti piln\u0101 sken\u0113\u0161ana + atskaites izvilk\u0161ana JSON form\u0101 + pazi\u0146ojums, ja kritisko atradumu skaits pieaug).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Autentifik\u0101cija<\/h3>\n\n\n\n<p>Autentifik\u0101cijai tiek izmantotas <strong>WordPress Application Passwords<\/strong> ar <strong>Basic Auth<\/strong>. Tas ir \u0113rts un labi saprotams risin\u0101jums automatiz\u0101cijas scen\u0101rijiem, kur vajag dro\u0161u, atsevi\u0161\u0137i revok\u0113jamu piek\u013cuvi konkr\u0113t\u0101m darb\u012bb\u0101m.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pras\u012bbas (Requirements)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>WordPress 6.9+<\/li>\n\n\n<li>PHP 8.0+<\/li>\n\n\n<li>WP-CLI 2.5+<\/li>\n\n\n<li>Wordfence Security spraudnis (bezmaksas vai premium)<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Lejupiel\u0101de un uzst\u0101d\u012b\u0161ana<\/h2>\n\n\n\n<p>Ja gribi s\u0101kt \u0101tri, vari lejupiel\u0101d\u0113t izlaidumu un aug\u0161upiel\u0101d\u0113t spraudni sav\u0101 <code>\/wp-content\/plugins\/<\/code> direktorij\u0101.<\/p>\n\n\n<a href=\"https:\/\/github.com\/trueqap\/wpcli-for-wordfence\/releases\/download\/v1.0.0\/wpcli-for-wordfence-1.0.0.zip\" class=\"download-card\" download>\n                <span class=\"download-icon\"><i class=\"fa-duotone fa-file-zipper\"><\/i><\/span>\n                <span class=\"download-info\">\n                    <span class=\"download-title\">Download WP CLI for Wordfence v1.0.0<\/span>\n                    <span class=\"download-meta\"><span class=\"download-filename\">wpcli-for-wordfence-1.0.0.zip<\/span><\/span>\n                <\/span>\n                <span class=\"download-action\"><i class=\"fa-duotone fa-arrow-down-to-line\"><\/i><\/span>\n            <\/a>\n\n\n<p>Ja str\u0101d\u0101 ar Bedrock tipa uzb\u016bvi, spraudni paredz\u0113ts uzst\u0101d\u012bt ar\u012b caur Composer (\u012bpa\u0161i \u0113rti projektiem, kur atkar\u012bbas tiek p\u0101rvald\u012btas deklarat\u012bvi un ieviestas caur CI).<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">\u012as\u0101 doma, ko pa\u0146emt l\u012bdzi<\/h4>\n\n\n<p><code>wp wfsec<\/code> sedz praktisk\u0101s ikdienas oper\u0101cijas (sken\u0113\u0161ana, WAF, incidenti, konfigur\u0101cija), bet Abilities API atbalsts pace\u013c \u0161o spraudni cit\u0101 l\u012bmen\u012b: Wordfence funkcijas k\u013c\u016bst viegli \u201catrodamas\u201d un izsaucamas standartiz\u0113t\u0101 veid\u0101 automatiz\u0101cijai un AI a\u0123entiem.<\/p>\n\n<\/div>\n\n\n<div class=\"references-section\">\n                <h2>Atsauces \/ Avoti<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/github.com\/trueqap\/wpcli-for-wordfence\" target=\"_blank\" rel=\"noopener noreferrer\">WP-CLI &amp; Abilities API for Wordfence: Manage Security from Terminal and AI Agents<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Ja Wordfence izmanto ikdien\u0101, bet negribi dz\u012bvot WP admin\u0101, \u0161is atv\u0113rt\u0101 koda spraudnis iedod `wp wfsec` komandas sken\u0113\u0161anai, WAF p\u0101rvald\u012bbai un draudu apstr\u0101dei &#8211; plus standartiz\u0113tu Abilities API, ko var izmantot automatiz\u0101cija un AI a\u0123enti.<\/p>\n","protected":false},"author":52,"featured_media":171,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[92,67,15,10,7],"class_list":["post-170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-drosiba","tag-abilities-api","tag-automatizacija","tag-wordfence","tag-wordpress","tag-wp-cli"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/posts\/170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/comments?post=170"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/posts\/170\/revisions"}],"predecessor-version":[{"id":172,"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/posts\/170\/revisions\/172"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/media\/171"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/media?parent=170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/categories?post=170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/lv\/wp-json\/wp\/v2\/tags?post=170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}