flyteidl

module
v0.21.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2021 License: Apache-2.0

README

Flyte IDL

This is one of the core repositories of Flyte and contains the Specification of the Flyte Lanugage using protobuf messages, the Backend API specification in gRPC and Swagger REST. The repo contains generated clients and protocol message structures in multiple languages. Along-with the generated code, the repository also contains the Golang clients for Flyte's backend API's (the services grouped under Flyteadmin).

Contributing to FlyteIDL

Tooling for FlyteIDL

  1. Run make download_tooling to install generator dependencies
   make download_tooling
  1. Make sure docker is installed locally.
  2. Once installed, run make generate to generate all the code and mock client for FlyteAdmin Service aswell as the docs for it.
    make generate
  1. To add new dependencies for documentation generation, modify doc-requirements.in and then
   make doc-requirements.txt

Docs structure

The index.rst files for protos are kept in parallel folder structure under the docs folder. All the proto definitions are within protos/flyteidl and there corresponding docs are kept in protos/docs

docs
├── admin
│   ├── admin.rst
│   └── index.rst
├── core
│   ├── core.rst
│   └── index.rst
├── datacatalog
│   ├── datacatalog.rst
│   └── index.rst
├── event
│   ├── event.rst
│   └── index.rst
├── plugins
│   ├── index.rst
│   └── plugins.rst
├── service
│   ├── index.rst
│   └── service.rst

Each module in protos has same named module under the docs also. eg : protos/flyteidl/core has same named doc structure placing it index and other documentation files in protos/docs/core

Docs Generation

  • If introducing a new module then follow the structure for core files in generate_protos.sh file which helps in generating the core documentation from its proto files.
     core_proto_files=`ls protos/flyteidl/core/*.proto |xargs`
     # Remove any currently generated file
     ls -d protos/docs/core/* | grep -v index.rst | xargs rm
     protoc --doc_out=protos/docs/core --doc_opt=restructuredtext,core.rst -I=protos `echo $core_proto_files`
  • make generate would have already generated the modified rst files.

  • make html Generate the sphinx documentation from the docs folder to use the modified rst for docs.

Directories

Path Synopsis
clients
go/admin
Initializes an Admin Client that exposes all implemented services by FlyteAdmin server.
Initializes an Admin Client that exposes all implemented services by FlyteAdmin server.
go/admin/pkce
Provides the setup required for the client to perform the "Authorization Code" flow with PKCE in order to obtain an access token for public/untrusted clients.
Provides the setup required for the client to perform the "Authorization Code" flow with PKCE in order to obtain an access token for public/untrusted clients.
go/coreutils
Contains convenience methods for constructing core types.
Contains convenience methods for constructing core types.
gen
pb-go/flyteidl/service
Package service is a reverse proxy.
Package service is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL