@apibot - apps command Requirements

Project Title
Target Release
Epic
Document Status
DRAFT
Document Owner

Document Sign-Off
Subject Matter Expert(s)
Technical Expert(s)

Background & Business Value

Goals

Assumptions

  • In all commands that take either a Team Name of Developer Portal User Email as input, <team-name|developer-email>, the type of input given will be determined by looking for an '@' symbol. If an '@' symbol is present, then it is a <developer-email>

Out of Scope

Requirements

Ticket(s)TitleUser StoryPriorityNotes

Search for an ApplicationAs an API Gateway Admin, I would like to be able to search for an Application name or partial name. The results should include the Team Name or Developer Email.MUST HAVE
  • @apibot apps search <app-name>
  • What are the rules behind Kevin Wu's partial match right now?
  • Maybe ...
  • Maybe ...
    • Find All Teams (docs)
    • Find All Applications for Teams (docs)
    • Find All Developers (docs)
    • Find All Applications for Developers (docs)
    • Find matching Applications along the way
  • The results should include the Application information as well as if the Application is associated with a Team (and team-name) or Individual (developer-email).

Search on StatusAs an API Gateway Admin, I would like to be able to search for applications by their status.MUST HAVE
  • @apibot apps (no|approved|revoked|pending|all) (docs, keyStatus parameter)
  • This functionality may not be used through slack, but the underlying implementation will be used in scripts which monitor pending API access requests.

Approve/Deny API Products on AppAs an API Gateway Admin, I would like to be able to approve/deny access requests to apps on Teams or Developer Applications.MUST HAVE
  • Update current command(s) to use teams instead
  • @apibot apps (approve|revoke) <team-name|developer-email> <app-name> [api-product-name]
    • Need to first determine if the Application is associated with a Team or Developer Emails. It could be as simple as checking for the '@' symbol in the <team-name|developer-email> value. Or you could use Search for an App above.
    • (docs)
    • There doesn't seem to be a command to approve/revoke an Application within a Team. You can only approve/revoke either an API Product or the whole Team (docs)

Move an Application from a Functional Account to a TeamAs an API Gateway Admin, I would like to be able to "move" (ie. copy) an Application from a Functional Account to a Team.MUST HAVE
  • @apibot apps toteam <team-name|functional-email> <app-name> <team-name|functional-email> (docs)
    • Need to first determine if the Application is associated with a Team or Developer Emails.

Remove an ApplicationAs an API Gateway Admin, I would like to be able to remove/delete an Application from a Team or Developer Account.MUST HAVE
  • @apibot apps remove <team-name|developer-email> <app-name>
  • Maybe ...
    • Use Search for an Application
    • Remove from Team (docs)
    • Remove from Developer Account (docs)

Custom AttributesAs a Gateway Admin, I would want to update Application custom attributes.MUST HAVE
  • @apibot apps attrib key value
  • Should line up with custom attributes that the workflow try to record





User Interaction, Design & Architecture

Examples and References

Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcomeDecision Date

Ask Apigee - Using the management REST APi Is there a way to search for an App and the results will tell us if it's assocaited with an individual or a company?

(cross-listed in Slack Commands to Manage Teams Requirements)