Key points for us are:
- Access rights for each project.
That right there is the clincher. The only way to achieve that is multiple repositories.
It is important to understand that EA's security model is just fluff. It does not actually provide any security.
Actual security is provided by the underlying database, and every user account that accesses an EA project needs read and write privileges in the database -- even accounts without the Update Diagrams and Update Elements permissions.
This means that any user account with access to the database can access all the data in it, both for reading and writing, using raw SQL.
So if you have information security requirements that say that people should only have access to certain EA projects, the only way is to place those projects in different repositories and assign access rights to the user accounts accordingly.
If on the other hand you're not concerned with information security between projects but just want to ensure that team A doesn't make changes to team B's models, you can achieve that with EA's "security". Even with that though, read access applies to the whole project: it's only writing that's restricted.
Until v14's row-level access has been confirmed as viable. Then maybe you can "hide" those confidential portions of the repository using that.
It isn't, and you can't. The model introduced in v14 is strictly hierarchical, meaning you can't set one part of a project up to be visible to team A only, and another to team B only. If team A should not be able to read team B's area you can achieve that by giving team B higher privileges, but that means they will also be able to ream team A's area.
So that fell over right out of the gate, I'm sorry to say.
/Uffe