hotfix 1.1.1: 2meet-data-optimizer — keep private fields out of the public listings REST endpoints #5
Reference in New Issue
Block a user
Delete Branch "hotfix/1.1.1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Security hotfix (Critical). The public
GET /wpdo/v1/listingsand/wpdo/v1/listings/{id}returned every registered hot / cold field to anonymous visitors, becauseshow_in_restdefaulted to true and no add-on set it. Confirmed on dev36: infocardstmeetic_ig_access_token_enc/tmeetic_ig_token_expiry/tmeetic_ig_user_idand WooCommerce_purchase_note. Present since 1.0.x. No site currently holds such data behind an enabled endpoint (checked 2026-09-26).Changes
show_in_restnow defaults to false; fields must be declared public.TMDO_Schema_Registry::rest_exposable(): protected (underscore) keys and credential-like keys are never exposed, whatever they declare.Compatibility
Fields that relied on the old default must add
'show_in_rest' => true(or use the existingtmdo_rest_listing_visible_fieldsfilter).Verification
unit 690 (+3), integration 525 (+3, RED on 1.1.0), live suite
rest2/2 (RED on 1.1.0), all live suites 49/49 on dev36, phpcs 0, phpstan OK.- show_in_rest defaulted to true, so GET /wpdo/v1/listings and /listings/{id} (public by design) returned every registered hot / cold field to anonymous visitors — e.g. infocards tmeetic_ig_access_token_enc / _token_expiry / _user_id and WooCommerce _purchase_note (confirmed on dev36) - Fields are private unless registered with show_in_rest => true; protected (underscore) and credential-like keys (token, secret, password, api key, private key, credential, salt, nonce) are never exposed - Zone A list path no longer returns whole rows when nothing is public, and filters / orderby accept public columns only - Version 1.1.1; CHANGELOG, readme - Verify: unit 690 (+3), integration 525 (+3 private-column tests, RED on 1.1.0), live suite rest 2/2 (RED on 1.1.0), all live 49/49, phpcs 0, stan OK