Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Publicly routed REST APIs in AppFabric Service

Application Deployment

...

Applications with non-existing dataset

  1. Client --> RouterRouter HTTP: deployApp(artifact, appConfig)
  2. Router --> AppFabricAppFabric HTTP: deployApp(artifact, appConfig, SecurityRequestContext.userId)
  3. AppFabric --> AuthEnforcer: !authorized(SecurityRequestContext(.userId) ) ? UnauthorizedException
  4. AppFabric --> AppFabric: doAs(namespace, deploy(jar, config))
  5. AppFabric --> DatasetServiceClient: createDataset()
  6. DatasetServiceClient --> DatasetServiceDatasetService HTTP: createDataset(ds, Header(CDAP-UserId=SecurityRequestContext.userId))                            
  7. DatasetService --> AuthEnforcer: !authorized(SecurityRequestContext.userId) ? UnauthorizedException
  8. DatasetService --> AuthorizerAuthorizer Thrift: revoke(ds); grant(ds, SecurityRequestContext SecurityRequestContext.userId, ALL)
  9. DatasetService --> DatasetOpExecutorDatasetOpExecutor HTTP: success = doAs doAs(namespace, createDataset(ds))
  10. DatasetService --> AuthorizerAuthorizer Thrift: !success ? revoke(ds)
  11. DatasetService --> AppFabric --> Router --> Client HTTPresult

Applications with existing dataset

  1. Client --> Router HTTPdeployApp(artifact, appConfig)
  2. Router --> AppFabric HTTPdeployApp(artifact, appConfig, SecurityRequestContext.userId)
  3. AppFabric --> AuthEnforcer: !authorized(SecurityRequestContext.userId) ? UnauthorizedException
  4. AppFabric --> AppFabric: doAs(namespace, deploy(jar, config))
  5. AppFabric --> DatasetServiceClient: !compatibleUpdate ? IncompatibleException
  6. DatasetServiceClient --> DatasetService HTTP: update(ds, Header(CDAP-UserId=SecurityRequestContext.userId))
  7. DatasetService --> AuthEnforcer: !authorized(SecurityRequestContext.userId) ? UnauthorizedException
  8. DatasetService --> DatasetService: success = update(ds)
  9. DatasetService --> AppFabric --> Router --> ClientClient HTTPresult

Applications with non-existing streams

Applications with existing streams

Namespace Creation

Namespace Deletion

...