You are correct, a data source can only store either an integer, float or string. This means, as a work-around, you could store a collection by converting it to a string beforehand. I have seen other engineers use this to store very small files, text, JSON blobs, and arrays in a datasource. Commonly this data is then parsed or processed inside of a script in our platform.
If you are unfamiliar with scripting in our platform, you can learn more here: http://docs.exosite.com/scripting/
Let me know if you have questions about this,