partydrone/connect-sdk-ruby

View on GitHub
docs/index.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
  File: README
  
    &mdash; Documentation by YARD 0.9.27
  
</title>

  <link rel="stylesheet" href="css/style.css" type="text/css" />

  <link rel="stylesheet" href="css/common.css" type="text/css" />

<script type="text/javascript">
  pathId = "README";
  relpath = '';
</script>


  <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>

  <script type="text/javascript" charset="utf-8" src="js/app.js"></script>


  </head>
  <body>
    <div class="nav_wrap">
      <iframe id="nav" src="class_list.html?1"></iframe>
      <div id="resizer"></div>
    </div>

    <div id="main" tabindex="-1">
      <div id="header">
        <div id="menu">
  
    <a href="_index.html">Index</a> &raquo; 
    <span class="title">File: README</span>
  
</div>

        <div id="search">
  
    <a class="full_list_link" id="class_list_link"
        href="class_list.html">

        <svg width="24" height="24">
          <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
          <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
          <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
        </svg>
    </a>
  
</div>
        <div class="clear"></div>
      </div>

      <div id="content"><div id='filecontents'>
<h1 id="label-1Password+Connect+Ruby+SDK">1Password Connect Ruby SDK</h1>

<p><img src="https://github.com/partydrone/connect-sdk-ruby/actions/workflows/test.yml/badge.svg"> <a href="https://codeclimate.com/github/partydrone/connect-sdk-ruby/maintainability"><img src="https://api.codeclimate.com/v1/badges/e5d93bbb1ec1b779aada/maintainability"></a> <a href="https://codeclimate.com/github/partydrone/connect-sdk-ruby/test_coverage"><img src="https://api.codeclimate.com/v1/badges/e5d93bbb1ec1b779aada/test_coverage"></a> <a href="https://badge.fury.io/rb/op_connect"><img src="https://badge.fury.io/rb/op_connect.svg"></a></p>

<p>&lt;img width=“1012” alt=“op_connect_banner” src=“<img src="https://user-images.githubusercontent.com/57892/139618110-63e92aa3-794a-463b-b72a-d6a5909a5b8a.png" />”&gt;</p>

<p>The 1Password Connect Ruby SDK provides access to the 1Password Connect API hosted on your infrastructure. The gem is intended to be used by your applications, pipelines, and other automations to simplify accessing items stored in your 1Password vaults.</p>

<h2 id="label-Installation">Installation</h2>

<p>Add this line to your application’s Gemfile:</p>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>op_connect</span><span class='tstring_end'>&#39;</span></span>
</code></pre>

<p>And then execute:</p>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_bundle'>bundle</span> <span class='id identifier rubyid_install'>install</span>
</code></pre>

<p>Or install it yourself as:</p>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='id identifier rubyid_install'>install</span> <span class='id identifier rubyid_op_connect'>op_connect</span>
</code></pre>

<h2 id="label-Configuration+and+Defaults">Configuration and Defaults</h2>

<p>While <code>OpConnect::Client</code> accepts a range of options when creating a new client instance, OpConnect’s configuration API allows you to set your configuration options at the module level. This is particularly handy if you’re creating a number of client instances based on some shared defaults. Changing options affects new instances only and will not modify existing <code>OpConnect::Client</code> instances created with previous options.</p>

<h3 id="label-Configuring+module+defaults">Configuring module defaults</h3>

<p>Every writable attribute in <code>OpConnect::Configurable</code> can be set one at a time:</p>

<pre class="code ruby"><code class="ruby"><span class='const'><span class='object_link'><a href="OpConnect.html" title="OpConnect (module)">OpConnect</a></span></span><span class='period'>.</span><span class='id identifier rubyid_api_endpoint'>api_endpoint</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://localhost:8080/v1</span><span class='tstring_end'>&quot;</span></span>
<span class='const'><span class='object_link'><a href="OpConnect.html" title="OpConnect (module)">OpConnect</a></span></span><span class='period'>.</span><span class='id identifier rubyid_access_token'>access_token</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>secret_access_token</span><span class='tstring_end'>&quot;</span></span>
</code></pre>

<p>Or in a batch:</p>

<pre class="code ruby"><code class="ruby"><span class='const'><span class='object_link'><a href="OpConnect.html" title="OpConnect (module)">OpConnect</a></span></span><span class='period'>.</span><span class='id identifier rubyid_configure'>configure</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
  <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_api_endpoint'>api_endpoint</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://localhost:8080/v1</span><span class='tstring_end'>&quot;</span></span>
  <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_access_token'>access_token</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>secret_access_token</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>end</span>
</code></pre>

<h3 id="label-Using+ENV+variables">Using ENV variables</h3>

<p>Default configuration values are specified in <code>OpConnect::Default</code>. Many attributes look for a default value from ENV before returning OpConnect’s default.</p>

<p>| Variable | Description | Default | | ————————- | —————————————————————————– | ———————————————– | | <code>OP_CONNECT_ACCESS_TOKEN</code> | The API token used to authenticate the client to a 1Password Connect API. | | | <code>OP_CONNECT_API_ENDPOINT</code> | The URL of the 1Password Connect API server. | <a href="http://localhost:8080/v1">localhost:8080/v1</a> | | <code>OP_CONNECT_USER_AGENT</code> | The user-agent string the client uses when making requests. This is optional. | 1Password Connect Ruby SDK <span class='object_link'><a href="OpConnect.html#VERSION-constant" title="OpConnect::VERSION (constant)">OpConnect::VERSION</a></span> |</p>

<h2 id="label-Usage">Usage</h2>

<h3 id="label-Making+requests">Making requests</h3>

<p>API methods are available as client instance methods.</p>

<pre class="code ruby"><code class="ruby"><span class='comment'># Provide an access token
</span><span class='id identifier rubyid_client'>client</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="OpConnect.html" title="OpConnect (module)">OpConnect</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="OpConnect/Client.html" title="OpConnect::Client (class)">Client</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="OpConnect/Client.html#initialize-instance_method" title="OpConnect::Client#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>access_token:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>secret_access_token</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>

<span class='comment'># Fetch a list of vaults
</span><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_vaults'>vaults</span>
</code></pre>

<h3 id="label-Using+query+parameters">Using query parameters</h3>

<p>You can pass query parameters to some GET-based requests.</p>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_vaults'>vaults</span> <span class='label'>filter:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>title eq &#39;Secrets Automation&#39;</span><span class='tstring_end'>&quot;</span></span>
</code></pre>

<blockquote>
<p>👀 For more information, see the <a href="https://support.1password.com/connect-api-reference">API documentation</a>.</p>
</blockquote>

<h3 id="label-Consuming+resources">Consuming resources</h3>

<p>Most methods return an object which provides convenient dot notation for fields returned in the API response.</p>

<h4 id="label-List+vaults">List vaults</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_vaults'>vaults</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_vaults'>vaults</span>
<span class='comment'># =&gt; [#&lt;OpConnect::Vault:0x00007fae27198610 …
</span><span class='id identifier rubyid_vaults'>vaults</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
<span class='comment'># =&gt; &quot;alynbizzypgx62nti6zxajloei&quot;
</span></code></pre>

<h4 id="label-Get+vault+details">Get vault details</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_vault'>vault</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_vault'>vault</span><span class='lparen'>(</span><span class='label'>id:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>alynbizzypgx62nti6zxajloei</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='comment'># =&gt; #&lt;OpConnect::Vault:0x00007fae200c1a18 …
</span></code></pre>

<h4 id="label-List+items">List items</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_items'>items</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_items'>items</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
<span class='comment'># =&gt; [#&lt;OpConnect::Item:0x00007fae27151490 …
</span></code></pre>

<h4 id="label-Add+item">Add item</h4>

<p>The request must include a <code>FullItem</code> object containing the information to create the item.</p>

<blockquote>
<p>👀 See the <a href="https://support.1password.com/connect-api-reference/#add-an-item">API documentation</a> for an example.</p>
</blockquote>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_attributes'>attributes</span> <span class='op'>=</span> <span class='lbrace'>{</span>
  <span class='label'>vault:</span> <span class='lbrace'>{</span>
    <span class='label'>id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
  <span class='rbrace'>}</span><span class='comma'>,</span>
  <span class='label'>title:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Secrets Automation Item</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
  <span class='label'>category:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LOGIN</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
  <span class='label'>fields:</span> <span class='lbracket'>[</span>
    <span class='lbrace'>{</span>
      <span class='label'>value:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>wendy</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
      <span class='label'>purpose:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>USERNAME</span><span class='tstring_end'>&quot;</span></span>
    <span class='rbrace'>}</span><span class='comma'>,</span>
    <span class='lbrace'>{</span>
      <span class='label'>purpose:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>PASSWORD</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
      <span class='label'>generate:</span> <span class='kw'>true</span><span class='comma'>,</span>
      <span class='label'>recipe:</span> <span class='lbrace'>{</span>
        <span class='label'>length:</span> <span class='int'>55</span><span class='comma'>,</span>
        <span class='label'>characterSets:</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LETTERS</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>DIGITS</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
      <span class='rbrace'>}</span>
    <span class='rbrace'>}</span>
  <span class='rbracket'>]</span>
  <span class='comment'># …
</span><span class='rbrace'>}</span>

<span class='id identifier rubyid_item'>item</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_create_item'>create_item</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>body:</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
<span class='comment'># =&gt; #&lt;OpConnect::Item:0x00007fae27151490 …
</span></code></pre>

<h4 id="label-Get+item+details">Get item details</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_item'>item</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_item'>item</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>id:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>yqthoh76cfzpbsimk6zixshosq</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='comment'># =&gt; #&lt;OpConnect::Item:0x00007fae27151490 …
</span><span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_title'>title</span>
<span class='comment'># =&gt; &quot;AWS IAM Account&quot;
</span><span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_favorite?'>favorite?</span>
<span class='comment'># =&gt; false
</span></code></pre>

<h4 id="label-Replace+an+item">Replace an item</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_attributes'>attributes</span> <span class='op'>=</span> <span class='lbrace'>{</span>
  <span class='label'>vault:</span> <span class='lbrace'>{</span>
    <span class='label'>id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span>
  <span class='rbrace'>}</span><span class='comma'>,</span>
  <span class='label'>title:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Secrets Automation Item</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
  <span class='label'>category:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LOGIN</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
  <span class='label'>fields:</span> <span class='lbracket'>[</span>
    <span class='lbrace'>{</span>
      <span class='label'>value:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>jonathan</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
      <span class='label'>purpose:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>USERNAME</span><span class='tstring_end'>&quot;</span></span>
    <span class='rbrace'>}</span><span class='comma'>,</span>
    <span class='lbrace'>{</span>
      <span class='label'>purpose:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>PASSWORD</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
      <span class='label'>generate:</span> <span class='kw'>true</span><span class='comma'>,</span>
      <span class='label'>recipe:</span> <span class='lbrace'>{</span>
        <span class='label'>length:</span> <span class='int'>55</span><span class='comma'>,</span>
        <span class='label'>characterSets:</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LETTERS</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>DIGITS</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
      <span class='rbrace'>}</span>
    <span class='rbrace'>}</span>
  <span class='rbracket'>]</span>
  <span class='comment'># …
</span><span class='rbrace'>}</span>

<span class='id identifier rubyid_item'>item</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_replace_item'>replace_item</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>id:</span> <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>body:</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
<span class='comment'># =&gt; #&lt;OpConnect::Item:0x00007fae27151490 …
</span></code></pre>

<blockquote>
<p>👀 See the <a href="https://support.1password.com/connect-api-reference/#add-an-item">API documentation</a> for an explanation and list of fields and object structure.</p>
</blockquote>

<h4 id="label-Change+item+details">Change item details</h4>

<p>Use the <a href="https://tools.ietf.org/html/rfc6902">JSON Patch</a> document standard to compile a series of operations to make more targeted changes to an item.</p>

<blockquote>
<p>👀 See the <a href="https://support.1password.com/connect-api-reference/#change-item-details">API documentation</a> for more information.</p>
</blockquote>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_attributes'>attributes</span> <span class='op'>=</span> <span class='lbracket'>[</span>
  <span class='lbrace'>{</span><span class='label'>op:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>replace</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>path:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/title</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>value:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>New Secrets Automation Item</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
  <span class='lbrace'>{</span><span class='label'>op:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>replace</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>path:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/fields/username</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>value:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>tinkerbell</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span>
<span class='rbracket'>]</span>

<span class='id identifier rubyid_item'>item</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_update_item'>update_item</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>id:</span> <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>body:</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
<span class='comment'># =&gt; #&lt;OpConnect::Item:0x00007fae27151490 …
</span></code></pre>

<h4 id="label-Delete+an+item">Delete an item</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_delete_item'>delete_item</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>id:</span> <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
<span class='comment'># =&gt; true
</span></code></pre>

<h4 id="label-List+files">List files</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_files'>files</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_files'>files</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>item_id:</span> <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
<span class='comment'># =&gt; [#&lt;OpConnect::Item::File:0x00007fae27151490 …
</span></code></pre>

<h4 id="label-Get+file+details">Get file details</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_file'>file</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>item_id:</span> <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>id:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>6r65pjq33banznomn7q22sj44e</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='comment'># =&gt; #&lt;OpConnect::Item::File:0x00007fae27151490 …
</span></code></pre>

<h4 id="label-Get+file+content">Get file content</h4>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_file'>file</span><span class='lparen'>(</span><span class='label'>vault_id:</span> <span class='id identifier rubyid_vault'>vault</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>item_id:</span> <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='label'>id:</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
<span class='comment'># =&gt; &quot;The future belongs to the curious.\n&quot;
</span></code></pre>

<h4 id="label-List+API+activity">List API activity</h4>

<p>Retrieve a list of API requests made to the server.</p>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_activity'>activity</span>
<span class='comment'># =&gt; [#&lt;OpConnect::APIRequest:0x00007fae27151490 …
</span></code></pre>

<h4 id="label-Check+server+for+a+heartbeat">Check server for a heartbeat</h4>

<p>Ping the server to check if it’s active or not.</p>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_heartbeat'>heartbeat</span>
<span class='comment'># =&gt; true
</span></code></pre>

<h4 id="label-Get+server+health+info">Get server health info</h4>

<p>Query the state of the server and its service dependencies.</p>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_health'>health</span>
<span class='comment'># =&gt; #&lt;OpConnect::ServerHealth:0x00007fae27151490 …
</span></code></pre>

<h4 id="label-Get+server+metrics">Get server metrics</h4>

<p>This returns Prometheus metrics collected by the server.</p>

<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_metrics'>metrics</span>
<span class='comment'># =&gt; &quot;# HELP go_gc_duration_seconds A summary of the pause duration of …
</span></code></pre>

<h2 id="label-Development">Development</h2>

<p>After checking out the repo, run <code>bin/setup</code> to install dependencies. Then, run <code>rake test</code> to run the tests. You can also run <code>bin/console</code> for an interactive prompt that will allow you to experiment.</p>

<p>To install this gem onto your local machine, run <code>bundle exec rake install</code>. To release a new version, update the version number in <code>version.rb</code>, and then run <code>bundle exec rake release</code>, which will create a git tag for the version, push git commits and the created tag, and push the <code>.gem</code> file to <a href="https://rubygems.org">rubygems.org</a>.</p>

<h3 id="label-Running+a+local+1Password+Connect+API+server">Running a local 1Password Connect API server</h3>

<p>This project includes a docker-compose.yml file that will download and run an API and Sync server for you to test with locally. You will need to:</p>
<ul><li>
<p>[ ] Install Docker, Docker for Mac, or Docker for Windows.</p>
</li><li>
<p>[ ] Place your 1password-credentials.json file in the root of this project.</p>
</li></ul>

<blockquote>
<p>👀 See <a href="https://support.1password.com/secrets-automation/">Get started with a 1Password Secrets Automation workflow</a> for more information.</p>
</blockquote>

<h3 id="label-Resources">Resources</h3>

<p>Some links that are definitely worth checking out:</p>
<ul><li>
<p><a href="https://1password.com/secrets/">1Password Secrets Automation</a></p>
</li><li>
<p><a href="https://support.1password.com/secrets-automation/">Get started with a 1Password Secrets Automation workflow</a></p>
</li><li>
<p><a href="https://support.1password.com/connect-api-reference">1Password Connect API reference</a></p>
</li></ul>

<h2 id="label-Contributing">Contributing</h2>

<p>Bug reports and pull requests are welcome on GitHub at <a href="https://github.com/partydrone/connect-sdk-ruby">github.com/partydrone/connect-sdk-ruby</a>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the <a href="https://github.com/partydrone/connect/blob/main/CODE_OF_CONDUCT.md">code of conduct</a>.</p>

<h2 id="label-License">License</h2>

<p>The gem is available as open source under the terms of the <a href="https://opensource.org/licenses/MIT">MIT License</a>.</p>

<h2 id="label-Code+of+Conduct">Code of Conduct</h2>

<p>Everyone interacting in the Connect project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the <a href="https://github.com/partydrone/connect/blob/main/CODE_OF_CONDUCT.md">code of conduct</a>.</p>
</div></div>

      <div id="footer">
  Generated on Mon Mar 21 03:39:11 2022 by
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
  0.9.27 (ruby-3.1.1).
</div>

    </div>
  </body>
</html>