Hi Malte,
On Mar 2, 2015, at 19:38, <[email protected]> wrote:
> Ok, grabbing all my types this way worked fine, thanks for the tip. But now
> it would be good to have more details on how exactly 3rd-party-types need to
> be assigned to workspace. I did it the way i used to do (via "Aggregation"
> between the type and the workspace, the workspace playing the "Child" role)
> but i keep getting WARNINGs on "my.domain.type_x is not assigned to any
> workspace ... READ .."
Since DM 4.5 you can't do the workspace assignment by manually creating
Aggregation associations. The workspace assignment is now stored as a database
property. The Aggregations remain there only for visualization purpose. They
are not supposed to be manipulated by the user.
In the Webclient use the "Assign to Workspace" command from the topic context
menu instead... Ohh, wait a minute ... this will not work. The Assign to
Workspace command is only available when you have WRITE permission for that
topic, which you don't have as there is no workspace assignment yet. Damn.
So, the only way to assign a type is programmatically, either via Java API or
REST API. From Java you'll use this method from the Workspaces service:
void assignTypeToWorkspace(Type type, long workspaceId)
This method assigns the following items:
- the given Type
- the type's View Configuration
- the type's Association Definitions (only in 4.6-SNAPSHOT)
- the Association Definition's View Configuration (only in 4.6-SNAPSHOT)
Note: this method does not work recursively. In case of a composite type you
might want to call it for the child types as well.
There is also a REST API to make a workspace assignment:
PUT /workspace/{workspace_id}/object/{object_id}
However this is not dedicated to types, but works generically on all
topics/associations (=objects).
So, the type's View Configuration and other parts (see above) possibly need an
extra request.
Note: types do not strictly require a workspace assignment at all in order to
let the user create instances of it. She only needs READ permission to the
type. WRITE permission is required only to let the user make changes to the
type definition.
Currently DM implements a fallback: objects without a workspace assignment are
granted READ permission.
> Furthermore, please tell me how exactly "Membership" could be assigned via
> the webclient for e.g. "User X" (while "admin" is owner of the public
> "Wikidata" workspace) should become "Member", i failed trying to do so
> various times now.
While logged in as "admin" create a "Membership" association between user x's
"Username" topic (not "User Account" topic!) and the workspace "Wikidata". That
is creating a regular association and then retyping it to "Membership". Leave
the Role Types as "Default".
Since 4.5 only a user who has WRITE permission to a workspace is allowed to
create memberships for that workspace.
Note: Memberships are effective only for "Confidential", "Collaborative", and
"Public" workspaces (and are rather pointless for "Common" workspaces).
Memberships have no effect with "Private" workspaces. For private workspaces
only its owner have READ/WRITE access.
I hope this helps.
Cheers,
Jörg
--
devel mailing list
[email protected]
http://lists.deepamehta.de/mailman/listinfo/devel-lists.deepamehta.de