Add the ability to have global named filters with resource-specific mappings of the filters. For example, we may have a global "organizationFilter" which specifies that it takes one parameter, "orgId", which is the organization of the current user and should be the owning organization of the data returned by the index. For an Organization record, this is as simple as comparing the org.getId() with the supplied "orgId". For a catalog item, it might be: item.getVendorProfile().getOrganization().getId().
In the main compass config, you could map a global filter like this:
<filter-param name="orgId" type="string" />
then, in a specific resource mapping, the filter would be applied like this:
item.vendorProfile.organization.id = :orgId
Similarly for an effectivity filter:
<filter-param name="asOfDate" type="date" />
startDate <= :asOfDate <= endDate
Not sure how you do that last one...