Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abdul/databag item actions #6049

Merged
merged 4 commits into from
Nov 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
961 changes: 484 additions & 477 deletions api/external/infra_proxy/infra_proxy.pb.go

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions api/external/infra_proxy/infra_proxy.pb.policy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 8 additions & 8 deletions api/external/infra_proxy/infra_proxy.proto
Original file line number Diff line number Diff line change
Expand Up @@ -188,45 +188,45 @@ service InfraProxy {
rpc GetDataBags (infra_proxy.request.DataBags) returns (infra_proxy.response.DataBags) {
option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:data_bags";
option (chef.automate.api.iam.policy).action = "infra:infraServers:get";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsDataBags:get";
};
rpc GetDataBagItems (infra_proxy.request.DataBagItems) returns (infra_proxy.response.DataBagItems) {
option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:data_bags";
option (chef.automate.api.iam.policy).action = "infra:infraServers:get";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsDataBagsItem:get";
};
rpc GetDataBagItem (infra_proxy.request.DataBagItem) returns (infra_proxy.response.DataBagItem) {
option (google.api.http).get = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item}";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:data_bags";
option (chef.automate.api.iam.policy).action = "infra:infraServers:get";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsDataBagsItem:get";
};
rpc CreateDataBag (infra_proxy.request.CreateDataBag) returns (infra_proxy.response.CreateDataBag) {
option (google.api.http).post = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags";
option (google.api.http).body = "*";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:data_bags";
option (chef.automate.api.iam.policy).action = "infra:infraServers:update";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsDataBags:create";
};
rpc CreateDataBagItem (infra_proxy.request.CreateDataBagItem) returns (infra_proxy.response.CreateDataBagItem) {
option (google.api.http).post = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}";
option (google.api.http).body = "*";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:data_bags";
option (chef.automate.api.iam.policy).action = "infra:infraServers:update";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsDataBagsItem:create";
};
rpc DeleteDataBag (infra_proxy.request.DataBag) returns (infra_proxy.response.DataBag) {
option (google.api.http).delete = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:data_bags";
option (chef.automate.api.iam.policy).action = "infra:infraServers:update";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsDataBags:delete";
};
rpc DeleteDataBagItem (infra_proxy.request.DataBagItem) returns (infra_proxy.response.DataBagItem) {
option (google.api.http).delete = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item}";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:data_bags";
option (chef.automate.api.iam.policy).action = "infra:infraServers:update";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsDataBagsItem:delete";
};
rpc UpdateDataBagItem (infra_proxy.request.UpdateDataBagItem) returns (infra_proxy.response.UpdateDataBagItem) {
option (google.api.http).put = "/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item_id}";
option (google.api.http).body = "*";
option (chef.automate.api.iam.policy).resource = "infra:infraServers:{server_id}:orgs:{org_id}:data_bags";
option (chef.automate.api.iam.policy).action = "infra:infraServers:update";
option (chef.automate.api.iam.policy).action = "infra:infraServersOrgsDataBagsItem:update";
};

rpc GetEnvironments (infra_proxy.request.Environments) returns (infra_proxy.response.Environments) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@
<div class="search-create-container">
<app-infra-search-bar (searchButtonClick)="searchDataBagItems($event)" placeHolder="data bag items by name...">
</app-infra-search-bar>
<chef-button primary (click)="openDatabagItemModal()">Create Item</chef-button>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}', 'post', [serverId, orgId, dataBagName]]">
<chef-button primary (click)="openDatabagItemModal()">Create Item</chef-button>
</app-authorized>
</div>
<div class="section-container" *ngIf="dataBagItems">
<chef-loading-spinner *ngIf="searching || deleting" size="50" fixed class="full-screen-spinner"></chef-loading-spinner>
Expand Down Expand Up @@ -78,18 +80,22 @@
<chef-icon>remove_circle</chef-icon>
<span>Collapse All</span>
</chef-button>
<chef-button tertiary class="action right-button-box" (click)="startDataBagItemDelete(item)">
<chef-icon class="material-icons">delete</chef-icon>
<span>Delete</span>
</chef-button>
<chef-button
tertiary
class="action right-button-box"
(click)="startUpdateDataBagItem(item, selectedItemDetails)"
[disabled]="editDisable">
<chef-icon class="material-icons">mode_edit</chef-icon>
<span>Edit</span>
</chef-button>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item}', 'delete', [serverId, orgId, dataBagName, item.name]]">
<chef-button tertiary class="action right-button-box" (click)="startDataBagItemDelete(item)">
<chef-icon class="material-icons">delete</chef-icon>
<span>Delete</span>
</chef-button>
</app-authorized>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item}', 'put', [serverId, orgId, dataBagName, item.name]]">
<chef-button
tertiary
class="action right-button-box"
(click)="startUpdateDataBagItem(item, selectedItemDetails)"
[disabled]="editDisable">
<chef-icon class="material-icons">mode_edit</chef-icon>
<span>Edit</span>
</chef-button>
</app-authorized>
</div>

<app-json-tree-table class="json-tree-container" #tree [json]="selectedItemDetails"></app-json-tree-table>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
<div class="search-create-container">
<app-infra-search-bar (searchButtonClick)="searchDataBags($event)" placeHolder="data bags by name...">
</app-infra-search-bar>
<chef-button data-cy="create-databag-button" primary (click)="openCreateModal()">Create Data Bag</chef-button>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags', 'post', [serverId, orgId]]">
<chef-button data-cy="create-databag-button" primary (click)="openCreateModal()">Create Data Bag</chef-button>
</app-authorized>
</div>
<chef-loading-spinner class="full-screen-spinner" *ngIf="searching || deleting" size="50" fixed></chef-loading-spinner>
<chef-table *ngIf="dataBags.length" id="databags-table-container" data-cy="databags-table-container">
Expand All @@ -33,19 +35,23 @@
<chef-tr *ngFor="let dataBag of dataBags">
<chef-td><a [routerLink]="['/infrastructure','chef-servers', serverId, 'organizations', orgId, 'data-bags', dataBag.name]">{{ dataBag.name }}</a></chef-td>
<chef-td class="three-dot-column">
<mat-select panelClass="chef-control-menu">
<mat-option data-cy="delete" (onSelectionChange)="startDataBagDelete(dataBag)">Delete</mat-option>
</mat-select>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}', 'delete', [serverId, orgId, dataBag.name]]">
<mat-select panelClass="chef-control-menu">
<mat-option data-cy="delete" (onSelectionChange)="startDataBagDelete(dataBag)">Delete</mat-option>
</mat-select>
</app-authorized>
</chef-td>
</chef-tr>
</chef-tbody>
<chef-tbody *ngIf="searchFlag">
<chef-tr *ngFor="let dataBag of serachArr">
<chef-td><a [routerLink]="['/infrastructure','chef-servers', serverId, 'organizations', orgId, 'data-bags', dataBag.name]">{{ dataBag.name }}</a></chef-td>
<chef-td class="three-dot-column">
<mat-select panelClass="chef-control-menu">
<mat-option data-cy="delete" (onSelectionChange)="startDataBagDelete(dataBag)">Delete</mat-option>
</mat-select>
<app-authorized [allOf]="['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}', 'delete', [serverId, orgId, dataBag.name]]">
<mat-select panelClass="chef-control-menu">
<mat-option data-cy="delete" (onSelectionChange)="startDataBagDelete(dataBag)">Delete</mat-option>
</mat-select>
</app-authorized>
</chef-td>
</chef-tr>
</chef-tbody>
Expand Down
8 changes: 8 additions & 0 deletions dev-docs/infra-server-iam.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,11 @@ example_fqdn "automate" >}}/api/v0/infra/servers/{id} |
| Create Environments | POST | infra:infraServersOrgsEnvironments:create | /api/v0/infra/servers/{id}/orgs/{org_id}/environments | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/environments |
| Update Environments | PUT | infra:infraServersOrgsEnvironments:update | /api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} |
| Delete Environments | DELETE | infra:infraServersOrgsEnvironments:delete | /api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/environments/{name} |
| Get DataBags | GET | infra:infraServersOrgsDataBags:get | /api/v0/infra/servers/{id}/orgs/{org_id}/data_bags | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/data_bags |
| Create DataBags | POST | infra:infraServersOrgsDataBags:create | /api/v0/infra/servers/{id}/orgs/{org_id}/data_bags | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/data_bags |
| Delete DataBags | DELETE | infra:infraServersOrgsDataBags:delete | /api/v0/infra/servers/{id}/orgs/{org_id}/data_bags/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{id}/orgs/{org_id}/data_bags/{name} |
| Get DataBagItem | GET | infra:infraServersOrgsDataBagsItem:get | /api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item} |
| Create DataBagItem | POST | infra:infraServersOrgsDataBagsItem:create | /api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name} |
| Update DataBagItem | PUT | infra:infraServersOrgsDataBagsItem:update | /api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item_id} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item_id} |
| Delete DataBagsItem | DELETE | infra:infraServersOrgsDataBagsItem:delete | /api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item} |
| Delete DataBags | DELETE | infra:infraServersOrgsDataBags:delete | /api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name} | https://{{< example_fqdn "automate" >}}/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name} |
Loading