docs/metasploit-framework.wiki/Metasploit-Data-Service-Enhancements-Goliath.md
Project Goliath came about primarilly around the need to enhance the current data service and data models to increase the value of data in metasploit to our end users.
This work is currently being done in 2 stages:
Stage 1
This is currently a work in progress (which is why Goliath is currently not fully functional). The work being done or already done include:
Stage 2
The current data storage mechanism couples the metasploit core framework code to the current data storage technology. Coupling causes inflexibility which are reflected via the following problems:
Our solution to this is a data service proxy. A data service proxy allows us to separate core Metasploit Framework code from the underlying data service technology. The framework.db reference to data services is no longer tied directly to the underlying data storage, but instead all calls are proxied to an underlying implementation.
Currently we plan to support the legacy data storage technology stack (RAILS/PostgreSQL) which we hope to eventually phase out. The new implementation will use a RESTful (https://en.wikipedia.org/wiki/Representational_state_transfer) approach whereby calls to framework.db can be proxied to a remote web service that supports the same data service API. We have built a web service that runs atop the current data storage service for the community.
This approach enables us to:
For more information on setting up the web service and using the data services see [[Metasploit Web Service|./Metasploit-Web-Service.md]].