Commit 0b70d33
committed
fix(adagents): address review on publisher_properties resolution (#750)
Tightens authorization-decision semantics in `_resolve_agent_properties`:
- Dedup key is now `(publisher_domain, property_id)` instead of bare `property_id`,
so the same id under different parent domains stays distinct and missing-id
properties no longer collapse to a single entry. Missing `property_id` now
raises `AdagentsValidationError` (fail-fast per CLAUDE.md).
- New `_validate_publisher_properties_selector` rejects two illegal selector
shapes per adcp#4827: mixing scalar `publisher_domain` with array
`publisher_domains`, and pairing `selection_type='by_id'` with the compact
`publisher_domains[]` fan-out form (no defined per-domain id partitioning).
- `_resolve_inline` fails closed on unknown `selection_type` (returns `[]`
instead of all candidates) and on `selection_type='by_tag'` with empty
`property_tags` — both are authorization decisions where a permissive
fallback would silently grant access on schema drift.
- Documents that parent-file `revoked_publisher_domains[]` (when implemented)
is honored transparently because revoked domains are pre-filtered out of the
per-domain index before resolution.
Adds tests covering each rejection path, the new fail-closed behaviors, and
the missing-property_id fail-fast. Adds a 2.0s wall-clock bound to the
cafemedia scale test to catch O(N×M) regressions without depending on
pytest-timeout (not currently a project dep).1 parent 2f8f087 commit 0b70d33
2 files changed
Lines changed: 217 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
955 | 955 | | |
956 | 956 | | |
957 | 957 | | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
958 | 963 | | |
959 | 964 | | |
960 | 965 | | |
| |||
969 | 974 | | |
970 | 975 | | |
971 | 976 | | |
972 | | - | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
973 | 981 | | |
974 | 982 | | |
975 | 983 | | |
| 984 | + | |
976 | 985 | | |
977 | 986 | | |
978 | 987 | | |
979 | 988 | | |
980 | 989 | | |
981 | | - | |
982 | | - | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
983 | 1001 | | |
984 | 1002 | | |
985 | 1003 | | |
| |||
989 | 1007 | | |
990 | 1008 | | |
991 | 1009 | | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
992 | 1037 | | |
993 | 1038 | | |
994 | 1039 | | |
| |||
1021 | 1066 | | |
1022 | 1067 | | |
1023 | 1068 | | |
1024 | | - | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
1025 | 1072 | | |
1026 | 1073 | | |
1027 | 1074 | | |
| |||
1033 | 1080 | | |
1034 | 1081 | | |
1035 | 1082 | | |
1036 | | - | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
1037 | 1086 | | |
1038 | | - | |
| 1087 | + | |
| 1088 | + | |
1039 | 1089 | | |
1040 | 1090 | | |
1041 | 1091 | | |
1042 | 1092 | | |
1043 | 1093 | | |
1044 | | - | |
1045 | | - | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
1046 | 1098 | | |
1047 | 1099 | | |
1048 | 1100 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1478 | 1478 | | |
1479 | 1479 | | |
1480 | 1480 | | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
| 1576 | + | |
| 1577 | + | |
| 1578 | + | |
| 1579 | + | |
| 1580 | + | |
| 1581 | + | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
| 1602 | + | |
| 1603 | + | |
| 1604 | + | |
| 1605 | + | |
| 1606 | + | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
1481 | 1614 | | |
1482 | 1615 | | |
1483 | 1616 | | |
1484 | 1617 | | |
1485 | 1618 | | |
1486 | 1619 | | |
1487 | 1620 | | |
| 1621 | + | |
| 1622 | + | |
1488 | 1623 | | |
1489 | 1624 | | |
1490 | 1625 | | |
1491 | 1626 | | |
1492 | 1627 | | |
1493 | | - | |
1494 | | - | |
1495 | | - | |
1496 | | - | |
1497 | | - | |
1498 | | - | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
1499 | 1636 | | |
1500 | 1637 | | |
1501 | | - | |
1502 | | - | |
1503 | | - | |
1504 | | - | |
1505 | | - | |
1506 | | - | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
1507 | 1646 | | |
1508 | 1647 | | |
1509 | 1648 | | |
| |||
1523 | 1662 | | |
1524 | 1663 | | |
1525 | 1664 | | |
| 1665 | + | |
1526 | 1666 | | |
| 1667 | + | |
| 1668 | + | |
| 1669 | + | |
| 1670 | + | |
| 1671 | + | |
1527 | 1672 | | |
1528 | 1673 | | |
1529 | 1674 | | |
| |||
0 commit comments