The spec says (LTI 2p1, sec 4.1):
roles=Instructor (Optional)
A comma-separated list of URI values for roles. If this list is non-empty, it should contain at least one role
from the LIS System Role, LIS Institution Role, or LIS Context Role vocabularies (See Appendix A).
The assumed namespace of these URIs is the LIS vocabulary of LIS Context Roles so Tool Consumers can use the
handles when the intent is to refer to an LIS context role. If the Tool Consumer wants to include a role
from another namespace, a fully-qualified URI should be used. Usage of roles from non-LIS vocabularies is
discouraged as it may limit interoperability.
So, technically, our tool consumer SHOULD contain at least one role from the LIS vocabulary, according to the rules about which you can use URIs for and which you can use handles for. If we use a vendor-specific role, I SHOULD use a fully-qualified URI, and use of those is "discouraged".
But we fail the LTI consumer Cert test because the plain string "Student" is somehow considered MUST NOT SEND, not merely 'discouraged'. This appears to fail even if we ALSO send a fully qualified role from the LIS Context
It seems like the spec language should be changed or the cert test should be relaxed, or some other harmonization between the two is needed.
To be clear, our platform launches to LTI 1.1 and LTI Outcomes providers just fine in the real world, and we are keen not to have to write Volkswagen-Diesel emissions test type code switches just to pass conformance.
Re: Spec for roles format says "Should" but the Cert test for Co
Let me see if I have this right. You are looking to certify a product which does not use the standard roles? Is that correct?
Re: Spec for roles format says "Should" but the Cert test for Co
Note that the role of "Student" fails because this is not a fully-qualified URN and it is not a valid LIS context role (which is assumed when a role name is not a URN). You need to give a full URN if you wish to use a role of Student.
The spec doesn't characterize
The spec doesn't characterize this case as a NEED or a MUST though. If we send a role that IS valid AND we send other role strings, we ought not fail if the spec merely characterizes these behaviors as recommended behavior we SHOULD do
Re: The spec doesn't characterize
I agree with you. What role(s) were you sending? The one you mentioned ("Student") is not valid (as per my previous message) and so would have caused the test to fail if it was present.