Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A sample application that demonstrates the consumption of Feature Flags service on SAP Cloud Platform, Cloud Foundry environment

License

NotificationsYou must be signed in to change notification settings

SAP-samples/cloud-cf-feature-flags-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

REUSE status

Feature Flags Service Demo Application

Description

Feature Flags service Demo Application is a simple Spring Boot application that consumes theFeature Flags service on SAP BTP, Cloud Foundry environment. It implements afeature toggle (evaluation call to the Feature Flags service) and exposes this feature toggle through a Web user interface. There is also one REST end-point that reads the value ofVCAP_SERVICES environment variable.

Requirements

Running the Application on SAP BTP

💡NOTE: This guide uses theeu20 region (https://emea.cockpit.btp.cloud.sap/cockpit#).

To use a different SAP BTP region, you need to modify the domain in the requests. See:Cloud Foundry Regions and API Endpoints

Follow the steps below to runFeature Flags Demo Application on SAP BTP, Cloud Foundry environment.

1. Build the feature-flags-demo Application

Run the following commands, consequently:

$ git clone git@github.com:SAP/cloud-cf-feature-flags-sample.git$ cd cloud-cf-feature-flags-sample$ mvn clean install

Note: Alternatively, you can use the Eclipse IDE. Choose theclean install goal from theRun As > Maven Build... menu.

2. Edit application name in manifest file

It's quite possible that someone else has already deployed theFeature Flags Demo Application with the namefeature-flags-demo (as it is currently set in themanifest.yml file).Cloud Foundry does not allow two applications with the same name to be deployed in the same region! Therefore, wehighly recommend that you change the application name in themanifest.yml file before deploying. For example:

---applications:- name: feature-flags-demo123  path: target/feature-flags-demo.jar

💡NOTE: Use the modified value in all commands that require application name, as well as when requesting the application in a browser or viacurl.

3. Deploy feature-flags-demo on SAP BTP

  1. Log in to your Cloud Foundry landscape. (Theeu20 region is just an example.) Run:

    $ cf login -a https://api.cf.eu20.hana.ondemand.com
  2. Choose your subaccount (org) and space.

  3. Deploy the application. Run:

    $ cf push

4. Create a Service Instance of Feature Flags service

4.1 Ensure the feature-flags service exists in the Service Marketplace

Run the following command:

$ cf marketplace

Result:

-----Getting services from marketplace in org <ORG_ID> / space <SPACE> as <USER_ID>...OKservice          plans    description...feature-flags    lite, standard     Feature Flags service for controlling feature rollout...

NOTE: If you're using a trial account, the only available service plan will belite.

4.2 Create a Service Instance of Feature Flags

  • For a productive account, run:

    $ cf create-service feature-flags standard feature-flags-instance
  • For a trial account, run:

    $ cf create-service feature-flags lite feature-flags-instance

Note: Alternatively, you can use the SAP BTP cockpit. SeeCreate a Service Instance.

5. Call the feature-flags-demo Application's /vcap_services End-Point

Note: Expect to receive an empty JSON code - {}.

The/vcap_services end-point simply returns the content of theVCAP_SERVICES environment variable. As for now, there is no service instance bound tofeature-flags-demo, thus you receive an empty JSON.

In the command you use the following URL:\<application_URL\>/vcap_services.

To find the value of\<application_URL\>, go to the SAP BTP cockpit >feature-flag-demo >Overview >Application Routes.

To call the application, run (for example):

$ curl https://feature-flags-demo.cfapps.eu20.hana.ondemand.com/vcap_services

6. Bind feature-flags-demo to feature-flags-instance

$ cf bind-service feature-flags-demo feature-flags-instance -c '{"enableBasicAuth": true}'-----Binding service feature-flags-instance to app feature-flags-demo in org <ORG_ID> / space <SPACE> as <USER_ID>...OKTIP: Use 'cf restage feature-flags-demo' to ensure your env variable changes take effect

Note: Alternatively, you can use the SAP BTP cockpit. SeeBind Your Application to the SAP Feature Flags Service Instance.

7. Restage feature-flags-demo

Restagefeature-flags-demo application so the changes in the application environment take effect.

$ cf restage feature-flags-demo

8. Ensure that feature-flags-instance is bound to feature-flags-demo

Note: Expect to receive the injected environment variables by the Feature Flags service.

$ curl https://feature-flags-demo.cfapps.eu10.hana.ondemand.com/vcap_services

Sample JSON response:

{"feature-flags": [    {"credentials": {"x509": {"certificate":"...","key":"...","clientid":"...","...":"..."        },"password":"aa_12345678XYZZZZZ000mnopRE+qs0e=","uri":"https://feature-flags.cfapps.eu20.hana.ondemand.com","username":"sbss_x234osj//pmabsuskr6nshmb2arw6dld4hfb3cj4m2bonkqmm3ts6c68mdpzxz2fma="      },"syslog_drain_url":null,"volume_mounts": [ ],"label":"feature-flags","provider":null,"plan":"standard","name":"feature-flags-instance","tags": ["feature-flags"      ]    }  ]}

Accessing the Demo Application

The web interface of the demo application will be accessed multiple times throughout this tutorial. Here is how to open it:

  1. Go to the SAP BTP cockpit.
  2. Navigate to thefeature-flags-demo application overview.
  3. Open the link from theApplication Routes section. For example:https://feature-flags-demo-happy-bear.cfapps.eu20.hana.ondemand.com
  4. TheEvaluation Form opens.

Accessing the Feature Flags Dashboard

TheFeature Flags Dashboard will be accessed multiple times throughout this tutorial. Here is how to open it:

  1. Go to the SAP BTP cockpit.
  2. Navigate to your subaccount.
  3. Create a subscription toFeature Flags Dashboard. To do that, create an instance of the Feature Flags service, with plandashboard.
  4. AccessFeature Flags Dashboard from the list of subscribed applications.
  5. Select the service instance you are currently working with.

💡NOTE: The dashboard URL always has the following pattern:

https://<subdomain\>.feature-flags-dashboard.cfapps.eu20.hana.ondemand.com/manageinstances/<instance-id\>

The is a unique ID of your Feature Flag service instance.

9. Evaluate a Missing Feature Flag

Note: Expect the feature flag to be missing.

  1. Open the demo application as describedhere.
  2. Enter a feature flag with a random name, for examplemy-boolean-flag.
  3. ChooseEvaluate.
  4. The result should state that a feature flag with this name is missing.

10. Create a New Boolean Feature Flag

  1. Open theFeature Flags Dashboard as describedhere.
  2. ChooseNew Flag.
  3. Fill in the required fields. For example:
    • Name:my-boolean-flag
    • Description:Super cool feature
    • State:OFF
  4. ChooseSave.

11. Evaluate the Newly Created Boolean Feature Flag

Note: Expect the variation to befalse.

  1. Open the demo application as describedhere.
  2. Enter the Boolean feature flag name.
  3. ChooseEvaluate.
  4. The result should state that the feature flag is of typeBOOLEAN and its variation isfalse.

12. Enable the Boolean Feature Flag

  1. Open theFeature Flags Dashboard as describedhere.
  2. Enable the Boolean feature flag using the switch in theEnabled column.

13. Verify that the Boolean Feature Flag is Enabled

Note: Expect the variation to betrue.

  1. Open the demo application as describedhere.
  2. Enter the Boolean feature flag name.
  3. ChooseEvaluate.
  4. The result should state that the feature flag is of typeBOOLEAN and its variation istrue.

CAUTION!

The next procedures (14 - 19) are only applicable for productive accounts, which means planstandard.

14. Create a New String Feature Flag

  1. Open theFeature Flags Dashboard as describedhere.
  2. ChooseNew Flag.
  3. Fill in the required fields. For example:
    • Name:my-string-flag
    • Description:Coolest of features
    • Type:String
    • State:OFF
  4. Enter the following values as different variations of the flag:
    • Var. 1:variation-when-inactive
    • Var. 2:variation-when-active
    • Var. 3 (choose theAdd button with the '+' sign to add a new field):variation-for-friends-and-family
  5. From theDefault Variation tab in theEnvironment Details section,Strategy subsection, open theDeliver combo box and selectVar. 2.
  6. ChooseSave.

15. Evaluate the Newly Created String Feature Flag

Note: Expect the variation to bevariation-when-inactive.

  1. Open the demo application as describedhere.
  2. Enter the string feature flag name.
  3. ChooseEvaluate.
  4. The result should state that the feature flag is of typeSTRING and its variation isvariation-when-inactive.

16. Enable the String Feature Flag

  1. Open theFeature Flags Dashboard as describedhere.
  2. Enable the string feature flag using the switch in theEnabled column.

17. Verify that the String Feature Flag is Enabled

Note: Expect the variation to bevariation-when-active.

  1. Open the demo application as describedhere.
  2. Enter the string feature flag name.
  3. ChooseEvaluate.
  4. The result should state that the feature flag is of typeSTRING and its variation isvariation-when-active.

18. Specify Direct Delivery Strategy of a Variation of the String Flag

  1. Open theFeature Flags Dashboard as describedhere.
  2. Select the string feature flag.
  3. Choose theEdit Flag button.
  4. Go to theEnvironment Details section,Strategy subsection,Direct Delivery tab, and choose the '+' button.
  5. SelectVar. 3 from the combobox and enterfriends-and-family in the text input.
  6. ChooseSave.

19. Evaluate the String Feature Flag Using Identifier

Note: Expect the variation to bevariation-for-friends-and-family.

  1. Open the demo application as describedhere.
  2. Enter the string feature flag name.
  3. For theIdentifier (optional) field, enterfriends-and-family.
  4. ChooseEvaluate.
  5. The result should state that the feature flag is of typeSTRING and its variation isvariation-for-friends-and-family.

OnceDirect Delivery is configured, the Feature Flags service requires providing an identifier. If such is not present, an error is thrown.

💡NOTE:variation-when-active is returned for all identifiers - except for those explicitly configured in theFeature Flags Dashboard for which the provided rules apply (like thefriends-and-family identifier).

Contributing

Refer to thecontrubuting guideline.

Code of Conduct

Refer to theSAP Open Source Code of Conduct.

Licensing

SeeLICENSE file.

About

A sample application that demonstrates the consumption of Feature Flags service on SAP Cloud Platform, Cloud Foundry environment

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors8


[8]ページ先頭

©2009-2025 Movatter.jp