consul/api
Paul Glass f4406e69b9
[NET-3091] Update service intentions to support jwt provider references (#17037)
* [NET-3090] Add new JWT provider config entry

* Add initial test cases

* update validations for jwt-provider config entry fields

* more validation

* start improving tests

* more tests

* Normalize

* Improve tests and move validate fns

* usage test update

* Add split between ent and oss for partitions

* fix lint issues

* Added retry backoff, fixed tests, removed unused defaults

* take into account default partitions

* use countTrue and add aliases

* omit audiences if empty

* fix failing tests

* add omit-entry

* Add JWT intentions

* generate proto

* fix deep copy issues

* remove extra field

* added some tests

* more tests

* add validation for creating existing jwt

* fix nil issue

* More tests, fix conflicts and improve memdb call

* fix namespace

* add aliases

* consolidate errors, skip duplicate memdb calls

* reworked iteration over config entries

* logic improvements from review

---------

Co-authored-by: Ronald Ekambi <ronekambi@gmail.com>
2023-04-19 18:16:39 -04:00
..
watch Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
.golangci.yml ci: Use golangci-lint for linting 2020-03-17 13:43:40 -04:00
README.md Update the README for the Consul API (#15936) 2023-01-06 21:10:56 +00:00
acl.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
acl_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
agent.go api: enable query options on agent force-leave endpoint (#15987) 2023-04-18 11:31:48 -05:00
agent_test.go api: enable query options on agent force-leave endpoint (#15987) 2023-04-18 11:31:48 -05:00
api.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
api_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
catalog.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
catalog_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry.go [NET-3090] Add new JWT provider config entry (#17036) 2023-04-19 17:54:14 -04:00
config_entry_discoverychain.go Add PrioritizeByLocality to config entries. (#17007) 2023-04-14 15:42:54 -05:00
config_entry_discoverychain_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_exports.go add sameness to exported services structs in the api package (#16984) 2023-04-12 16:49:28 -04:00
config_entry_exports_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_gateways.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_gateways_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_inline_certificate.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_inline_certificate_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_intentions.go [NET-3091] Update service intentions to support jwt provider references (#17037) 2023-04-19 18:16:39 -04:00
config_entry_intentions_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_jwt_provider.go [NET-3090] Add new JWT provider config entry (#17036) 2023-04-19 17:54:14 -04:00
config_entry_jwt_provider_test.go [NET-3090] Add new JWT provider config entry (#17036) 2023-04-19 17:54:14 -04:00
config_entry_mesh.go Permissive mTLS (#17035) 2023-04-19 14:45:00 -05:00
config_entry_rate_limit_ip.go fix: export ReadWriteRatesConfig struct as it needs to referenced from consul-k8s (#16766) 2023-03-29 09:54:59 -04:00
config_entry_routes.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_sameness_group.go Add default resolvers to disco chains based on the default sameness group (#16837) 2023-03-31 14:35:56 -04:00
config_entry_status.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
config_entry_test.go Permissive mTLS (#17035) 2023-04-19 14:45:00 -05:00
connect.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
connect_ca.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
connect_ca_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
connect_intention.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
connect_intention_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
coordinate.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
coordinate_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
debug.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
debug_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
discovery_chain.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
discovery_chain_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
event.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
event_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
go.mod Bump submodules from latest 1.15.1 patch release (#16578) 2023-03-08 14:37:50 -06:00
go.sum Fix SDK to support older versions of Consul. (#15423) 2022-11-18 10:32:01 -06:00
health.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
health_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
kv.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
kv_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
lock.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
lock_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
mock_api_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
namespace.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
namespace_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_area.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_autopilot.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_autopilot_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_keyring.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_keyring_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_license.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_raft.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_raft_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_segment.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_usage.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
operator_usage_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
oss_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
partition.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
peering.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
peering_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
prepared_query.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
prepared_query_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
raw.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
semaphore.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
semaphore_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
session.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
session_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
snapshot.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
snapshot_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
status.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
status_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
txn.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00
txn_test.go Add copyright headers for acl, api and bench folders (#16706) 2023-03-28 16:12:41 -04:00

README.md

Consul API Client

This package provides the api package which provides programmatic access to the full Consul API.

The full documentation is available on Godoc.

Usage

Below is an example of using the Consul client. To run the example, you must first install Consul and Go.

To run the client API, create a new Go module.

go mod init consul-demo

Copy the example code into a file called main.go in the directory where the module is defined. As seen in the example, the Consul API is often imported with the alias capi.

package main

import (
	"fmt"

	capi "github.com/hashicorp/consul/api"
)

func main() {
	// Get a new client
	client, err := capi.NewClient(capi.DefaultConfig())
	if err != nil {
		panic(err)
	}

	// Get a handle to the KV API
	kv := client.KV()

	// PUT a new KV pair
	p := &capi.KVPair{Key: "REDIS_MAXCLIENTS", Value: []byte("1000")}
	_, err = kv.Put(p, nil)
	if err != nil {
		panic(err)
	}

	// Lookup the pair
	pair, _, err := kv.Get("REDIS_MAXCLIENTS", nil)
	if err != nil {
		panic(err)
	}
	fmt.Printf("KV: %v %s\n", pair.Key, pair.Value)
}

Install the Consul API dependency with go mod tidy.

In a separate terminal window, start a local Consul server.

consul agent -dev -node machine

Run the example.

go run .

You should get the following result printed to the terminal.

KV: REDIS_MAXCLIENTS 1000

After running the code, you can also view the values in the Consul UI on your local machine at http://localhost:8500/ui/dc1/kv