Version 5

    The Data Service Builder requirements for the initial 1.0 release include the following:


    General assumptions of architecture and set-up


    • DSB 1.0 will be deployed on an application server that contains an installed Teiid runtime module
      • will only support managing data services built against JDBC data sources already deployed on the server
        • will not support managing data sources (create, edit, deploy, undeploy)
      • will provide user log-in credentials via the available/required Teiid JDBC username/password
      • will provide access via URL : https://[host]:8443/ds-builder


    1) The primary requirement is to provide a Web UI which allows creating, editing, testing and managing of simple Data Services.

    • a data service is a single view defined by DDL within a generated vdb.xml file
      • a view can be constructed by using metadata from 1 or 2 JDBC source tables
      • the source tables are defined in source model DDL within the generated vdb.xml file
      • testing a data service involves deploying the vdb.xml file and executing a query via available Teiid API's
      • the primary feature for building of this view will be enabled through graphical means
        • selecting source tables, columns and criteria options
        • also provide optional expert-mode DDL editing of the view
    • data services will be displayed in a summary page for viewing and managing which will include:
      • create new data service
      • copy data service
      • edit data service
      • test data service
      • download data service as a zip containing vdb.xml
      • display page containing sample code for implementing/using your data service (documentation)
      • delete data service
      • Export data service to GIT repository
      • create and edit data service will provide a wizard to define:
        • a single source table view definition
        • a two source table view definition
        • an expert general DDL text editor


    2) Source tables are managed through configuring data sources from deployed JDBC data sources

    • a data source will be configured by selecting an existing connection and providing optional filters to expose a custom list of source tables which can be used in any data service.
    • data sources will be displayed in a summary page for viewing and managing which will include:
      • create data source
      • edit data source
        • disabled for data sources owned by other users
      • display DDL for data source
      • delete data source
        • disabled for data sources owned by other users
      • download data source as a myDataSource-vdb.xml file
      • copy data source
      • create and edit data source will provide option to filter the tables for the data source schema
        • optional show filter options check box
        • user can enter a table type filter string to identify specific tables to be exposed for a data source
    • data source summary page will allow the following
      • filtering of data services by searching on name or description
      • sorting alphabetically by name or description
      • refresh action to syc DSB repository with any data sources added to server


    3) DSB will provide for managing preferences for the following features

    • GIT repository configurations
    • Teiid Server configuration
      • Admin credentials
      • Teiid JDBC credentails


    4) DSB will provide a Dashboard page for:

    • Summarizing user's data services and data sources
    • Teiid server and connection information
    • An about summary containing application and version information
    • Dashboard layout will be configurable via the standard patternfly behavior for that UI component


    5) DSB will include embedded help via:

    • field level help
      • applicable UI components will have an associated help icon (blue letter "i") providing a hover/tooltip
    • page level help
      • an HTML page will be available via a large ? icon for all pages.
      • help pages will contain definitions, instructions and/or links to additional external project/product documentation


    6) Collaboration:

    • Multiple users will be logging into/connecting to a single instance of JDV & VDB Builder core Komodo Repository (KR).
    • Each user will have a workspace root in the KR and can only view contents of their workspace via DSB's Data Services, Data Sources and Dashboard UI panels
    • Since Data Services reside in the KR and are only deploy/undeployed during testing, each user's list of Data Services is private and only visible to that user.
    • Shared Data Sources : The nature of Data Sources and working with them in DSB necessitates that they be deployed the the JDV runtime for quick access to represented source schema (TEIID DDL) for use in creating/editing Data Services.  This results on Data Sources deployed on the server for more than one user.
      • Each Data Source *-vdb.xml file deployed to the server will contain a username property
      • This property will be used by DSB to identify the owner of each Data Source in the Data Source Summary page
      • Any Data Source that does not belong to the logged-in user, will be treated as a Read-Only data source
        • Read-Only data sources will show their owners (usernames) in the Data Source panel
          • Example:   Owner = user_2
        • Read-Only data sources can be copied, but not Deleted or Edited
      • NOTE:  I think each workspace is keeping track of the data sources deployed on the running server and keeping a copy of the *-vdb.xml and content in the workspace. This was designed to show intermediate states of data source VDBs. I think the states are "Active", "Loading" and "Local" (meaning hasn't been deployed yet).
    • Data Services can be exported to a GIT repository location in the following form
      • Folder named from the Data Service name
        • META-INF folder containing a dataservice.xml manifest file
        • data service *-vdb.xml file