US-12619427-B2 - Version management and releases of a software application
Abstract
Techniques are described for deploying software applications associated with document management. The techniques may include retrieving, by a computing system and from a software repository, configuration information for a software application for managing an electronic document, the configuration information specifying a plurality of widgets for deploying the software application. The techniques may further include receiving, by the computing system and from a client device, a request to access the software application. The techniques may further include generating, by the computing system, a response to the request comprising an indication of the configuration information and instructions configured to cause the client device to request, from the software repository, the plurality of widgets specified by the configuration information. The techniques may further include outputting, by the computing system, the response to the client device to provide the software application at the client device.
Inventors
- Avanish Pathak
- Mark Peterson
Assignees
- DOCUSIGN, INC.
Dates
- Publication Date
- 20260505
- Application Date
- 20230630
Claims (20)
- 1 . A system for deploying a software application associated with document management, the system comprising processing circuitry implemented by one or more processors, the processing circuitry having access to a memory and configured to: retrieve, from a software repository, configuration information for a version of a widget of a plurality of widgets, the plurality of widgets for deploying a software application associated with managing an electronic document; determine, based on the configuration information for the version of the widget, a resource access reference of a configuration file associated with the software application, wherein the resource access reference of the configuration file indicates instructions on loading the configuration information for the version of the widget during runtime execution of the software application; receive, from a client device, a request to access the software application; generate a response to the request comprising the configuration file and instructions configured to cause the client device to load, from the software repository and during runtime execution of the software application at the client device, the version of the widget based on the resource access reference of the configuration file; and output the response to the client device to provide the software application at the client device for runtime execution of the software application at the client device.
- 2 . The system of claim 1 , wherein the configuration information for the version of the widget indicates an identification of the widget, an indication of the version of the widget, and a uniform resource indicator associated with the resource access reference.
- 3 . The system of claim 1 , wherein the configuration information for the version of the widget further indicates at least one dependency widget to be used by the widget, wherein the response is further configured to cause the client device to load the at least one dependency widget from the software repository.
- 4 . The system of claim 3 , wherein the widget is from a first developer device and wherein the at least one dependency widget is from a second developer device.
- 5 . The system of claim 1 , wherein the widget of the plurality of widgets comprises a plugin, and wherein the configuration file associated with the software application includes configuration information for the plugin that indicates a route to the plurality of widgets, an authentication state of the client device, and an identifier for the plugin.
- 6 . The system of claim 1 , wherein the client device is a consumer computing device, and wherein the processing circuitry is further configured to: generate the configuration file as a deployment configuration file comprising the configuration information for the version of the widget.
- 7 . The system of claim 1 , wherein the client device is a developer computing device, wherein the configuration file is a pre-deployment configuration file, and wherein the processing circuitry is further configured to: generate the pre-deployment configuration file comprising configuration information for the version of the widget to undergo pre-deployment testing.
- 8 . The system of claim 1 , wherein the processing circuitry is configured to retrieve the configuration information for the version of the widget with an application programming interface (API) gateway.
- 9 . The system of claim 1 , wherein the processing circuitry is configured to generate the instructions configured to cause the client device to load the version of the widget from the software repository with an application programming interface (API) gateway responsive to the client device sending an API request based on the resource access reference of the configuration file.
- 10 . The system of claim 1 , wherein the software repository is a content delivery network that stores and distributes a plurality of software applications including the software application.
- 11 . The system of claim 1 , wherein to retrieve the configuration information for the version of the widget, the processing circuitry is configured to: determine the configuration information for the version of the widget based on detecting the version of the widget has been uploaded to the software repository from a developer device.
- 12 . A method for deploying a software application associated with document management comprising: retrieving, by processing circuitry implemented using one or more processors and from a software repository, configuration information for a version of a widget of a plurality of widgets, the plurality of widgets for deploying a software application associated with managing an electronic document; determining, by the processing circuitry and based on the configuration information for the version of the widget, a resource access reference of a configuration file associated with the software application, wherein the resource access reference of the configuration file indicates instructions on loading the configuration information for the version of the widget during runtime execution of the software application; receiving, by the processing circuitry and from a client device, a request to access the software application; generating, by the processing circuitry, a response to the request comprising the configuration file and instructions configured to cause the client device to load, from the software repository and during runtime execution of the software application at the client device, the version of the widget based on the resource access reference of the configuration file; and outputting, by the processing circuitry, the response to the client device to provide the software application at the client device for runtime execution of the software application at the client device.
- 13 . The method of claim 12 , wherein the configuration information for the version of the widget indicates an identification of the widget, an indication of the version of the widget, and a uniform resource indicator associated with the resource access reference.
- 14 . The method of claim 12 , wherein the configuration information for the version of the widget further indicates at least one dependency widget to be used by the widget, wherein generating the response comprises generating the response to further cause the client device to load the at least one dependency widget from the software repository.
- 15 . The method of claim 12 , wherein the widget of the plurality of widgets comprises a plugin, and wherein the configuration file associated with the software application includes configuration information for the plugin that indicates a route to the plurality of widgets, an authentication state of the client device, and an identifier for the plugin.
- 16 . The method of claim 12 , further comprising: generating the configuration file as a deployment configuration file comprising the configuration information for the version of the widget.
- 17 . The method of claim 12 , further comprising: generating the configuration file as a pre-deployment configuration file comprising configuration information for the version of the widget to undergo pre-deployment testing.
- 18 . The method of claim 12 , wherein retrieving the configuration information comprises retrieving the configuration information for the version of the widget with an application programming interface (API) gateway.
- 19 . The method of claim 12 , wherein the client device loads the version of the widget from the software repository with an application programming interface (API) gateway responsive to sending an API request based on the resource access reference of the configuration file.
- 20 . A computer-readable storage media comprising instructions that, when executed, configure processing circuitry to: retrieve, from a software repository, configuration information for a version of a widget of a plurality of widgets, the plurality of widgets for deploying a software application associated with managing an electronic document; determine, based on the configuration information for the version of the widget, a resource access reference of a configuration file associated with the software application, wherein the resource access reference of the configuration file indicates instructions on loading the configuration information for the version of the widget during runtime execution of the software application; receive, from a client device, a request to access the software application; generate a response to the request comprising the configuration file and instructions configured to cause the client device to load, from the software repository and during runtime execution of the software application at the client device, the version of the widget based on the resource access reference of the configuration file; and output the response to the client device to provide the software application at the client device for runtime execution of the software application at the client device.
Description
TECHNICAL FIELD This disclosure relates generally to management of a software application. BACKGROUND Continuous integration and continuous deployment (CI/CD) environments implemented by software development teams typically include utilities for software developers to upload and deploy a software application. Current CI/CD environments generally involve software applications developed by various teams. Software development teams may develop and upload software application to CI/CD environments that are not compatible with each other. In addition, CI/CD environments generally require a server hosting the software application to restart every time a new version of the software application is deployed. SUMMARY Aspects of the present disclosure describe techniques for deploying a software application associated with document management. Software applications associated with document management may include user experiences related to managing electronic or digital documents (e.g., generate a document, sign a document, etc.). Software developers may create, update, integrate, deploy, or otherwise develop software applications via a continuous integration and continuous deployment (“CI/CD”) environment. Software applications are deployed when the CI/CD environment allows client devices to request and access files and data included in the software applications. The techniques of the present disclosure, implements a common knowledge base that may help to ensure compatibility of all software components (e.g., widgets or plugins) used in software application development and deployment. In this way, the techniques facilitate software application development by allowing software developers to use previously developed software components, while potentially ensuring compatibility of the previously developed software components with software applications under development. For example, the techniques may allow a software developer to implement software components developed by software developers of a different software development team. In one example, the present disclosure describes a system for deploying a software application associated with document management. The system may comprise processing circuitry implemented by one or more processors, the processing circuitry having access to a memory. The one or more processors may be configured to retrieve, from a software repository, configuration information for a software application for managing an electronic document, the configuration information specifying a plurality of widgets for deploying the software application. The one or more processors may also be configured to receive, from a client device, a request to access the software application. The one or more processors may also be configured to generate a response to the request comprising an indication of the configuration information and instructions configured to cause the client device to request, from the software repository, the plurality of widgets specified by the configuration information. The one or more processors may also be configured to output the response to the client device to provide the software application at the client device. In another example, the present disclosure describes a method for deploying a software application associated with document management. The method may include retrieving, by processing circuitry implemented using one or more processors and from a software repository, configuration information for a software application for managing an electronic document, the configuration information specifying a plurality of widgets for deploying the software application. The method may further include receiving, by the processing circuitry and from a client device, a request to access the software application. The method may further include generating, by the processing circuitry, a response to the request comprising an indication of the configuration information and instructions configured to cause the client device to request, from the software repository, the plurality of widgets specified by the configuration information. The method may further include outputting, by the processing circuitry, the response to the client device to provide the software application at the client device. In another example, the present disclosure describes a computer-readable storage medium comprising instructions that, when executed, configure processing circuitry of a computing system to retrieve, from a software repository, configuration information for a software application for managing an electronic document, the configuration information specifying a plurality of widgets for deploying the software application. The processing circuitry may further be configured to receive, from a client device, a request to access the software application. The processing circuitry may further be configured to generate a response to the request comprising an indication of the configuration information and instruct