Menu


Projects:

  Higgins

  Identity Gang  

  Identity Schemas

SocialPhysics.org

SP Blog

Paul's Blog 


 

Idas Architectural Todo

Show Menu

This list represents items needed to be done which are architectural in nature, or have to do with the IdAS API/SPI interfaces.

  • Support for "building block" context providers (e.g. that do certain kinds of attribute transformation).
    • Need
    • Each building block context will expect to be told the rest of the chain of contextRefs.
    • Perhaps a Factory takes a list of ContextRefs instead of a sole ContextRefs
    • When the consumer of IdAS finally gets the Context instance, that instance might be the head of a chain of Context instances. Perhaps the registry only sees the top one.
  • Attribute Metadata: Paul mentioned a need to associate metadata with an atribute's value and not its type. Paul may need to expound on this.
    • Metadata access: Allow subsets of metadata to be fetched. (IHasMetadata.java)
  • Schema: Add method(s) which return the schema as a stream, DOM document, or other iterable object. (IContext.java)
  • Digital Subjects
    • Interrogation
      • Attribute Restriction List: Some methods need to be able to allow the user to specify which attributes to be returned when accessing Digital Subjects. This will aid in performance and scalability. (IContext.java)
        • We may need the same for metadata.
      • Filter
        • Format: Define the filter format for getSubjects. (IContext.java)
        • Allow filters In other methods: removeSubject (IContext.java)
      • verifySubjectAttributes doesn't leave a way to verify that a DS representing a group contains a specific member in its member value. (IContext.java)
      • Should getSubject(cuid) throw an exception if cuid is not found, or just return null?
    • Updates
      • Transaction Semantics: Are updates guaranteed to fully succeed or fully fail? (IContext.java)
      • Updates to IDigitalSubject instances: discuss whether modifications to a returned IDigitalSubject affect the stored subject. (IContext.java)
      • Can't remove an attribute using updateSubject. (IContext.java)
      • Can't update components of an attribute's value (IContext.java)
      • Collisions: Determine what to do when importing data and collisions occur. Does import override, add to , or error when a DS exists? (IContext.java)
    • Relationships hold IDigitalSubjects. Shouldn't the relationship be a type which is identifier-based? It seems a bit heavyweight to have to produce a full DS just to represent a relationship. (IDigitalSubject)
    • Data Model
      • Document the special "uniqueIdentifier" attribute
      • Is there a special "digitalSubjectType" attribute? (IDigitalSubject.java)
  • Context Provider
    1. Policy Format: Describe format in more detail. Give examples. (IContextProvider.java)
    2. Closing: Does this also perform the opposite of "context creation"? (IContextProvider.java)
    3. Review documented semantics of IContext.openContext.
    4. Do we allow a change of AuthN materials on an already open Context?
  • Context
    • Does export/import only export/import Digital Subjects, or the entire Context (Metadata, Schema, DS, Relationships)? (IContext.java)
    • Export/Import Filter Format: Define the format (IContext.java)
    • Export/Import data representation format. Document what this would look like and how, given the string one could understand what the format is. Is there a registry? (IContext.java)
  • Relationships
    • How are two relationships compared for equality? (IHasRelationships.java)
    • Does createRelationship also add? (IHasRelationships.java)
  • Subcontexts as a special first-class relationship. Include optional arguments to search methods (e.g., getSubjects()) to specify whether Subcontexts should be included in the search.

  • IContext::getSubjectSchema(), IContext::setSubjectSchema()

  • policy methods for IContext



Last Modified 8/25/06 12:33 PM