Hi Julien,
Welcome to the forum! I'll do my best to address your questions below but first I'd like to clarify a few things that stood out in your post.
Firstly, I'd like to point out that there are several versions of LTI around. There are two legacy (now deprecated) versions: 1.0, 1.1 and 2.0, and there is the current version: 1.3 (called LTI Advantage if you include the services). Yes, the version numbers are confusing, but 1.3 is definitely the current version to follow. I would only consider building a tool using LTI 1.3 since it's the only in-support version of the standard (In fact, I've just finished doing that with Moodle 4.0 myself).
Regarding terminology, I note you've mentioned "Consumer key" and "Shared secret". These are both concepts of the deprecated versions of LTI and we don't see these in LTI 1.3 and LTI Advantage.
When you say "Instead of doing it manually", what exactly do you mean? Can you elaborate on the current manual process? The way LTI 1.3 should be configured and used is two part:
- The security contract is set up between the tool and the platform. This can either be done manually (via a fairly tedious back and forth URL configuration process), or via Dynamic Registration (see the link to the Dynamic Registration spec on this page: https://www.imsglobal.org/activity/learning-tools-interoperability), which vastly simplifies the tool configuration process. I would strongly recommend implementing dynamic registration if you haven't already. Note: You'll need an IMS login to view those specifications.
- Platform users set up links to content. This can happen via Deep Linking content picker/creation flow, or links can be manually configured in the platform (perhaps using custom params to identify specific resources on the tool). Deep linking is the superior method here IMO.
So, when you say "Manual", I'm just not sure which part of the process you're referring to. Some clarification would be great.
Now, on to the questions you had:
1) Do you have documentation of how to create that kind of file ?
All my research leads to "how to configure a new external Tool" and not to "how to build an external tool".
That file is a common cartridge file. You can find information about that at the links below. While it's possible to include an LTI 1.3 link in common cartridge, I believe the consuming platforms need to support the latest version of common cartridge for that to be supported. Honestly, I don't see many docs from tool providers describing their use of cartridges with LTI 1.3 - perhaps because of the increasing use of Deep Linking as a means to configure links.
https://www.imsglobal.org/activity/common-cartridge
https://www.imsglobal.org/cc/index.html
https://www.imsglobal.org/specs/lti/xml
2) Do you see an advantage of processing that way ?
I personally don't see much value in the cartridge approach, given you can now configure links to tool-hosted resources via Deep Linking.
3) I still don't understand where the "request" will arrive on my tool
Or how to generate a "Consumer key" and "Shared secret"
I'd suggest reading up on the LTI 1.3 Specs, so you'll have some idea of how requests, such as resource link launches and deep link launches arrive at the tool, and in what format. Essentially, as the tool, you define the endpoints for these things, and these endpoints are exchanged as part 1 of the LTI 1.3 configuration process I described above (setting up the security contract). As mentioned above in the clarifications, please ignore consumer key and shared secret if you're working with LTI Advantage. Some links which may be of use:
LTI 1.3 core: https://www.imsglobal.org/spec/lti/v1p3/
IMS Security Framework: https://www.imsglobal.org/spec/security/v1p0/
Deep linking 2: https://www.imsglobal.org/spec/lti-dl/v2p0
All these links can be found on the main LTI page: https://www.imsglobal.org/activity/learning-tools-interoperability
Hope that helps. Perhaps once you clarify the manual process you're using, I can offer more advice.
Cheers,
Jake