add pg insert
diff --git a/dockertests/const.go b/dockertests/const.go
index 4f4266f..3b309e1 100644
--- a/dockertests/const.go
+++ b/dockertests/const.go
@@ -1,6 +1,5 @@
 package dockertests
 
-
 const (
 	dockerCsPort              string = "9000"
 	dockerSsPort              string = "9001"
@@ -12,4 +11,7 @@
 	configConsumerSecret             = "apigeesync_consumer_secret"
 	configName                       = "apigeesync_instance_name"
 	ApigeeSyncEventSelector          = "ApigeeSync"
+	testInitUser = "dockerTestInit"
 )
+
+
diff --git a/dockertests/docker_test.go b/dockertests/docker_test.go
index 2980483..d2b45bb 100644
--- a/dockertests/docker_test.go
+++ b/dockertests/docker_test.go
@@ -10,16 +10,15 @@
 	"os"
 	"testing"
 	"time"
+	"encoding/json"
 )
 
-
-
 var (
-	services apid.Services
-	log      apid.LogService
-	data     apid.DataService
-	config   apid.ConfigService
-	pgUrl    string
+	services  apid.Services
+	log       apid.LogService
+	data      apid.DataService
+	config    apid.ConfigService
+	pgUrl     string
 	pgManager *ManagementPg
 )
 
@@ -28,10 +27,17 @@
  * apidApigeeSync and runs tests.
  */
 var _ = BeforeSuite(func() {
-	hostname := "http://" + os.Getenv("APIGEE_SYNC_DOCKER_IP")
-	pgUrl = os.Getenv("APIGEE_SYNC_DOCKER_PG_URL")
+	//hostname := "http://" + os.Getenv("APIGEE_SYNC_DOCKER_IP")
+	pgUrl = os.Getenv("APIGEE_SYNC_DOCKER_PG_URL") + "?sslmode=disable"
 	os.Setenv("APID_CONFIG_FILE", "./apid_config.yaml")
 
+	// init pg driver and data
+	var err error
+	pgManager, err = InitDb(pgUrl)
+	Expect(err).Should(Succeed())
+	initPgData()
+
+
 	apid.Initialize(factory.DefaultServicesFactory())
 	config = apid.Config()
 
@@ -43,18 +49,15 @@
 	testServer := initDummyAuthServer()
 
 	// Setup dependencies
-	config.Set(configChangeServerBaseURI, hostname+":"+dockerCsPort+"/")
-	config.Set(configSnapServerBaseURI, hostname+":"+dockerSsPort+"/")
+	//config.Set(configChangeServerBaseURI, hostname+":"+dockerCsPort+"/")
+	//config.Set(configSnapServerBaseURI, hostname+":"+dockerSsPort+"/")
 	config.Set(configProxyServerBaseURI, testServer.URL)
 
 	// init plugin
 	apid.RegisterPlugin(initPlugin)
 	apid.InitializePlugins("dockerTest")
 
-	// init pg driver
-	var err error
-	pgManager, err = InitDb(pgUrl)
-	Expect(err).Should(Succeed())
+
 })
 
 var _ = Describe("dockerIT", func() {
@@ -64,29 +67,16 @@
 
 		})
 
+		var _ = AfterEach(func() {
+			pgManager.Cleanup()
+		})
+
 		It("should succesfully download table from pg", func() {
 			log.Debug("CS: " + config.GetString(configChangeServerBaseURI))
 			log.Debug("SS: " + config.GetString(configSnapServerBaseURI))
 			log.Debug("Auth: " + config.GetString(configProxyServerBaseURI))
 
-			cluster := &apidCluster{
-				id: "fed02735-0589-4998-bf00-e4d0df7af45b",
-				name: "apidcA",
-				description: "desc",
-				appName: "UOA",
-				created: time.Now(),
-				createdBy: "userA",
-				updated: time.Now(),
-				updatedBy: "userA",
-				changeSelector: "fed02735-0589-4998-bf00-e4d0df7af45b",
-			}
-
-			tx, err := pgManager.BeginTransaction()
-			Expect(err).Should(Succeed())
-			pgManager.InsertApidCluster(tx, cluster)
-
 			time.Sleep(5 * time.Second)
-			Expect(1).To(Equal(1))
 		}, 30)
 	})
 })
@@ -116,6 +106,98 @@
 	return pluginData, nil
 }
 
+func initPgData() {
+	clusterId := "4c6bb536-0d64-43ca-abae-17c08f1a7e58"
+	scopeId := "ae418890-2c22-4c6a-b218-69e261034b96"
+	deploymentId := "633af126-ee79-4a53-bef7-7ba30da8aad6"
+	bundleConfigId := "613ce223-6c73-43f4-932c-3c69b0c7c65d"
+	bundleConfigName := "good"
+	bundleUri := "https://gist.github.com/alexkhimich/843cf70ffd6a8b4d44442876ba0487b7/archive/d74360596ff9a4320775d590b3f5a91bdcdf61d2.zip"
+	t := time.Now()
+
+	cluster := &apidClusterRow{
+		id:             clusterId,
+		name:           "apidcA",
+		description:    "desc",
+		appName:        "UOA",
+		created:        t,
+		createdBy:      testInitUser,
+		updated:        t,
+		updatedBy:      testInitUser,
+		changeSelector: clusterId,
+	}
+
+	ds := &dataScopeRow{
+		id:             scopeId,
+		clusterId:      clusterId,
+		scope:          "abc1",
+		org:            "org1",
+		env:            "env1",
+		created:        t,
+		createdBy:      testInitUser,
+		updated:        t,
+		updatedBy:      testInitUser,
+		changeSelector: clusterId,
+	}
+
+	bf := bundleConfigData{
+		Id: bundleConfigId,
+		Created: t.Format(time.RFC3339),
+		CreatedBy: testInitUser,
+		Updated: t.Format(time.RFC3339),
+		UpdatedBy: testInitUser,
+		Name: bundleConfigName,
+		Uri: bundleUri,
+	}
+
+	jsonBytes, err := json.Marshal(bf)
+	Expect(err).Should(Succeed())
+
+	log.Warn(string(jsonBytes))
+
+	bfr := &bundleConfigRow{
+		id: bf.Id,
+		scopeId: scopeId,
+		name: bf.Name,
+		uri: bf.Uri,
+		checksumType: "",
+		checksum: "",
+		created: t,
+		createdBy: bf.CreatedBy,
+		updated: t,
+		updatedBy: bf.UpdatedBy,
+	}
+
+	d := &deploymentRow{
+		id: deploymentId,
+		configId: bundleConfigId,
+		clusterId: clusterId,
+		scopeId: scopeId,
+		bundleConfigName: bundleConfigName,
+		bundleConfigJson: string(jsonBytes),
+		configJson: "{}",
+		created: t,
+		createdBy: testInitUser,
+		updated: t,
+		updatedBy: testInitUser,
+		changeSelector: clusterId,
+	}
+
+	tx, err := pgManager.BeginTransaction()
+	defer tx.Rollback()
+	Expect(err).Should(Succeed())
+	err = pgManager.InsertApidCluster(tx, cluster)
+	Expect(err).Should(Succeed())
+	err = pgManager.InsertDataScope(tx, ds)
+	Expect(err).Should(Succeed())
+	err = pgManager.InsertBundleConfig(tx, bfr)
+	Expect(err).Should(Succeed())
+	err = pgManager.InsertDeployment(tx, d)
+	Expect(err).Should(Succeed())
+	err = tx.Commit()
+	Expect(err).Should(Succeed())
+}
+
 func TestDockerApigeeSync(t *testing.T) {
 	RegisterFailHandler(Fail)
 	RunSpecs(t, "ApigeeSync Docker Suite")
diff --git a/dockertests/management_pg.go b/dockertests/management_pg.go
index bacd9cc..787bccb 100644
--- a/dockertests/management_pg.go
+++ b/dockertests/management_pg.go
@@ -3,7 +3,6 @@
 import (
 	"database/sql"
 	_ "github.com/lib/pq"
-	"time"
 )
 
 type ManagementPg struct {
@@ -11,18 +10,6 @@
 	pg  *sql.DB
 }
 
-type apidCluster struct {
-	id          string
-	name        string
-	description string
-	appName     string
-	created     time.Time
-	createdBy   string
-	updated     time.Time
-	updatedBy   string
-	changeSelector string
-}
-
 func InitDb(dbUrl string) (*ManagementPg, error) {
 	db, err := sql.Open("postgres", dbUrl)
 	if err != nil {
@@ -35,7 +22,7 @@
 	}, nil
 }
 
-func (m *ManagementPg) InsertApidCluster(tx *sql.Tx, cluster *apidCluster) error {
+func (m *ManagementPg) InsertApidCluster(tx *sql.Tx, cluster *apidClusterRow) error {
 	stmt, err := tx.Prepare(`INSERT INTO edgex.apid_cluster(
 			id,
 			name,
@@ -67,8 +54,119 @@
 	return err
 }
 
+func (m *ManagementPg) InsertDataScope(tx *sql.Tx, ds *dataScopeRow) error {
+	stmt, err := tx.Prepare(`INSERT INTO edgex.data_scope (
+			id,
+			apid_cluster_id,
+			scope,
+			org,
+			env,
+			created,
+			created_by,
+			updated,
+			updated_by,
+			_change_selector
+			)
+			VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10)`)
+	if err != nil {
+		return err
+	}
+
+	_, err = stmt.Exec(
+		ds.id,
+		ds.clusterId,
+		ds.scope,
+		ds.org,
+		ds.env,
+		ds.created,
+		ds.createdBy,
+		ds.updated,
+		ds.updatedBy,
+		ds.changeSelector,
+	)
+
+	return err
+}
+
+func (m *ManagementPg) InsertBundleConfig(tx *sql.Tx, bf *bundleConfigRow) error {
+	stmt, err := tx.Prepare(`INSERT INTO edgex.bundle_config (
+			id,
+			data_scope_id,
+			name,
+			uri,
+			checksumtype,
+			checksum,
+			created,
+			created_by,
+			updated,
+			updated_by
+			)
+			VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10)`)
+	if err != nil {
+		return err
+	}
+
+	_, err = stmt.Exec(
+		bf.id,
+		bf.scopeId,
+		bf.name,
+		bf.uri,
+		bf.checksumType,
+		bf.checksum,
+		bf.created,
+		bf.createdBy,
+		bf.updated,
+		bf.updatedBy,
+	)
+
+	return err
+}
+
+func (m *ManagementPg) InsertDeployment(tx *sql.Tx, d *deploymentRow) error {
+	stmt, err := tx.Prepare(`INSERT INTO edgex.deployment (
+			id,
+			bundle_config_id,
+			apid_cluster_id,
+			data_scope_id,
+			bundle_config_name,
+			bundle_config_json,
+			config_json,
+			created,
+			created_by,
+			updated,
+			updated_by,
+			_change_selector,
+			)
+			VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)`)
+	if err != nil {
+		return err
+	}
+
+	_, err = stmt.Exec(
+		d.id,
+		d.configId,
+		d.clusterId,
+		d.scopeId,
+		d.bundleConfigName,
+		d.bundleConfigJson,
+		d.configJson,
+		d.created,
+		d.createdBy,
+		d.updated,
+		d.updatedBy,
+		d.changeSelector,
+	)
+
+	return err
+}
+
 func (m *ManagementPg) BeginTransaction() (*sql.Tx, error) {
 	tx, err := m.pg.Begin()
 	return tx, err
 }
 
+func (m *ManagementPg) Cleanup() error {
+	cleanupSql := "DELETE FROM edgex.apid_cluster WHERE created_by!='" + testInitUser + "';"
+	_, err := m.pg.Exec(cleanupSql)
+	return err
+}
diff --git a/dockertests/pg_table_data.go b/dockertests/pg_table_data.go
new file mode 100644
index 0000000..9b068be
--- /dev/null
+++ b/dockertests/pg_table_data.go
@@ -0,0 +1,76 @@
+package dockertests
+
+import "time"
+
+type apidClusterRow struct {
+	id             string
+	name           string
+	description    string
+	appName        string
+	created        time.Time
+	createdBy      string
+	updated        time.Time
+	updatedBy      string
+	changeSelector string
+}
+
+/* FOREIGN KEY (apid_cluster_id)
+ * REFERENCES apid_cluster(id) ON DELETE CASCADE
+ */
+type dataScopeRow struct {
+	id             string
+	clusterId      string
+	scope          string
+	org            string
+	env            string
+	created        time.Time
+	createdBy      string
+	updated        time.Time
+	updatedBy      string
+	changeSelector string
+}
+
+/* FOREIGN KEY (data_scope_id)
+ * REFERENCES data_scope(id) ON DELETE CASCADE
+ */
+type bundleConfigRow struct {
+	id           string
+	scopeId      string
+	name         string
+	uri          string
+	checksumType string
+	checksum     string
+	created      time.Time
+	createdBy    string
+	updated      time.Time
+	updatedBy    string
+}
+
+/* FOREIGN KEY (bundle_config_id)
+ * REFERENCES bundle_config(id) ON DELETE CASCADE
+ */
+type deploymentRow struct {
+	id               string
+	configId         string
+	clusterId        string
+	scopeId          string
+	bundleConfigName string
+	bundleConfigJson string
+	configJson       string
+	created          time.Time
+	createdBy        string
+	updated          time.Time
+	updatedBy        string
+	changeSelector   string
+}
+
+
+type bundleConfigData struct {
+	Id string `json:"id"`
+	Created string `json:"created"`
+	CreatedBy string `json:"createdBy"`
+	Updated string `json:"updated"`
+	UpdatedBy string `json:"updatedBy"`
+	Name string `json:"name"`
+	Uri string `json:"uri"`
+}
\ No newline at end of file
diff --git a/glide.yaml b/glide.yaml
index 643a0c9..b583bf1 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -16,6 +16,10 @@
 import:
 - package: github.com/30x/apid-core
   version: master
+- package: github.com/lib/pq
+  version: master
 testImport:
 - package: github.com/onsi/ginkgo/ginkgo
+  version: master
 - package: github.com/onsi/gomega
+  version: master