GithubHelp home page GithubHelp logo

apigee / devrel Goto Github PK

View Code? Open in Web Editor NEW
178.0 21.0 156.0 15.26 MB

Common solutions and tools developed for Apigee

License: Apache License 2.0

Dockerfile 1.29% Shell 52.47% JavaScript 21.64% Gherkin 9.71% Java 1.25% XSLT 1.66% HTML 0.44% Python 11.54%
apigee devrel devrel-community gcp

devrel's Introduction

Apigee DevRel

In Solidarity

Common solutions and tools developed by Apigee.

References

This folder contains reference solutions across a variety of Apigee products. It is expected that these solutions are used as an illustration or extended further to fit a particular use case.

  • Common Shared Flows - Reusable API Policies including Security, Traffic Management, Error Handling and CORS
  • Custom Java Extensions in Apigee - A reference project that includes a Java Extension
  • GCP Service Account Shared Flow - A shared flow to obtain access tokens for GCP service accounts
  • CI/CD Pipeline - Reference implementation for a CI/CD Pipeline using the Apigee Deploy Maven Plugin and a choice of either Jenkins or Google Cloud Build
  • CI/CD Pipeline for Shared Flows - Reference implementation for a CI/CD Pipeline for Sharedflows using the Apigee Deploy Maven Plugin
  • Cloud Logging Shared Flow - Reference implementation for a shared flow to log to Google Cloud Logging
  • Cloud Run - Reference implementation for using Apigee to expose a Cloud Run Service
  • Data API - A reference implementation for using Apigee to facilitate the consumption of data from a data platform.
  • Data Converters Shared Flow - A reference shared flow for doing common response data JSON conversions
  • Product Recommendations - Smart API to Predict Customer Propensity to buy using Apigee, BigQuery ML and Cloud Spanner
  • Proxy Template - An extensible templating tool to bootstrap API proxies containing Security, Traffic Management, Error Handling
  • Writing JavaScript in Apigee - Demonstrate best practices in writing JavaScript code in Apigee context
  • Southbound mTLS - Reference for using mTLS client authentication for securely connecting Apigee to backend services
  • OIDC Mock - A simple OIDC mock identity provider implementation
  • Identity Facade - Reference implementation for an Identity Facade proxy in front of an OIDC compliant identity provider
  • OAuth Admin API - API proxy to enable the revocation of Apigee-issued access tokens by application or end user id.
  • Dutch Healthcare Reference - An API reference to accelerate implementation of Dutch Healthcare standards.
  • XML & JSON Threat Protection - A reference for protecting API proxies against XML and JSON threats
  • Auth Schemes - Example implementations for various popular API auth schemes
  • reCAPTCHA enterprise - A reference for API protection against bot leveraging reCAPTCHA enterprise
  • Firestore Facade - Reference implementation for a long term caching/storage solution based on Cloud Firestore

Tools

This folder contains ready-made utilities which simplify and assist the usage of Apigee products.

Labs

This folder contains raw assets used to generate content to teach a particular technical or non-technical topic.

Contributing

See the contributing instructions to get started.

License

All solutions within this repository are provided under the Apache 2.0 license. Please see the LICENSE file for more detailed terms and conditions.

Disclaimer

This repository and its contents are not an official Google product.

Contact

Questions, issues and comments should be directed to [email protected].

devrel's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devrel's Issues

Extend proxy template to support Target Servers

./solutions/proxy-template/template-v1/apiproxy/targets/default.xml currently supports <URL>@TargetURL@</URL> (currently only in PR #30)

The template could/should support the use of Target Server definitions either exclusively or as an alternative.

Move Alpine APK versions to min reference instead of fixed ones

We had several broken builds lately because of patch version increments of the Alpine packages and subsequent removal of the previous versions.

I recommend we move to using minimum versions instead of fixing exact versions.

Alternatively we have to host our own container images for the pipeline to deal with disappearing dependencies.

Pipeline Stability for Java Lint

When running the pipeline without any Java files the current check reports a failure even though no checks are performed.

Steps to reproduce:

Run:

npm run pipeline -- ./references/proxy-template

Produces a Java Lint Failure

Java Lint                                                fail

even though there are no Java files in this folder:

$ find ./references/proxy-template/ -type f -name "*.java"
#no files

Analytics is not supported in all regions

When setting the env variable $REGION (and $ZONE), it is worth mentioning that the Analytics are not available in all regions. If a user chooses a $REGION where Analytics are not available, the script fails.

Missing pre-requisite in devrel/tools/hybrid-quickstart/hybrid13/

When a user specifics a DNS_NAME, one pre-requisite to add is that the domain shall be verified and a DNS zone called "apigee-dns-zone" shall be created in advance before starting the installation script. Otherwise, the later will fail with the following error "ERROR: (gcloud.dns.record-sets.transaction.execute) HTTPError 404: The 'parameters.managedZone' resource named 'apigee-dns-zone' does not exist."

pettier broke JS files in CICD reference

commit 42facea reformatted all JS files and caused the CICD reference to break at the eslint step.

Options:

  1. Revert the changes to the CICD reference (Airports proxy)
  2. Change the eslint preferences in the CICD reference

Also why didn't the Travis build catch this?

Nighly build failure

Pipeline Report

run-pipelines                                                      pass
references//workspace/references/apigee-sandbox-v1 Pipeline        pass
references//workspace/references/apimocker-hostedtargets Pipeline  pass
references//workspace/references/cicd-jenkins Pipeline             pass
references//workspace/references/common-shared-flows Pipeline      pass
references//workspace/references/gcp-sa-auth-shared-flow Pipeline  pass
references//workspace/references/identity-facade Pipeline          fail
references//workspace/references/java-callout Pipeline             pass
references//workspace/references/js-callout Pipeline               pass
references//workspace/references/kvm-admin-api Pipeline            pass
references//workspace/references/oidc-mock Pipeline                pass
references//workspace/references/proxy-template Pipeline           pass
references//workspace/references/southbound-mtls Pipeline          pass
labs//workspace/labs/best-practices-hackathon Pipeline             pass
tools//workspace/tools/another-apigee-client Pipeline              pass
tools//workspace/tools/decrypt-hybrid-assets Pipeline              fail
tools//workspace/tools/hybrid-quickstart Pipeline                  pass
tools//workspace/tools/organization-cleanup Pipeline               pass
tools//workspace/tools/pipeline-linter Pipeline                    pass
tools//workspace/tools/pipeline-runner Pipeline                    pass

view details in Cloud Build (permission required)

should pipeline.sh be a dotfile?

E.g. If I have an identity-v1 reference project in devrel, as a reader I might think that pipeline.sh is required in my own project. Hiding it could be useful.

Nighly build failure

Pipeline Report

run-pipelines                                                      pass
references//workspace/references/apigee-sandbox-v1 Pipeline        pass
references//workspace/references/apimocker-hostedtargets Pipeline  pass
references//workspace/references/cicd-jenkins Pipeline             pass
references//workspace/references/common-shared-flows Pipeline      pass
references//workspace/references/gcp-sa-auth-shared-flow Pipeline  pass
references//workspace/references/identity-facade Pipeline          fail
references//workspace/references/java-callout Pipeline             pass
references//workspace/references/js-callout Pipeline               pass
references//workspace/references/kvm-admin-api Pipeline            pass
references//workspace/references/oidc-mock Pipeline                pass
references//workspace/references/proxy-template Pipeline           pass
references//workspace/references/southbound-mtls Pipeline          pass
labs//workspace/labs/best-practices-hackathon Pipeline             pass
tools//workspace/tools/another-apigee-client Pipeline              pass
tools//workspace/tools/decrypt-hybrid-assets Pipeline              fail
tools//workspace/tools/hybrid-quickstart Pipeline                  pass
tools//workspace/tools/organization-cleanup Pipeline               pass
tools//workspace/tools/pipeline-linter Pipeline                    pass
tools//workspace/tools/pipeline-runner Pipeline                    pass

view details in Cloud Build (permission required)

Usability Pipeline check for preferred terms

When running the command as per the pipeline we get the following error

$ [ ! `grep -ir "blacklist\|whitelist\|master\|slave" .` ]

sh: [: too many arguments

Also the sections which contain the preferred terms are not printed.

[Idea] Reference Shared Flow for GCP Service Account Tokens

To use GCP services from Apigee most services require a service account access or identity token to be available from within a flow.

Apigee SaaS provides an extension but has the following short comings:

  • not available in hybrid
  • no key rotation possible
  • no flexibility over where to store the SA key

A shared flow could be added to perform the following tasks

  • lookup access tokens in cache
  • exchange a SA key for an access / id token
  • cache the token for later use

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.