Querybase of Folder Query Capability URI change in the latest DOORS Next Generation
Previous version DNG response:
Query: https://rb-alm-02-t4.de.aaa.com/rm/oslc_rm/_lcBw0GC6Eee-NfIX3gcLkA/services.xml
<oslc:QueryCapability>
<dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Folder Query Capability</dcterms:title>
<oslc:queryBase rdf:resource="https://rb-alm-02-t4.de.aaa.com/rm/folders?oslc.where=public_rm:parent=https://rb-alm-02-t4.de.aaa.com/rm/folders/_lcBw0GC6Eee-NfIX3gcLkA"/>
</oslc:QueryCapability>
Latest version of DNG project response:
<oslc:queryCapability>
<oslc:QueryCapability>
<dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Folder Query Capability</dcterms:title>
<oslc:queryBase rdf:resource="https://rb-ubk-clm-02.de.aaa.com:9443/rm/folders?oslc.where=public_rm:parent=https%3A%2F%2Frb-ubk-clm-02.de.aaa.com%3A9443%2Frm%2Fprocess%2Fproject-areas%2F_lcBw0GC6Eee-NfIX3gcLkA"/>
</oslc:QueryCapability>
</oslc:queryCapability>
So "oslc.where=public_rm:parent " in the resource attribute of querybase points to project root url instead of folder url. Why is this change ? Any background reasons.
2 answers
You're seeing that we changed something about the query capability URLs between versions. As long as you use discovery to find the Folder query capability (i.e. don't hard-code it into your code), then query will continue to work across versions.
Comments
I'd also argue that the older query base URL include an oslc.where
parameter is confusing. While OSLC discovery doesn't place any restrictions on the query base URL, including an oslc.where
parameter seems bizarre. A user would expect to use their own oslc.where
parameter value without expecting to preserve what was provided in the base URL. So a DNG change to avoid that confusion is a change for the better.
AFAICT both query capability URLs include oslc.where - it's the value in the query that has changed.
oslc.where
encoded into the base URL is not conformant with the OSLC Query specification - see https://docs.oasis-open-projects.org/oslc-op/query/v3.0/os/oslc-query.html#oslc.where.
URIs values should be enclosed in angle brackets. For example instead of:
public_rm:parent=https%3A%2F%2Frb-ubk-clm-02.de.aaa.com%3A9443%2Frm%2Fprocess%2Fproject-areas%2F_lcBw0GC6Eee-NfIX3gcLkA
it should be:
public_rm:parent=<https%3A%2F%2Frb-ubk-clm-02.de.aaa.com%3A9443%2Frm%2Fprocess%2Fproject-areas%2F_lcBw0GC6Eee-NfIX3gcLkA>
Comments
Ian Barnard
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER Jun 13 '22, 10:24 a.m.What version+ifix are your "previous" and "latest" versions?