diff --git a/plugins/source/cloudflare/Makefile b/plugins/source/cloudflare/Makefile index dd6fe21a1dfc39..63cb7fa8c3ce73 100644 --- a/plugins/source/cloudflare/Makefile +++ b/plugins/source/cloudflare/Makefile @@ -1,6 +1,6 @@ # Generate mocks for mock/unit testing .PHONY: gen-mocks -gen-mocks: +gen-mocks: install-tools go generate ./client/... # Test unit @@ -31,4 +31,4 @@ gen-code: # All gen targets .PHONY: gen -gen: gen-code gen-docs +gen: gen-code gen-mocks gen-docs diff --git a/plugins/source/cloudflare/client/mocks/mock_client.go b/plugins/source/cloudflare/client/mocks/mock_client.go index ad0401f1eac8f2..9f9048d3dd5519 100644 --- a/plugins/source/cloudflare/client/mocks/mock_client.go +++ b/plugins/source/cloudflare/client/mocks/mock_client.go @@ -173,7 +173,7 @@ func (mr *MockApiMockRecorder) ListWAFRules(arg0, arg1, arg2 interface{}) *gomoc } // ListWorkerCronTriggers mocks base method. -func (m *MockApi) ListWorkerCronTriggers(arg0 context.Context, arg1, arg2 string) ([]cloudflare.WorkerCronTrigger, error) { +func (m *MockApi) ListWorkerCronTriggers(arg0 context.Context, arg1 *cloudflare.ResourceContainer, arg2 cloudflare.ListWorkerCronTriggersParams) ([]cloudflare.WorkerCronTrigger, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListWorkerCronTriggers", arg0, arg1, arg2) ret0, _ := ret[0].([]cloudflare.WorkerCronTrigger) @@ -188,48 +188,49 @@ func (mr *MockApiMockRecorder) ListWorkerCronTriggers(arg0, arg1, arg2 interface } // ListWorkerRoutes mocks base method. -func (m *MockApi) ListWorkerRoutes(arg0 context.Context, arg1 string) (cloudflare.WorkerRoutesResponse, error) { +func (m *MockApi) ListWorkerRoutes(arg0 context.Context, arg1 *cloudflare.ResourceContainer, arg2 cloudflare.ListWorkerRoutesParams) (cloudflare.WorkerRoutesResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListWorkerRoutes", arg0, arg1) + ret := m.ctrl.Call(m, "ListWorkerRoutes", arg0, arg1, arg2) ret0, _ := ret[0].(cloudflare.WorkerRoutesResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListWorkerRoutes indicates an expected call of ListWorkerRoutes. -func (mr *MockApiMockRecorder) ListWorkerRoutes(arg0, arg1 interface{}) *gomock.Call { +func (mr *MockApiMockRecorder) ListWorkerRoutes(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWorkerRoutes", reflect.TypeOf((*MockApi)(nil).ListWorkerRoutes), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWorkerRoutes", reflect.TypeOf((*MockApi)(nil).ListWorkerRoutes), arg0, arg1, arg2) } -// ListWorkerScripts mocks base method. -func (m *MockApi) ListWorkerScripts(arg0 context.Context) (cloudflare.WorkerListResponse, error) { +// ListWorkers mocks base method. +func (m *MockApi) ListWorkers(arg0 context.Context, arg1 *cloudflare.ResourceContainer, arg2 cloudflare.ListWorkersParams) (cloudflare.WorkerListResponse, *cloudflare.ResultInfo, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListWorkerScripts", arg0) + ret := m.ctrl.Call(m, "ListWorkers", arg0, arg1, arg2) ret0, _ := ret[0].(cloudflare.WorkerListResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 + ret1, _ := ret[1].(*cloudflare.ResultInfo) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 } -// ListWorkerScripts indicates an expected call of ListWorkerScripts. -func (mr *MockApiMockRecorder) ListWorkerScripts(arg0 interface{}) *gomock.Call { +// ListWorkers indicates an expected call of ListWorkers. +func (mr *MockApiMockRecorder) ListWorkers(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWorkerScripts", reflect.TypeOf((*MockApi)(nil).ListWorkerScripts), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWorkers", reflect.TypeOf((*MockApi)(nil).ListWorkers), arg0, arg1, arg2) } // ListWorkersSecrets mocks base method. -func (m *MockApi) ListWorkersSecrets(arg0 context.Context, arg1 string) (cloudflare.WorkersListSecretsResponse, error) { +func (m *MockApi) ListWorkersSecrets(arg0 context.Context, arg1 *cloudflare.ResourceContainer, arg2 cloudflare.ListWorkersSecretsParams) (cloudflare.WorkersListSecretsResponse, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListWorkersSecrets", arg0, arg1) + ret := m.ctrl.Call(m, "ListWorkersSecrets", arg0, arg1, arg2) ret0, _ := ret[0].(cloudflare.WorkersListSecretsResponse) ret1, _ := ret[1].(error) return ret0, ret1 } // ListWorkersSecrets indicates an expected call of ListWorkersSecrets. -func (mr *MockApiMockRecorder) ListWorkersSecrets(arg0, arg1 interface{}) *gomock.Call { +func (mr *MockApiMockRecorder) ListWorkersSecrets(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWorkersSecrets", reflect.TypeOf((*MockApi)(nil).ListWorkersSecrets), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListWorkersSecrets", reflect.TypeOf((*MockApi)(nil).ListWorkersSecrets), arg0, arg1, arg2) } // ListZonesContext mocks base method. diff --git a/plugins/source/cloudflare/client/services.go b/plugins/source/cloudflare/client/services.go index faaae758a50e17..174abfe6055e92 100644 --- a/plugins/source/cloudflare/client/services.go +++ b/plugins/source/cloudflare/client/services.go @@ -19,10 +19,10 @@ type Api interface { ListWAFGroups(ctx context.Context, zoneID, packageID string) ([]cloudflare.WAFGroup, error) ListWAFRules(ctx context.Context, zoneID, packageID string) ([]cloudflare.WAFRule, error) - ListWorkerScripts(ctx context.Context) (cloudflare.WorkerListResponse, error) - ListWorkerRoutes(ctx context.Context, zoneID string) (cloudflare.WorkerRoutesResponse, error) - ListWorkerCronTriggers(ctx context.Context, accountID, scriptName string) ([]cloudflare.WorkerCronTrigger, error) - ListWorkersSecrets(ctx context.Context, script string) (cloudflare.WorkersListSecretsResponse, error) + ListWorkers(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.ListWorkersParams) (cloudflare.WorkerListResponse, *cloudflare.ResultInfo, error) + ListWorkerRoutes(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.ListWorkerRoutesParams) (cloudflare.WorkerRoutesResponse, error) + ListWorkerCronTriggers(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.ListWorkerCronTriggersParams) ([]cloudflare.WorkerCronTrigger, error) + ListWorkersSecrets(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.ListWorkersSecretsParams) (cloudflare.WorkersListSecretsResponse, error) ListCertificatePacks(ctx context.Context, zoneID string) ([]cloudflare.CertificatePack, error) diff --git a/plugins/source/cloudflare/docs/tables/cloudflare_worker_routes.md b/plugins/source/cloudflare/docs/tables/cloudflare_worker_routes.md index bf3a0e73e782d0..89bde3bb29501c 100644 --- a/plugins/source/cloudflare/docs/tables/cloudflare_worker_routes.md +++ b/plugins/source/cloudflare/docs/tables/cloudflare_worker_routes.md @@ -14,5 +14,4 @@ The primary key for this table is **id**. |zone_id|String| |id (PK)|String| |pattern|String| -|enabled|Bool| |script|String| \ No newline at end of file diff --git a/plugins/source/cloudflare/go.mod b/plugins/source/cloudflare/go.mod index b3a9fc731f8df3..f483e2153e6d37 100644 --- a/plugins/source/cloudflare/go.mod +++ b/plugins/source/cloudflare/go.mod @@ -3,7 +3,7 @@ module github.com/cloudquery/cloudquery/plugins/source/cloudflare go 1.19 require ( - github.com/cloudflare/cloudflare-go v0.55.0 + github.com/cloudflare/cloudflare-go v0.57.1 github.com/cloudquery/plugin-sdk v1.16.1 github.com/gertd/go-pluralize v0.2.1 github.com/golang/mock v1.6.0 diff --git a/plugins/source/cloudflare/go.sum b/plugins/source/cloudflare/go.sum index 353c0968071eeb..7a14eb44b04aa6 100644 --- a/plugins/source/cloudflare/go.sum +++ b/plugins/source/cloudflare/go.sum @@ -40,8 +40,8 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/cloudflare-go v0.55.0 h1:r/+AC9WX7+/G3K7DH5l58Mmnc8dIF5kyQsKW7NmNlX8= -github.com/cloudflare/cloudflare-go v0.55.0/go.mod h1:2N8L4vv3eobUgkB41tSiIJWRK4u/jJsK3IQz3EgFS+8= +github.com/cloudflare/cloudflare-go v0.57.1 h1:c9OhL/WusagBirP+CIJeCqS7OjT9kiWjtJv4lwxp3ZM= +github.com/cloudflare/cloudflare-go v0.57.1/go.mod h1:cD8AqNMMaL1A0Sj9XKo3Xu9ZVHwHqgXJofb1ya210GQ= github.com/cloudquery/plugin-sdk v1.16.1 h1:FstBNQkdAFZRh5F3Y0ugL/pLTg/tPAzljxnpjNda4po= github.com/cloudquery/plugin-sdk v1.16.1/go.mod h1:teMPyCON3uPdMsHvzpSiOg+IK2sOR5Tf9dYLreoURzI= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= diff --git a/plugins/source/cloudflare/resources/services/worker_meta_data/worker_meta_data_fetch.go b/plugins/source/cloudflare/resources/services/worker_meta_data/worker_meta_data_fetch.go index 4c7afb5948a166..f5d71af310d536 100644 --- a/plugins/source/cloudflare/resources/services/worker_meta_data/worker_meta_data_fetch.go +++ b/plugins/source/cloudflare/resources/services/worker_meta_data/worker_meta_data_fetch.go @@ -11,7 +11,9 @@ import ( func fetchWorkerMetaData(ctx context.Context, meta schema.ClientMeta, parent *schema.Resource, res chan<- any) error { svc := meta.(*client.Client) - resp, err := svc.ClientApi.ListWorkerScripts(ctx) + rc := cloudflare.AccountIdentifier(svc.AccountId) + params := cloudflare.ListWorkersParams{} + resp, _, err := svc.ClientApi.ListWorkers(ctx, rc, params) if err != nil { return err } @@ -24,7 +26,9 @@ func fetchWorkerCronTriggers(ctx context.Context, meta schema.ClientMeta, parent accountId := svc.AccountId script := parent.Item.(cloudflare.WorkerMetaData) - resp, err := svc.ClientApi.ListWorkerCronTriggers(ctx, accountId, script.ID) + rc := cloudflare.AccountIdentifier(accountId) + params := cloudflare.ListWorkerCronTriggersParams{ScriptName: script.ID} + resp, err := svc.ClientApi.ListWorkerCronTriggers(ctx, rc, params) if err != nil { return err } @@ -36,7 +40,9 @@ func fetchWorkersSecrets(ctx context.Context, meta schema.ClientMeta, parent *sc svc := meta.(*client.Client) script := parent.Item.(cloudflare.WorkerMetaData) - resp, err := svc.ClientApi.ListWorkersSecrets(ctx, script.ID) + rc := cloudflare.AccountIdentifier(svc.AccountId) + params := cloudflare.ListWorkersSecretsParams{ScriptName: script.ID} + resp, err := svc.ClientApi.ListWorkersSecrets(ctx, rc, params) if err != nil { return err } diff --git a/plugins/source/cloudflare/resources/services/worker_meta_data/workers_scripts_mock_test.go b/plugins/source/cloudflare/resources/services/worker_meta_data/worker_meta_data_mock_test.go similarity index 64% rename from plugins/source/cloudflare/resources/services/worker_meta_data/workers_scripts_mock_test.go rename to plugins/source/cloudflare/resources/services/worker_meta_data/worker_meta_data_mock_test.go index 13fb860aa60cb7..7bb68277d209cd 100644 --- a/plugins/source/cloudflare/resources/services/worker_meta_data/workers_scripts_mock_test.go +++ b/plugins/source/cloudflare/resources/services/worker_meta_data/worker_meta_data_mock_test.go @@ -17,12 +17,12 @@ func buildWorkerMetaData(t *testing.T, ctrl *gomock.Controller) client.Clients { if err := faker.FakeObject(&workerScript); err != nil { t.Fatal(err) } - mock.EXPECT().ListWorkerScripts( - gomock.Any(), - ).Return( - cloudflare.WorkerListResponse{ - WorkerList: []cloudflare.WorkerMetaData{workerScript}, - }, + response := cloudflare.WorkerListResponse{ + WorkerList: []cloudflare.WorkerMetaData{workerScript}, + } + mock.EXPECT().ListWorkers(gomock.Any(), cloudflare.AccountIdentifier(client.TestAccountID), cloudflare.ListWorkersParams{}).Return( + response, + &response.ResultInfo, nil, ) @@ -30,11 +30,7 @@ func buildWorkerMetaData(t *testing.T, ctrl *gomock.Controller) client.Clients { if err := faker.FakeObject(&workerCronTrigger); err != nil { t.Fatal(err) } - mock.EXPECT().ListWorkerCronTriggers( - gomock.Any(), - client.TestAccountID, - workerScript.ID, - ).Return( + mock.EXPECT().ListWorkerCronTriggers(gomock.Any(), cloudflare.AccountIdentifier(client.TestAccountID), cloudflare.ListWorkerCronTriggersParams{ScriptName: workerScript.ID}).Return( []cloudflare.WorkerCronTrigger{workerCronTrigger}, nil, ) @@ -43,10 +39,7 @@ func buildWorkerMetaData(t *testing.T, ctrl *gomock.Controller) client.Clients { if err := faker.FakeObject(&workerSecret); err != nil { t.Fatal(err) } - mock.EXPECT().ListWorkersSecrets( - gomock.Any(), - workerScript.ID, - ).Return( + mock.EXPECT().ListWorkersSecrets(gomock.Any(), cloudflare.AccountIdentifier(client.TestAccountID), cloudflare.ListWorkersSecretsParams{ScriptName: workerScript.ID}).Return( cloudflare.WorkersListSecretsResponse{ Result: []cloudflare.WorkersSecret{workerSecret}, }, diff --git a/plugins/source/cloudflare/resources/services/worker_routes/worker_routes.go b/plugins/source/cloudflare/resources/services/worker_routes/worker_routes.go index a2e620e4b0e68a..96394c44cd40e6 100644 --- a/plugins/source/cloudflare/resources/services/worker_routes/worker_routes.go +++ b/plugins/source/cloudflare/resources/services/worker_routes/worker_routes.go @@ -38,15 +38,10 @@ func WorkerRoutes() *schema.Table { Type: schema.TypeString, Resolver: schema.PathResolver("Pattern"), }, - { - Name: "enabled", - Type: schema.TypeBool, - Resolver: schema.PathResolver("Enabled"), - }, { Name: "script", Type: schema.TypeString, - Resolver: schema.PathResolver("Script"), + Resolver: schema.PathResolver("ScriptName"), }, }, } diff --git a/plugins/source/cloudflare/resources/services/worker_routes/worker_routes_fetch.go b/plugins/source/cloudflare/resources/services/worker_routes/worker_routes_fetch.go index 4504b10effce1f..1399403b20fe2c 100644 --- a/plugins/source/cloudflare/resources/services/worker_routes/worker_routes_fetch.go +++ b/plugins/source/cloudflare/resources/services/worker_routes/worker_routes_fetch.go @@ -3,6 +3,7 @@ package worker_routes import ( "context" + "github.com/cloudflare/cloudflare-go" "github.com/cloudquery/cloudquery/plugins/source/cloudflare/client" "github.com/cloudquery/plugin-sdk/schema" ) @@ -11,7 +12,9 @@ func fetchWorkerRoutes(ctx context.Context, meta schema.ClientMeta, parent *sche svc := meta.(*client.Client) zoneId := svc.ZoneId - resp, err := svc.ClientApi.ListWorkerRoutes(ctx, zoneId) + rc := cloudflare.ZoneIdentifier(zoneId) + params := cloudflare.ListWorkerRoutesParams{} + resp, err := svc.ClientApi.ListWorkerRoutes(ctx, rc, params) if err != nil { return err } diff --git a/plugins/source/cloudflare/resources/services/worker_routes/worker_routes_mock_test.go b/plugins/source/cloudflare/resources/services/worker_routes/worker_routes_mock_test.go index f3c1d210435824..aeb5539fe4f999 100644 --- a/plugins/source/cloudflare/resources/services/worker_routes/worker_routes_mock_test.go +++ b/plugins/source/cloudflare/resources/services/worker_routes/worker_routes_mock_test.go @@ -17,10 +17,7 @@ func buildWorkerRoutes(t *testing.T, ctrl *gomock.Controller) client.Clients { if err := faker.FakeObject(&workerRoute); err != nil { t.Fatal(err) } - mock.EXPECT().ListWorkerRoutes( - gomock.Any(), - client.TestZoneID, - ).Return( + mock.EXPECT().ListWorkerRoutes(gomock.Any(), cloudflare.ZoneIdentifier(client.TestZoneID), cloudflare.ListWorkerRoutesParams{}).Return( cloudflare.WorkerRoutesResponse{ Routes: []cloudflare.WorkerRoute{workerRoute}, },