PlaidCloud v4.0 Punchlist Items

Open

Client - General

  • Enable build and resources to exist inside of plaidcloud public folder
  • Top menu and taskbar are not flush with border
  • generate.py build does not include all classes. Need something similar to source-all for build.
  • Update plaid.command.table.refresh to plaid.command.refresh so we can use it more generically and not just for tables

Client - Table

  • Enable table filter dialog capability
  • Click event are popping javascript alert boxes
  • Refresh button for table does not appear to fire a handle. It produces the following error: blueprintObj.getBlueprintNamespace is not a function
  • Look into moving the filter control on to the table directly instead of having in toolbar. If this will be an easier implementation it probably makes sense. This would decouple the toolbar from the table a bit more.
  • Look into moving the refresh control on to the table directly instead of having in toolbar.
  • ERROR: When clicking on the drill-through for a Distro List the client errors with: this.getPlaidNode() is null, [Break on this error] this.getPlaidNode().addTags('plaidForm');\nMFormContainer.js (line 35)
  • Filter dialog has no options in the drop-down for selecting the type of filter to apply for the selected field. The list is blank.

Client - Form

  • Add form field composite widget to handle security permissions. akorn.ui.form.SecurityManager. The data node in constructorSettings will be a list of permission groups (tabbed groups) with an ID and label. Each group will contain a list of security items with CRUD elements specified as available for selection and which ones are selected. The return values should be an dict of groups each containing a dict of item IDs with their bit value:
    • 0=No Access
    • 1=Read Only / Grant Access
    • 2=Read and Update
    • 3=Read and Create
    • 4=Read and Delete
    • 5=Read and Create and Update
    • 6=Read and Create and Delete
    • 7=Read and Update and Delete
    • 8=Read and Update and Delete and Create

Client - Layout Designer

  • Load layout json and render layout with specified dimensions
  • Generate json from layout using specified dimensions
  • Remove all specified parameters from layout json that meet the default value for the param
  • Build a menu wizard to manage menus using a treeview like structure
  • Build security management interface for managing item security (bin, tag, mode)
  • Build data model management to handle the three data modes:
    • Specified query
    • Generated query from specified fields (no joins allowed)
    • ORM model with filters
  • Designer should have view panes for WYSIWYG design, json, and actual rendering
  • Build top_container script editor wizard (action, condition, event)
  • Build top_container script editor for manual scripts
  • Build object selector area to enable the selection of Blueprint objects for placing on the canvas

Client - Report Designer

  • Load report json and render report with specified dimensions
  • Generate json from report using specified dimensions
  • Build object selector area to enable the selection of report objects for placing on the report canvas

Report

Security

  • Security Group management
  • SU Grant capability
  • Grant/Revoke access capability (limited to the granters access)
  • Enable Beaker based session management using a centralized session database to manage sessions across a distributed environment.

General

  • User management
  • User preferences management

Document Management

  • Enable temporary storage of files being served such as reports or images. These will be stored on the current server and will not persist if the instance goes down.
  • Enable listing of cloud storage files and directories
  • Enable navigation of cloud storage hierarchies
  • Ideally we can provide an appropriate icon for the file type if it isn't too heavy so it looks like an OS level file list.
  • Enable permanent storage of files to Amazon S3 or other cloud service
    • Load/Upload
    • Query - List of directories/files and containers
    • Edit ACL - file and entire directory
    • Generate download links. If we can simply pass a link to the client that would be ideal for a download. But we may need to stream the file through the application.
    • Upload/Download through client seamlessly. Any uploads will require persistent storage therefore uploads should go directly to a designated repository.
    • Enable connections to multiple repositories using different login credentials. This should be like a subscription model to cloud storage. For now, just Amazon S3.

Category

  • Category Management
  • Category Item Management

Connection

  • Build connection defaults into the development.ini file
  • Enable connection names to map to connections specified in development.ini
  • Add m2m, m2o, o2m, relationships to ORM models
  • Enable a single skeleton data population capability
  • Enable a single demo data population capability

Semantic Data Layer

  • Integrate SQL Alchemy models
  • Integrate SQL views
  • Implement standard filter API for filtering in the layer
  • Implement introspection capability to determine data source properties
  • Support read/write to MySQL
  • Support read/write to LDAP
  • Support read/write to XML based web service
  • Support read/write to SimpleDB
  • Support read only from CSV
  • Support read only from OFX http://libofx.sourceforge.net/
  • Support read only from XBRL

Cron

  • Enable cron job firing from application
  • Enable cron job management
  • Build Python based cron capability instead of relying on OS level cron
  • Should these use curl and be RESTful?
  • Include way to designate servers as primary cron managers so distributed systems don't all try to run a cron job concurrently. This needs to be checked periodically to make sure the primary cron server is still alive and, if not, another server will pick up the torch.
  • Add capability to specify a pool of servers that should perform each cron job. The job will be executed on the first available server in the list. “self” is the default and server of last resort if no servers in the list are available. This is intended to allow processing of specific jobs to occur on dedicated hardware if needed.
  • Some potential ideas:

Definition

  • Definition management for non JSON based definitions
  • Enable a method to push updated definitions out to distributed app servers

Distro

  • Distro list management
  • Enable creation of distro based distributions via email

Macro

  • Macro management
  • Enable recording of a macro
  • Execute selected macros specified in the GET

Mail

  • Mail account management
  • Mail server management
  • Mail Queue management
  • Enable adding mail to the Queue
  • Enable manual sending of mail in Queue
  • Lock accounts from sending

Plaid Report Service

  • REST interface for listing directory of stored reports
  • REST interface for listing stored reports
  • REST interface for creating a stored report directory
  • REST interface for creating a stored report
  • REST interface for listing directory of stored data connections
  • REST interface for listing stored data connections
  • REST interface for creating a stored data connection directory
  • REST interface for creating a stored data connection
  • REST interface for listing directory of stored (S)FTP connections
  • REST interface for listing stored (S)FTP connections
  • REST interface for creating a stored (S)FTP connection directory
  • REST interface for creating a stored (S)FTP connection
  • REST interface for listing stored named S3 location connections
  • REST interface for creating a stored named S3 location connection
  • REST interface for creating an ACL for the named S3 location
  • REST interface for testing access to named S3 connection. Owner must grant plaidcloud write access.
  • REST interface for creating a report using stored data connection and stored report
  • REST interface for creating a report using stored data connection and passed in report
  • REST interface for creating a report using stored report and passed in data
  • REST interface for creating a report using passed in report and passed in data
  • Create report using specified data and report
  • Save report to FTP site specified using saved FTP credentials
  • Save report to S3 location specified and use ACL specified in named S3 connection setup
  • Stream report back with proper mime type
  • Write Plaid Report REST libraries for:
    • Python
    • PHP
    • Java
    • Ruby (None of us know Ruby but we may be able recruit someone to help translate)
  • Create service sign-up site
  • Issue keys and secret keys upon signup
  • Enable regeneration of secret keys from site
  • Build QX based report manager app
    • Report designer
    • Manage stored reports
    • Manage stored FTP connections
    • Manage stored named S3 locations
    • Manage stored named S3 ACLs
    • Manage stored data conections
  • Build decryption layer based on key passed in and secret key stored. Use same encryption approach as Amazon services.
  • Integrate Amazon billing service for payment
  • Collect report counts by key in a log file. (Could log access be a value added service?)
  • Process log files for billing purposes

Complete

Client - Table

  • Click event column value substitution is not working

Layout

  • Parse Table Objects
  • Parse Form Field Objects
  • Parse FlashChart Objects
  • Parse Pass-Through Objects
  • Convert all akorn namespace objects to plaid namespace
  • Convert tableModel columns from dict type to list type array
  • Populate table data
  • Add global text substitution capability

Handle

  • Process incoming JSON and validate proper handle parameters are present
  • Validate user session is valid
  • Catch the special situation of application refreshes when user session dies or no session exists yet
  • Process a list of handles
  • Construct a response object for adding outbound response information (global & local)
  • Respond to client requests through jsonizing the response object

Security

  • Mode and CRUD based access validation
  • User login
  • User logout

General

  • Enable Log capability
  • Enable Alert box capability
  • Enable Info box capability
  • Enable refresh after login without errors. Currently recieving 8 errors during refresh sequence.
  • Enable logout and refresh without errors. Currently recieving 8 errors during refresh sequence.

Connection

  • Build a connection management wrapper for the ORM models
  • Enable a single build-all capability that will construct a database from scratch
  • Build ORM models for all existing tables

Document

  • Build technical infrastructure for permanent storage of files to Amazon S3 or other cloud service
    • Load/Upload class
    • List of buckets (where current user is owner), directories, and files
    • Edit ACL - file and directory
    • Edit Owner - file and directory
    • Generate public read download links
    • Generate private file download links with expiration period
    • Enable connections to multiple repositories using different key/secret key credentials

Layout

  • Populate form field data
  • Process submitted data
  • Use ORM data models for querying (Not for version 4.0)
Yummy Delicious Digg It Facebook Linked In Stumple Upon It Tweet Technorati Reddit Furl
Icons by dryicons